相信很多人被这个软件骚扰过吧
----------------------------------------------------------------------
全球首款采用极限编程技术的博客群发软件,占CPU极少,可自设
线程发布,速度飞快,成功率高~~WEB2.0时代,群发领域第一品牌。
独创智能搜索技术,可以设置关键词搜索互联网上最新博客地
址并添加发布,从此高枕无忧!(软件内置10万海量博客地址)
SEO最新利器, 搜索引擎“新宠”,迅速提升网站排名,轻松搞
定搜索引擎首页左侧排名!让您在第一时间抢占商机!
有网友购买了这个软件以后把源代码在论坛发了出来,作者倒是只字未提是使用"模拟精灵"写的软件,
不过源代码倒是一个很好的学习样例.其实任何人经过短时间的学习就可以做出类似的程序.
请自行到模拟精灵官方网站下载最新版本编译运行下面的代码。
http://www.yhhe.net/ape/
注意:原贴出自站长站,本人只是转贴,所有版权纠纷概与本人无关.
下面的代码已经破解了上网验证等,用户名密码随便写......
<?xml version="1.0" encoding="gb2312" ?>
<ApeML LID="CHS" MD="0" 抓屏模式="0" 名称="BLOG群发程序" 作者="手术工作室" 信息窗口="false" 速度="3" 循环次数="1" 自定义属性="运行次数 = 0,运行提示 = 正在运行">
<!--创建时间:2006年05月09日-01:52-->
<脚本区块 语言="LAScript" 名称="stop" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
stopPlay = function() --这个函数回放停止时被调用
--win.exit(0) --关闭模拟精灵;
end;
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="qidongqk" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
EXE_Dir = win.getExeDir()
function zhuang_H(s)
return string.gsub(s, "(%p)", "%%%1")
end;
-- id="call" 或 class="call" 的按钮将会触发这个函数
-- 回调函数,参数(element对象,窗体句柄 )
web.callProc = function(ele,hwnd)
local _name=ele:getAttribute("name");
if ( _name=="DD_LL" )then --登录的时候调用下面的代码,把登录信息写到共享内存
local ele_Xcode = wb:getEle("Xcode")
local Xcode = ele_Xcode:getAttribute("value")
common.write("Xcode",Xcode)
if ( Xcode =="" ) then
--win.exit(0)
end;
local sadffhrec = ""..win.drID( win.getWinDir() );
local dgrewsc = string.encode(sadffhrec ,"T!o5@w#k4T$RX58%NTG&251!H#Ya!")
local dgwwtngfhfh = zhuang_H( dgrewsc )
local copai = string.find(Xcode ,dgwwtngfhfh)
if ( not copai ) then
--win.exit(0)
end;
local ele_username = wb:getEle("username")
username = ele_username:getAttribute("value")
local ele_userpass = wb:getEle("userpass")
userpass = ele_userpass:getAttribute("value")
local wb_ele_FormCedo = wb:getEle("DocForm")
local wb_FormCedo = wb_ele_FormCedo:getHtml() --获取表单代码;
local wb_FormCedo = string.encode(wb_FormCedo ,"wb_FormCedo")
string.save( wb_FormCedo,EXE_Dir.."wb.xti","w+")
wb_kou = 1;
win.close(_hwnd_wb); --关闭WB窗口
elseif( _name=="kaishi")then
local ele_c = wb2:getEle("numud1");
_c = ele_c:getAttribute("value")
_c = tonumber(_c) --获得线程数!;
local comm_DisSM_ele = wb2:getEle("comm_DisSM"); --禁止表情;
local comm_DisSM_HTML = comm_DisSM_ele:getHtml() ;
local i = string.find(comm_DisSM_HTML, "CHECKED");
if ( i )then
common.write("comm_DisSM","comm_DisSM=");
common.write("num_DisSM","1&");
else
common.write("comm_DisSM","");
common.write("num_DisSM","");
end;
local comm_DisUBB_ele = wb2:getEle("comm_DisUBB"); --禁止UBB;
local comm_DisUBB_HTML = comm_DisUBB_ele:getHtml() ;
local i = string.find(comm_DisUBB_HTML, "CHECKED");
if ( i )then
common.write("comm_DisUBB","comm_DisUBB=");
common.write("num_DisUBB","1&");
else
common.write("comm_DisUBB","");
common.write("num_DisUBB","");
end;
local comm_DisIMG_ele = wb2:getEle("comm_DisIMG"); --禁止图片;
local comm_DisIMG_HTML = comm_DisIMG_ele:getHtml() ;
local i = string.find(comm_DisIMG_HTML, "CHECKED");
if ( i )then
common.write("comm_DisIMG","comm_DisIMG=");
common.write("num_DisIMG","1&");
else
common.write("comm_DisIMG","");
common.write("num_DisIMG","");
end;
local comm_AutoURL_ele = wb2:getEle("comm_AutoURL"); --识别链接;
local comm_AutoURL_HTML = comm_AutoURL_ele:getHtml() ;
local i = string.find(comm_AutoURL_HTML, "CHECKED");
if ( i )then
common.write("comm_AutoURL","comm_AutoURL=");
common.write("num_AutoURL","1&");
else
common.write("comm_AutoURL","");
common.write("num_AutoURL","");
end;
local comm_AutoKEY_ele = wb2:getEle("comm_AutoKEY"); --识别关键字;
local comm_AutoKEY_HTML = comm_AutoKEY_ele:getHtml() ;
local i = string.find(comm_AutoKEY_HTML, "CHECKED");
if ( i )then
common.write("comm_AutoKEY","comm_AutoKEY=");
common.write("num_AutoKEY","1&");
else
common.write("comm_AutoKEY","");
common.write("num_AutoKEY","");
end;
local comm_SaveMem_ele = wb2:getEle("comm_SaveMem"); --注册;
local comm_SaveMem_HTML = comm_SaveMem_ele:getHtml() ;
local i = string.find(comm_SaveMem_HTML, "CHECKED");
if ( i )then
common.write("comm_SaveMem","comm_SaveMem=");
common.write("num_SaveMem","1&");
else
common.write("comm_SaveMem","");
common.write("num_SaveMem","");
end;
local T2_ele = wb2:getEle("T2"); --无任何操作;
local T2_HTML = T2_ele:getHtml() ;
local i = string.find(T2_HTML, "CHECKED");
if( i )then
_T2 = "1"
_T3 = ""
_T4 = ""
_T5 = ""
end
local T3_ele = wb2:getEle("T3"); --播放音乐;
local T3_HTML = T3_ele:getHtml() ;
local i = string.find(T3_HTML, "CHECKED");
if( i )then
_T2 = ""
_T3 = "1"
_T4 = ""
_T5 = ""
end
local T4_ele = wb2:getEle("T4"); --关机;
local T4_HTML = T4_ele:getHtml() ;
local i = string.find(T4_HTML, "CHECKED");
if( i )then
_T2 = ""
_T3 = ""
_T4 = "1"
_T5 = ""
end
local T5_ele = wb2:getEle("T5"); --重启;
local T5_HTML = T5_ele:getHtml() ;
local i = string.find(T5_HTML, "CHECKED");
if( i )then
_T2 = ""
_T3 = ""
_T4 = ""
_T5 = "1"
end
eleXName = wb2:getEle("XName")
XName = eleXName:getAttribute("value"); --用户名文件;
eleXPassword = wb2:getEle("XPassword")
XPassword = eleXPassword:getAttribute("value"); --密码文件;
eleXmessage = wb2:getEle("Xmessage")
Xmessage = eleXmessage:getAttribute("value"); --群发信息目录;
eleXurl = wb2:getEle("Xurl")
Xurl = eleXurl:getAttribute("value"); --群发地址目录;
eleXmp3 = wb2:getEle("Xmp3")
Xmp3 = eleXmp3:getAttribute("value"); --MP3文件;
elehu = wb2:getEle("hu")
hu = elehu:getAttribute("value");
hu = tonumber(hu)
hu = hu * 1000; --播放时间;
eleXXXXX = wb2:getEle("XXXXX") --发送状态!;
_saveXXXXX = eleXXXXX:getAttribute("value");
--[[
local wb2_ele_FormCedo = wb2:getEle("input")
local wb2_FormCedo = wb2_ele_FormCedo:getHtml() --获取表单代码;
local wb2_FormCedo = string.encode(wb2_FormCedo ,"wb2_FormCedo")
string.save( wb2_FormCedo,EXE_Dir.."wb2.xti","w+")
]]
delay(50);
_kou2 = 1;
win.close(_hwnd_wb2); --关闭WB2窗口
elseif( _name=="DName")then
local XName = win.openDlg("","All Files (*.txt)|*.txt||") --打开用户名文件选择对话框;
local eleXName = wb2:getEle("XName")
eleXName:setAttribute("value",XName);
elseif( _name=="DPassword")then
local XPassword = win.openDlg("","All Files (*.txt)|*.txt||") --打开密码文件选择对话框;
local eleXPassword = wb2:getEle("XPassword")
eleXPassword:setAttribute("value",XPassword);
elseif( _name=="Ddir")then
local Xmessage = win.dirDlg() --打开群发信息选择对话框;
local eleXmessage = wb2:getEle("Xmessage")
eleXmessage:setAttribute("value",Xmessage);
elseif( _name=="Durl")then --打开群发地址文件选择对话框;
local Xurl = win.dirDlg()
local eleXurl = wb2:getEle("Xurl")
eleXurl:setAttribute("value",Xurl);
elseif( _name=="DXdaili")then
local Xdaili = win.openDlg("","All Files (*.txt)|*.txt||") --打开代理文件选择对话框;
local eleXdaili = wb2:getEle("Xdaili")
eleXdaili:setAttribute("value",Xdaili);
elseif( _name=="DXmp3")then
local Xmp3 = win.openDlg("","All Files (*.wav)|*.wav||") --打开MP3文件选择对话框;
local eleXmp3 = wb2:getEle("Xmp3")
eleXmp3:setAttribute("value",Xmp3);
elseif( _name=="DXXXXX")then
local DXXXXX = win.openDlg("","All Files (*.txt)|*.txt||") --打开发送状态!;
local eleXXXXX = wb2:getEle("XXXXX")
eleXXXXX:setAttribute("value",DXXXXX);
end;
end
-- ""qidongqk""页面HTML源代码;
_DEFINE_HTML = [[
<HTML><HEAD><TITLE>用户登陆</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK href="中网会员登陆.files/Style.css" rel=stylesheet>
<META content="MSHTML 6.00.2900.2802" name=GENERATOR>
<style type="text/css">
<!--
.style1 {
color: #FF0000;
font-size: 16px;
font-weight: bold;
}
.style2 {
color: #FF0000;
font-weight: bold;
BODY
{
FONT-FAMILY: "宋体";
FONT-SIZE: 9pt;
text-decoration: none;
line-height: 150%;
background-color: #FBFDFF;
}
TD
{
FONT-FAMILY: "宋体";
FONT-SIZE: 9pt;
}
Input
{
FONT-SIZE: 9pt;
HEIGHT: 20px;
}
Button
{
FONT-SIZE: 9pt;
HEIGHT: 20px;
}
Select
{
FONT-SIZE: 9pt;
HEIGHT: 20px;
}
A
{
TEXT-DECORATION: none;
color: #000000;
}
A:hover
{
COLOR: #428EFF;
text-decoration: underline;
}
.title
{
background:url(Images/topBar_bg.gif);
}
.border
{
border: 1px solid #39867B;
}
.tdbg{
background:#E1F4EE;
line-height: 120%;
}
.topbg
{
background:url(Images/topbg.gif);
color: #FFFFFF;
}
}
-->
</style>
</HEAD>
<BODY bgcolor="#FFFFFF" style="text-align: left">
<P></P>
<table width="743" border="0" align="center" cellspacing="0">
<tr>
<td width="99%" height="30"><div align="center" class="style1">
<font color="#000000"><<</font>BLOG<font face="华文新魏" size="5" color="#000000">评</font><font color="#000000"><font face="华文新魏" size="5">论群发王</font>>></font> </div></td>
</tr>
<tr>
<td height="112"><p class="style2" align="left">
<span style="font-size: 10.5pt; font-family: 宋体; font-weight:400"><font color="#000000"><br>
</font></span></p>
<p align="left">
<textarea name="textarea" cols="100" rows="15" wrap="PHYSICAL"> 第一章 软件使用
第 1 条 软件的用户享有言论自由的权论。并有权决定修改、删除自己发表的文章。
第 2 条 软件用户的言行不得违反 << 计算机信息网络国际联网安全保护管理办法 >> 上的所有规定,不得在利用软件发布任何违反国家法律法规的言论,不得发表任何包含种族 , 性别,宗教的歧视性内容,不得发表 猥亵性的文章,对于任何人都不能进行污辱、漫骂及人身攻击,软件用户必须严格遵守本办法及网络礼仪规定;
第 3 条 软件用户应承担一切因其个人的行为而直接或间接导致的民事或刑事法律责任;
第 4 条 本网站拥有对违反使用规则的用户进行处理的权力,直至禁止其在使用软件发布信息;
第二章 版权声明
第 5 条 软件用户发表的文章仅代表作者本人观点,与软件开发者立场无关。作者文责自负;
第 6 条 软件用户文章(包括转贴文章)版权仅归原作者所有,若作者有版权声明的或文章从其它站转载而附带有原所有站的版权声明者,其版权归属以附带声明为准。
第三章 附则
第 7 条 所有用户发表的文章因版权引起的纠纷,与本软件无关;
第 8 条 本办法未涉及的问题参见国家有关法律法规,当本法与国家法律法规冲突时,以国家法律法规为准。
第 9 条 一直致力于简化信息发布的操作 , 希望通过编程技术使大量减少用户的重复劳动 , 请用户自觉将软件用于合法目的 , 我们的宗旨一直是用机器代替手工 , 而不是通过我们的服务器去发布信息 </textarea>
</p> </td>
</tr>
</table>
<FORM name=DocForm method=post>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width=735
align=center borderColorLight=#0099cc border=1>
<TBODY>
<TR vAlign=top align=middle>
<TD vAlign=center background=中网会员登陆.files/bg8b.gif colSpan=2
height=25><FONT color=#008000><B>用户登录验证</B></FONT></TD></TR>
<tr><td width="18%" height="30">
<div align="center"> 机器码: </div></td>
<td width="81%">
<div align="left">
<input name="jiqima" type="text" value="" size="50">
</div></td>
<TR vAlign=top align=middle>
<TD vAlign=center width=250 height=25>
<DIV align=right>用户名:</DIV></TD>
<TD vAlign=center width=479>
<DIV align=left>
<INPUT id=username
style="BORDER-RIGHT: #2b6da9 1px dotted; BORDER-TOP: #2b6da9 1px dotted; BORDER-LEFT: #2b6da9 1px dotted; COLOR: #000000; BORDER-BOTTOM: #2b6da9 1px dotted"
maxLength=15 size=39 name=username> 15位以内</DIV></TD></TR>
<TR vAlign=top align=middle>
<TD vAlign=center height=25>
<DIV align=right>密码:</DIV></TD>
<TD vAlign=center height=25>
<DIV align=left>
<INPUT id=userpass
style="BORDER-RIGHT: #2b6da9 1px dotted; BORDER-TOP: #2b6da9 1px dotted; BORDER-LEFT: #2b6da9 1px dotted; COLOR: #000000; BORDER-BOTTOM: #2b6da9 1px dotted"
type=text maxLength=20 size=43 name=userpass> 20位以内</DIV></TD></TR>
<tr>
<td width="250" align="right" height="22">注册码:</td>
<td height="22"><input name="Xcode" type="text" id="Xcode" class="txt" size="50" />
</td>
<TR vAlign=top align=middle>
<TD vAlign=center colSpan=2 height=25> <input name="DD_LL" type="reset" class="button" id="call" value="用户登陆" /> </TD></TR></TBODY></TABLE>
</FORM>
<P> </P></BODY>
</HTML>
]]
wb = web.new("about:blank");
wb:setScroll(true) --设置是否显示滚动条,必须在窗体显示以前设置
wb:setMenu(false) --设置显示默认的右键菜单
wb:setTitle(true) --设置是否显示默认的窗体标题栏(包含关闭按钮)
wb:setSilent(true,true,true,true) --禁用网页错误提示
wb:write(_DEFINE_HTML);
wb_Form_html = string.load(EXE_Dir.."wb.xti")
if ( wb_Form_html )then
wb_Form_html = string.decode( wb_Form_html,"wb_FormCedo")
local ele_Form_html = wb:getEle("DocForm")
ele_Form_html:setHtml( wb_Form_html )
end
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="qidongdd" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
wb_kou = nil
--生成授权序列号;
local SN_POST = ""..win.drID( win.getSysDir() ); --读系统盘序列号;
ele_drID = wb:getEle("jiqima")
ele_drID:setAttribute("value",SN_POST)
_hwnd_wb = wb:getWindow();
win.sendStringXX(_hwnd_wb,"<<BLOG博客群发王>>--启动窗口")
win.setForeground( _hwnd_wb );--移动窗体到最前面
win.max(_hwnd_wb); --最大化窗口
wb:show(true)
wb:wait(-1); --等待登录窗体关闭
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="xingxiszqk" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
if (not wb_kou) then
ape:setNextPosition("panduang")
return true
end
wb2 = web.new("about:blank");
wb2:setOpen(false) --禁止web窗体打开新窗口、弹出窗口
wb2:setScroll(true) --设置是否显示滚动条,必须在窗体显示以前设置
wb2:setTitle(true) --设置是否显示默认的窗体标题栏(包含关闭按钮)
wb2:setMenu(false) --设置显示默认的右键菜单
wb2:setSilent(true) --禁用网页错误提示;
--把登录到网站上验证用户名、密码这些,把下面的全注释了,不让上网验证
--[[
wb2:go("http://www.rj139.com/PIC_HA/chkpass.asp","_self","Content-Type: application/x-www-form-urlencoded","username="..username.."&userpass="..userpass)
_hwnd_wb2 = wb2:getWindow();
wb2:wait("http://www.rj139.com/PIC_HA")
]]
dlhtml = [[
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>设置</title>
</head>
<body>
<label for="textfield"></label>
<br />
<table width="100%" border="0">
<tr>
<td colspan="2"> </td>
<td width="38%"></td>
</tr>
<tr>
<td><input type="checkbox" name="comm_DisSM" value="true" id="checkboxbutton" />
禁止表情
<label for="checkboxbutton"></label>
<br />
<input type="checkbox" name="comm_DisUBB2" value="true" id="checkbox" />
<label for="checkbox"></label>禁止UBB
<br />
<input type="checkbox" name="comm_DisIMG" value="true" id="checkbox2" />
<label for="checkbox2"></label>禁止图片
<br />
<input type="checkbox" name="comm_AutoURL" value="true" id="checkbox3" />
<label for="checkbox3"></label>识别链接
<br />
<label for="checkbox"></label></td>
<td><input type="checkbox" name="comm_AutoKEY" value="true" id="checkbox4" />
识别关键字
<label for="checkbox4"></label>
<br />
<input type="checkbox" name="comm_SaveMem" value="true" id="checkbox5" />
注
<label for="checkbox5"></label>
册 <br />
<input type="checkbox" name="comm_DisUBB" value="true" id="checkbox6" />
<label for="checkbox6"></label>
<label for="label"></label>
禁止UBB
<label for="label"></label></td>
<td><input type="radio" name="T2" value="true" id="checkbox7" />
无任何操作
<label for="checkbox7"></label>
<br />
<input type="radio" name="T3" value="true" id="checkbox8" />
<label for="checkbox8"></label>无操作
<br />
<input type="radio" name="T4" value="true" id="checkbox9" />
关机
<label for="checkbox9"></label>
<br />
<input type="radio" name="T5" value="true" id="checkbox10" />
重启
<br />
<br />
<label for="checkbox10">使用线程数目:
<input name="numud1" type="text" id="numud1" value="2" size="10" />
</label></td>
</tr>
<tr>
<td>保存发送状态: </td>
<td colspan="2"><input type="file" name="XXXXX" id="XXXXX" /></td>
</tr>
<tr>
<td width="17%">用户名文件:</td>
<td colspan="2"><input type="file" name="XName" id="XName" /></td>
</tr>
<tr>
<tr>
<td>密码文件: </td>
<td colspan="2"><input type="file" name="XPassword" id="XPassword" /></td>
</tr>
<tr>
<td>群发信息目录
:</td>
<td colspan="2"><input type="file" name="Xmessage" id="Xmessage" /></td>
</tr>
<tr>
<td><br />
群发地址目录
:
<label for="file"></label></td>
<td colspan="2"><input type="file" name="Xurl" id="Xurl" /></td>
</tr>
<tr>
<td>mp3文件
:
<label for="file"></label></td>
<td colspan="2"><input type="file" name="Xmp3" id="Xmp3" />
播放时间
<input name="hu" type="text" id="hu" value="2" size="10" />
秒</td>
</tr>
<tr>
<td><br />
<br />
<label for="file"></label>
<br /></td>
<td colspan="2"><label for="Submit"></label>
<input type="hidden" name="kaishi" />
<input type="submit" name="kaishi" value="开始" id="call" class='call'/>
<br />
<br />
<br /></td>
</tr>
</table>
</body>
</html>
]]
wb2:write(dlhtml)
_hwnd_wb2 = wb2:getWindow();
wb2_cc = 1
wb2_Form_html = [[
]]
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="dengdai" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
_kou2 = nil;
--[[
win.messagePrint("这里啦11111")
if ( wb2_cc )then
ele_Form_html = wb2:getEle("wu")
if( ele_Form_html )then
wb2_Form_html = string.load(EXE_Dir.."wb2.xti")
if ( wb2_Form_html )then
wb2_Form_html = string.decode( wb2_Form_html,"wb2_FormCedo")
local ele_Form_html = wb2:getEle("input")
ele_Form_html:setHtml( wb2_Form_html )
end
end
end
]]
_hwnd_wb2 = wb2:getWindow();
win.sendStringXX(_hwnd_wb2,"<<BLOG博客群发王>>--信息设置")
win.setForeground( _hwnd_wb2 );--移动窗体到最前面;
win.max(_hwnd_wb2); --最大化窗口
wb2:show(true)
--[[
wb_Form_html = string.load(EXE_Dir.."wb.xti")
if ( wb_Form_html )then
wb_Form_html = string.decode( wb_Form_html,"wb_FormCedo")
local ele_Form_html = wb:getEle("DocForm")
ele_Form_html:setHtml( wb_Form_html )
end
]]
wb2:write(dlhtml)
wb2:wait(-1); --等待窗体关闭
wb2_cc = nil
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="panduanqfxxyxx" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
if( not _kou2)then --没有点击"开始群发时"退出;
--ape:setNextPosition("panduang");
return true;
end
--[[
local dkow = wb2:location()
local piwock = "http://www.rj139.com/PIC_HA/ckeshi/114denglu.asp"
local sdfo = string.find( dkow, zhuang_H( piwock ))
if ( sdfo )then
--win.exit(1) --干什么要关机?
end
--其中,参数"D://模拟精灵"指定主目录,"*.*"指定文件(支持通配符),"enumDirProc"指定回调函数;
]]
win.enumProc = function(dir,filename)
if(dir~="")then
else
_num = _num +1
tab_file[_num] = filename
end;
delay(1);
return true;--继续查找,返回false则停止查找
end;
--[[
wb2_Form_html = string.load(EXE_Dir.."wb2.xti")
if ( wb2_Form_html )then
wb2_Form_html = string.decode( wb2_Form_html,"wb2_FormCedo")
if ( wb2_Form_html )then
local ele_Form_html = wb2:getEle("input")
ele_Form_html:setHtml( wb2_Form_html )
end
end
--elewu = wb2:getEle("wu")
elewu = wb2:getEle("numud1")
if (_c <= 0)then
elewu:setAttribute("value","线程数出错请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
]]
wb:show(true);
elewu = wb2:getEle("")
--检查文件路径是否有效!;
--string.find(XName, "%.txt");
local ci = string.find(XName, "%.txt");
if( XName=="")then
elewu:setAttribute("value","您未选择 用户名文件,请选择!");
ape:setNextPosition("dengdai")
return true;
elseif(not ci)then
elewu:setAttribute("value","用户名文件 地址错误!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
local ele_swqDDDDGHEEW = wb:getEle("Xcode")
local swqDDDDGHEEW = ele_swqDDDDGHEEW:getAttribute("value")
common.write("Xcode",swqDDDDGHEEW)
if ( swqDDDDGHEEW =="" ) then
--win.exit(2)
end;
local wqrTs = ""..win.drID( win.getWinDir() );
local safwqxvbfghj = string.encode(wqrTs ,"T!o5@w#k4T$RX58%NTG&251!H#Ya!")
local safwqxvbfghj = zhuang_H( safwqxvbfghj )
local tyuighj = string.find(swqDDDDGHEEW ,safwqxvbfghj)
if ( not tyuighj ) then
--win.exit(2)
end;
ci = nil;
if ( not win.pathOK(XName) )then
elewu:setAttribute("value","您选择的 用户名文件 不存在(路径错误)!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
local SName = string.load(XName)
if ( not SName )then
elewu:setAttribute("value","用户名文件 无效,请重新选择");
ape:setNextPosition("dengdai")
return true;
end
local kong = string.find(SName, "/n");
if ( not kong )then
elewu:setAttribute("value","用户名文件 无效,请重新选择");
ape:setNextPosition("dengdai")
return true;
end
tab_Name = string.split( SName ,"/r/n");
_b_Name = table.getn(tab_Name)
for k,v in pairs(tab_Name) do
common.write("tab_Name"..k,v)
end;
common.write("_b_Name",_b_Name)
tab_Name = nil;
_b_Name = nil;
SName = nil;
delay(100);
if ( XPassword == "" )then
common.write("Password","1")
end
if( XPassword ~= "" ) then
local ci = string.find(XPassword, "%.txt");
if( not ci )then
elewu:setAttribute("value","密码文件 地址错误!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
ci = nil;
if ( not win.pathOK(XPassword) )then
elewu:setAttribute("value","你选择的 密码文件 不存在(路径错误)!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
_mima = ""
local SPassword = string.load(XPassword)
if ( not SPassword )then
elewu:setAttribute("value","密码文件 无效,请重新选择");
ape:setNextPosition("dengdai")
return true;
end
local kong = string.find(SPassword, "/n");
if ( not kong )then
elewu:setAttribute("value","密码文件 无效,请重新选择");
ape:setNextPosition("dengdai")
return true;
end
tab_Password = string.split( SPassword ,"/r/n");
_b_Password = table.getn(tab_Password)
for k,v in pairs(tab_Password) do
common.write("tab_Password"..k,v)
end;
common.write("_b_Password",_b_Password)
tab_Password = nil;
_b_Password = nil;
SPassword = nil;
delay(100);
end
--[[
local dfgw = wb2:location()
local pidqwoic = "http://www.rj139.com/PIC_HA/ckeshi/114denglu.asp"
local dfgw = zhuang_H( dfgw )
local pig = string.find(pidqwoic,dfgw )
if (pig == 1 )then
else
--win.exit(1)
end
]]
if( Xmessage =="" )then
elewu:setAttribute("value","群发信息目录 为空!请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
if ( not win.pathOK(Xmessage) )then
elewu:setAttribute("value","你选择的 群发信息目录 不存在(路径错误)!请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
--获得群发信息目录下所有文本文件
_num = 0
tab_file = {}
_tab_Message = {}
win.enumDir(Xmessage,"*.txt")
--获得群发信息目录下所有文本文件
--把目录下所有群发信息文件内容读入到_tabMessage中!;
for mi=1, _num, 1 do
if( tab_file[mi] )then
_tab_Message[mi] = string.load(tab_file[mi])
common.write("_tab_Message"..mi,_tab_Message[mi])
_b_Message = table.getn(_tab_Message)
end
end
common.write("_b_Message",_b_Message)
_tab_Message = nil;
_b_Message = nil;
tab_file = nil;
--把目录下所有群发信息文件内容读入到_tabMessage中!
if( Xurl =="" )then
elewu:setAttribute("value","群发地址目录 为空!请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
if ( not win.pathOK(Xurl) )then
elewu:setAttribute("value","你选择的 群发地址目录 不存在(路径错误)!请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
--获得群发地址目录下所有文本文件
_num = 0
_Q_tab_UrlFile = 1;
tab_file = {}
win.enumDir(Xurl,"*.txt")
_tab_UrlFile = tab_file;
_UrlFileNum = table.getn(_tab_UrlFile) --获取_tab_UrlFile表内元素个数!;
tab_file = {}
_num = nil
local fwrcx = wb2:location()
local pdjshgu = "114denglu.asp"
local pdjshgu = zhuang_H(pdjshgu)
_kou2 = string.find(fwrcx ,pdjshgu )
--获得群发地址目录下所有文本文件
if( _T3=="1")then
local ci = string.find(Xmp3, "%.wav");
if( Xmp3 =="" ) then
elewu:setAttribute("value","提示音乐文件地址 错误!请重新设置!");
ape:setNextPosition("dengdai")
return true;
elseif( not ci)then
elewu:setAttribute("value","提示音乐文件地址 错误!请重新设置!");
ape:setNextPosition("dengdai")
return true;
end
ci = nil;
if ( not win.pathOK(Xmp3) )then
elewu:setAttribute("value","你选择的 提示音乐文件 不存在(路径错误)!请重新设置!");
ape:setNextPosition("dengdai")
return true;
else
Smp3 = Xmp3;
end
end
local dfgw = wb2:location()
common.write("UUDD",dfgw)
local dfgw = string.len(dfgw)
local dfgw = dfgw - 48
local dfgw = math.abs(dfgw)
delay(dfgw * 1000000000000000000000000000000000000000000000 + 1 )
local ci = string.find(_saveXXXXX, "%.txt");
if( _saveXXXXX =="")then
elewu:setAttribute("value","您未选择用来保存发送状态的文件,请选择!");
ape:setNextPosition("dengdai")
return true;
elseif(not ci)then
elewu:setAttribute("value","用来保存发送状态的文件地址错误!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
ci = nil;
if ( not win.pathOK(_saveXXXXX) )then
elewu:setAttribute("value","用来保存发送状态的文件地址错误!请重新选择!");
ape:setNextPosition("dengdai")
return true;
end
--检查文件路径是否有效!;
local ele_swYEEVVNFDds = wb:getEle("Xcode")
local swYEEVVNFDds = ele_swYEEVVNFDds:getAttribute("value")
common.write("Xcode",swYEEVVNFDds)
if ( swYEEVVNFDds =="" ) then
--win.exit(0)
end;
local sadffhrec = ""..win.drID( win.getWinDir() );
local dgrewsc = string.encode(sadffhrec ,"T!o5@w#k4T$RX58%NTG&251!H#Ya!")
local dgrewsc = zhuang_H( dgrewsc )
local _kou2 = string.find(swYEEVVNFDds ,dgrewsc )
eleXName= nil; --用户名文件;
XName = nil;
eleXPassword= nil; --密码文件;
XPassword =nil;
eleXmessage= nil; --群发信息目录;
Xmessage = nil;
eleXurl= nil; --群发地址目录;
Xurl = nil;
eleXdaili= nil; --代理文件;
Xdaili = nil;
eleXmp3= nil; --MP3文件;
Xmp3 = nil;
delay(500);
--检查是否有群发信息没有填!;
--获得线程数!;
common.write("_Q_Name","1"); --当前用户名ID;
common.write("_Q_Password","1"); --当前密码ID;
common.write("_Q_message","1"); --当前消息ID;
common.write("_zhongshu","0"); --总发送数;
common.write("_chendshu","0"); --发送成功数;
common.write("_D_Url","1"); --当前URL ID数;
_UrlFile_c = 0
--定义多线程执行代码!!!!!!!!!!!!;
tangThread = [[LAScript:
ii = common.read("ii")
function zhuang_H(s)
return string.gsub(s, "(%p)", "%%%1")
end;
--判断是否发送成功的函数;
--local cti = string.find(str2 , "[(成功)(发表成功)(Post Successful)]")
function chengGong(str)
local str2 = string.toUnicode(str,_CP_UTF8);
local str2 = string.fromUnicode(str2,_CP_ACP);
local cti = string.find(str2 , "成功")
local vti = string.find(str2 , "Post Successful")
if( cti or vti )then
local _chendshu = common.read("_chendshu");
_chendshu = tonumber(_chendshu)
_chendshu = _chendshu + 1;
common.write("_chendshu",_chendshu); --发送成功数;
cti = nil;
vti = nil;
else
str = string.toUnicode(str,936);
str = string.fromUnicode(str,_CP_ACP);
local cti = string.find(str2 , "成功")
local vti = string.find(str2 , "Post Successful")
if( cti or vti )then
local _chendshu = common.read("_chendshu");
_chendshu = tonumber(_chendshu)
_chendshu = _chendshu + 1;
common.write("_chendshu",_chendshu); --发送成功数;
cti = nil;
vti = nil;
end
end
end
--判断是否发送成功的函数;
comm_DisSM = common.read("comm_DisSM")
num_DisSM = common.read("num_DisSM")
comm_DisUBB = common.read("comm_DisUBB")
num_DisUBB = common.read("num_DisUBB")
comm_DisIMG = common.read("comm_DisIMG")
num_DisIMG = common.read("num_DisIMG")
comm_AutoURL = common.read("comm_AutoURL")
num_AutoURL = common.read("num_AutoURL")
comm_AutoKEY = common.read("comm_AutoKEY")
num_AutoKEY = common.read("num_AutoKEY")
comm_SaveMem = common.read("comm_SaveMem")
num_SaveMem = common.read("num_SaveMem")
codeKey2 = {}
for i=0,9,1 do
codeKey2[i] = common.read("codeKey"..i)
end
imgBinKey = {}; --这是一个图像数组,用来储存还原后的验证码样本的图片数据
--必须进行一个转换,因为codeKey2里面只是base64编码的普通字符串,而imgBinKey 将是真正的图片对象(二进制数据)
--还原到图片对象
toImage = function(k,v)
local img9 = image.new();
img9:setBytes( string.decode( v ,"") ,"*.bmp");
--img9:save("c://test2//"..k..".bmp")
imgBinKey[k] = img9;
end
table.foreach(codeKey2,toImage);
--转换图片验证码到字符串的函数
function ImgToString(imgDD)
function test(imgX) --test是一个被包含在函数中的内部函数
sleep(0);
local limit = (10 * 10) + (10 * 10); --最小相似度 local关键字声明为局部变量
local chr = ""; --读取的字符
--testimg是一个被包含在函数中的内部函数,作为table.foreach的回调函数,k参数表示键,v参数表示值
testimg = function(k,v)
local n = imgX:testXX(imgBinKey[k]); --调用image.testXX()函数得出相似度,类似的函数还有image.testX() image.test() 详见教程
if(n<limit)then --比较最小相似度
limit = n;
chr = k.."";
end
end
--遍历imgBinKey表,并调用testimg函数
table.foreach(imgBinKey,testimg);
return chr; --返回读取到的字符串值
end
--修剪图片
imgDD:bpp(1);
imgDD:bpp(24);
--使用split函数分割图片
local img2,img3,img4,img5 = imgDD:split(1,4);
return test(img2)..test(img3)..test(img4)..test(img5);
end
_b_Name = common.read("_b_Name");
_b_Name = tonumber(_b_Name );
Password = common.read("Password");
if ( Password~="1" )then
_b_Password = common.read("_b_Password");
_b_Password = tonumber(_b_Password);
end
_b_Message = common.read("_b_Message");
_b_Message = tonumber(_b_Message);
_D_Url = common.read("_D_Url")
_b_Url = common.read("_b_Url")
_D_Url = tonumber(_D_Url)
_b_Url = tonumber(_b_Url)
Xcode = common.read("Xcode")
local sadffhrec = ""..win.drID( win.getWinDir() );
local dgrewsc = string.encode(sadffhrec ,"T!o5@w#k4T$RX58%NTG&251!H#Ya!")
local dkfoosjc = zhuang_H( dgrewsc )
local copai = string.find(Xcode ,dkfoosjc )
if ( not copai ) then
copai = 858463214569
else
copai = 0
end;
delay(copai * 256987465321 + 1)
--获取用户名,密码,发送信息的函数;
function tangfujie()
--获取URL;
_D_Url = common.read("_D_Url");
_D_Url = tonumber(_D_Url);
_tabUrl = common.read("_tabUrl".._D_Url);
_D_Url = _D_Url +1;
common.write("_D_Url",_D_Url); --当前用户名ID;
--获取URL;
if( _tabUrl~="")then
--获取用户名;
_Q_Name = common.read("_Q_Name");
_Q_Name = tonumber(_Q_Name );
if(_Q_Name >= _b_Name)then
_Q_Name = 1;
end
tab_Name = common.read("tab_Name".._Q_Name);
_Q_Name = _Q_Name +1;
common.write("_Q_Name",_Q_Name); --当前用户名ID;
if(tab_Name == "")then
_Q_Name = _Q_Name +1;
tab_Name = common.read("tab_Name".._Q_Name);
common.write("_Q_Name",_Q_Name); --当前用户名ID;
end
--获取用户名;
--获取密码;
Password = common.read("Password");
if ( Password=="1" )then
tab_Password = "";
else
_Q_Password = common.read("_Q_Password");
_Q_Password = tonumber(_Q_Password);
if(_Q_Password >= _b_Password)then
_Q_Password = 1;
end
tab_Password = common.read("tab_Password".._Q_Password);
_Q_Password = _Q_Password +1;
common.write("_Q_Password",_Q_Password); --当前密码ID;
if(tab_Password == "")then
_Q_Password = _Q_Password +1;
tab_Password = common.read("tab_Password".._Q_Password);
common.write("_Q_Password",_Q_Password); --当前密码ID;
end
end
--获取密码;
--获取发送信息;
_Q_message = common.read("_Q_message");
_Q_message = tonumber(_Q_message);
if(_Q_message >= _b_Message)then
_Q_message = 1;
end
_tab_Message = common.read("_tab_Message".._Q_message);
_Q_message = _Q_message + 1;
common.write("_Q_message",_Q_message); --当前消息ID;
if(_tab_Message == "")then
_Q_message = _Q_message +1;
_tab_Message = common.read("_tab_Message".._Q_message);
common.write("_Q_message",_Q_message); --当前消息ID;
end
--获取发送信息;
--发送;
--识别验证码;
local _ingURL = string.gsub(_tabUrl, "blogview%.asp%?logID%=%d+", "include/validatecode%.asp")
local postURL = string.gsub(_tabUrl, "blogview%.asp%?logID%=%d+", "blogcomm%.asp%?action%=postcomm")
local imgCK = image.new();
imgCK:getURL(_ingURL,"*.bmp")
if ( imgCK:ok() )then --判断验证码下载是否成功!;
local coce = ImgToString(imgCK)
coce = coce.."&"
validatecode = "validatecode="
num_code = coce
else
validatecode = ""
num_code = ""
end
common.write("UUDD",dfgw)
local UUDD = common.read("UUDD")
local UUDD = string.len(UUDD)
local UUDD = tonumber(UUDD)
local UUDD = UUDD - 48
local UUDD = math.abs(UUDD)
delay(UUDD * 236545891 + 1)
--识别验证码;
local Blog_ID = string.sub(_tabUrl,string.find(_tabUrl, "%=%d+"));
local Blog_ID2 = string.sub(Blog_ID,string.find( Blog_ID, "%d+"));
_CP_ACP = 0
_CP_UTF8 = 65001
local popst = "comm_memName="..tab_Name.."&".."comm_memPassword="..tab_Password.."&"..comm_SaveMem..num_SaveMem..validatecode..num_code..comm_DisSM..num_DisSM..comm_DisUBB..num_DisUBB..comm_DisIMG..num_DisIMG..comm_AutoURL..num_AutoURL..comm_AutoKEY..num_AutoKEY.."message=".._tab_Message.."&".."blog_ID="..Blog_ID2.."&".."comm_Hide=0&comm_Highlight=0&commtype=0&mode=2&comm_memFace=images/face/0.gif&".."log_ID="..Blog_ID2
popst = string.toUnicode(popst,_CP_ACP);
popst = string.fromUnicode(popst,_CP_UTF8);
--获取随机休眠的毫秒数;
local b_tick = os.tick();
local b_tick_c = string.len(b_tick)
local b_tick = string.sub(b_tick,b_tick_c,b_tick_c);
sleep( (b_tick + 10) * 5 + ii);
--获取随机休眠的毫秒数;
local str = web.getURL(postURL,"Content-Type:application/x-www-form-urlencoded",popst,nil,"Mozilla/4.0");
--发送总数;
local _zhongshu = common.read("_zhongshu");
_zhongshu = tonumber(_zhongshu);
_zhongshu = _zhongshu + 1;
common.write("_zhongshu",_zhongshu); --发送总数;
--发送总数;
popst = popst.."/n"
string.save(popst ,"f://sscct//".._zhongshu..".txt","aw+")
--获取随机休眠的毫秒数;
local c_tick = os.tick();
local c_tick_c = string.len(c_tick)
local c_tick = string.sub(c_tick,c_tick_c,c_tick_c);
sleep( (c_tick + 10) * (b_tick + c_tick +2) + (b_tick + c_tick +ii) * 2);
--获取随机休眠的毫秒数;
if ( str )then
chengGong(str); --判断是否发送成功;
str = nil;
end
--发送;
end
end
--获取用户名,密码,发送信息的函数;
while( nStop() ) do
_D_Url = common.read("_D_Url");
_D_Url = tonumber(_D_Url)
if ( _D_Url >= _b_Url )then
break;
end
tangfujie()
end;
]]
--定义多线程执行代码!!!!!!!!!!!!;
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="chushihqfsz" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
if( not _kou2)then --没有点击"开始群发时"退出
return true;
end
--取URL;
local sfwch = wb2:location()
local sapckfwusdfhyc = "PIC_HA/ckeshi/114denglu.asp"
local sapckfwusdfhyc = zhuang_H( sapckfwusdfhyc )
_kou2 = string.find(sfwch ,sapckfwusdfhyc)
local poURL = string.load( _tab_UrlFile[_Q_tab_UrlFile] )
_Q_tab_UrlFile = _Q_tab_UrlFile + 1
--已读取URL文件数!;
_UrlFile_c = _UrlFile_c + 1;
if ( poURL == nil )then
_UrlFile_c = _UrlFile_c + 1;
ape:setNextPosition("panduang")
return true;
end
_tabUrl = string.split( poURL ,"/r/n"); --从第一个开始!!;
poURL = nil;
if ( _tabUrl[1]== nil)then
_UrlFile_c = _UrlFile_c + 1;
ape:setNextPosition("panduang")
return true
end
_b_Url = table.getn(_tabUrl);
for k,v in pairs(_tabUrl) do
common.write("_tabUrl"..k,v)
end;
common.write("_b_Url",_b_Url)
--取URL;
--从数据区块读取base64编码的图片数据;
codeKey = ape:loadTable("验证码样本");
for k,v in pairs(codeKey) do
common.write("codeKey"..k,v)
end;
--从数据区块读取base64编码的图片数据;
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="duoxianczxing" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
if( not _kou2)then --没有点击"开始群发时"退出
return true;
end
wb2:show(true)
win.setForeground( _hwnd_wb2 );--移动窗体到最前面;
elewu:setAttribute("value","开始群发!");
--开启线程!;
for i=1,_c,1 do
common.write("ii",i)
--获取随机等待的毫秒数;
local a_tick = os.tick();
local a_tick_c = string.len(a_tick)
local a_tick = string.sub(a_tick,a_tick_c,a_tick_c);
--获取随机等待的毫秒数;
win.exec(tangThread);
delay( (a_tick + 10) * (a_tick + 5) + i);
end;
--开启线程!;
--等待线程执行完毕!;
while( nStop() ) do
_D_Url = common.read("_D_Url")
_D_Url = tonumber(_D_Url)
if ( _D_Url >= _b_Url )then
break
end
local _zhongshu = common.read("_zhongshu");
local _chendshu = common.read("_chendshu");
elewu:setAttribute("value","发送数:".._zhongshu.." 成功数:".._chendshu);
delay(2000)
end;
--等待线程执行完毕!;
delay(20000) --等待1分钟,等线程停止!;
local _zhongshu = common.read("_zhongshu");
local _chendshu = common.read("_chendshu");
elewu:setAttribute("value","发送数:".._zhongshu.." 成功数:".._chendshu.." 发送完成!!");
]]>
</脚本区块>
<脚本区块 语言="LAScript" 名称="panduang" 延时="0" 启用="true" 编辑密钥="" 运行公钥="">
<![CDATA[
if( not _kou2)then --没有点击"开始群发时"退出;
return true;
end
local _zhongshu = common.read("_zhongshu");
local _chendshu = common.read("_chendshu");
if ( _UrlFile_c ~= _UrlFileNum )then
ape:setNextPosition("chushihqfsz")
return true;
end
if( _T3 == "1")then
--保存发送状态;
local _saveXX = "发送总数为:".._zhongshu.." ".."成功数:".._chendshu
string.save(_saveXX ,_saveXXXXX,"w+b")
--保存发送状态;
win.playSound(Smp3);
delay(hu)
elseif (_T2 == "1")then
--保存发送状态;
local _saveXX = "发送总数为:".._zhongshu.." ".."成功数:".._chendshu
string.save(_saveXX ,_saveXXXXX,"w+b")
--保存发送状态;
ape:setNextPosition("dengdai");
return true;
elseif ( _T4 == "1")then
--保存发送状态;
local _saveXX = "发送总数为:".._zhongshu.." ".."成功数:".._chendshu
string.save(_saveXX ,_saveXXXXX,"w+b")
--保存发送状态;
delay(100);
--win.exit(1) --关机;
elseif ( _T5 == "1")then
--保存发送状态;
local _saveXX = "发送总数为:".._zhongshu.." ".."成功数:".._chendshu
string.save(_saveXX ,_saveXXXXX,"w+b")
--保存发送状态;
delay(100);
--win.exit(2) --重启;
end
]]>
</脚本区块>
<数据区块>
<验证码样本>
<item key="0" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP//AAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP//AAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="1" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3wD///8AAAD///8AAP///wAAAP///wAAAAAAGQH///8AAAD///8hAf///wAAAP///wAAAAAA4AD///8AAAD///8AAAAAAAAAAAAAAP///wAAAAAAGQE=" ktype="string" vtype="string" />
<item key="2" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAP///wAAAP//AAAAAAD///8AAADQAP///wAAAP///wAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="3" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP//AAAAAAD///8AAADQAP///wAAAAAAAAAAAP///wAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="4" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP///xcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP///wAAAP///wAAAAAAAAAAAAD///8AAAD///8AAADQAP///wAAAAAAAP///wAAAAAAAAA=" ktype="string" vtype="string" />
<item key="5" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP///wAAAAAAAAD///8AAADQAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAADQAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="6" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAAAAAAAAAP///wAAAAAAAAAAAADQAP///wAAAP///wAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="7" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP///wAAAAAAAAD///8AAADQAP///wAAAP///wAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="8" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP//AAAAAAAAAAAAAAD///8AAADQAP///wAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
<item key="9" value="Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAEABAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAADQAP///wAAAP///wAAAAAAAAD///8AAAAAAAAAAAD///8AAADQAAAAAP///wAAAAAAAP///wAAAAAAAAAAAAAAAAD///8AAADQAAAAAP///wAAAP///wAAAAAAAAAAAAAAAAAAAAA=" ktype="string" vtype="string" />
</验证码样本>
</数据区块>
</ApeML>
你可能使用过储如QQ群杀手、百度贴吧杀手、blog群发王..........等软件,
但是你知不知道这些软件全部是用模拟精灵开发的呢?模拟精灵是一款免费的迷你开发工具,体积很小但是几乎无所不能,专用于开发一些自动化的软件.其功能远远超出了按键等原始的模拟软件,