W32DASM范例 例五
文章作者:Cai Jie工具 :W32dasm,Hiew
对象 :WWMAIL 2.40 发垃圾邮件的工具 , 支持 BCC, 一次可发无数封垃圾信 .
第一步 : 首先把主程序 WWMAIL.EXE 复制两份 , 分别命名为 1.EXE,2.EXE.
第二步 : 运行 :W32DASM, 将 WWMAIL.EXE 反编译 .
第三步 : 我们先不忙着分析 , 先来看看这个软件的大概样子吧 .
运行 WWMAIL.EXE, 弹出一个 NAG 窗口 , 看看写的是什么 , 说不定有一些线索 . 嗯 ," 如果不注册 , 在发出 5 封信后将暂停一下 ...",
"BCC 功能也不能用 ..."... 注意这句 "BCC FUNCTION WILL NOT OPERATE", 想象一下 , 如果我点中 BCC 选项 , 那么应该会弹出
一个窗口说未注册不能用之类的话 , 那么在这个窗口之前一定有一个地方判断是否注册 ! 对 , 从这里试试看能不能突破 ?
第四步 : 继续运行 WWMAIL, 点一下 SETUP 菜单 , 出现一个设置窗口 , 其中有一项是 : "SEND VIA BCC IF POSSIBLE",
点一下 , 弹出一个窗口说 :"BCC IS DISABLED IN THIS SHAREWARE",OK, 找到了突破口了 .8-)
第五步 : 回到 W32DASM, 点 string data items 按钮 , 向下找到 "BCC IS DISABLED INTHIS SHAREWARE", 双击 , 然后关掉 STRING
DATA 窗口 .
第六步 : 此时 W32DASM 的光条应该停在下面这行上 :
* Possible StringData Ref from Code Obj -> "BCC IS DIS..."
:0046E917 B83CE94600 MOV EAX,0046E93C
......
第七步 : 向上移动光条直到我们找到这样的语句 :cmp,test,xor 等等 .
:0046e903 803d610e470000 cmp byte ptr [00470e61],00
:0046e90a 7422 je 0046e92e
......
第八步 : 对了对了 , 就是这了 , 第一句判断是否注册 , 如果没有则显示那个 "BCC..." 窗口 . 注意到程序是读取内存中的某个位置的
值来判断是否注册的 , 所以只要找到所有读取此处值的语句就可以找到所有的判断点 .
第九步 : 从 DOS 窗口启动 HIEW 1.EXE. 切换为 DECODE 模式 . 然后按 F7 搜索 :803D610E470000, 一共可以找到四个地方 , 然后将其后的
JE 改成 JNE 或者 JMP, 将 JNE 改成 JE 或者 9090.
第十步 : 按 F9 将修改存盘 , 退出 HIEW.
第十一 : 在 DOS 下运行 1.EXE 试试 ?ULA! 成功了 !8-))
页:
[1]