文章作者:混世魔王
信息来源:邪恶八进制信息安全团队(
www.eviloctal.com)
适合读者:破解爱好者
前置知识:OD使用基础 图片没有传,不好意思.作成DOC附件上传了。
OD调试 传奇客星
文/图 混世魔王
前段日子做传奇SF被攻击,于是瞎找防火墙,用到了传奇私服伴侣测试,里面自带了一个攻客的传奇客星终结版作为压力软件,由于传奇客星是一个比较有争议的软件,想当年那个口水,飞龙,驽马,小狗。
但是,软件有一点不爽的地方就是每次运行都会打开攻客的网站,这点就比较烦人了,反正一直在玩反汇编,所以我就决定搞定它。先查壳,Upack 2.4 - 2.9 beta -> Dwing,如图1所示。
图1
网上没有找到Upack 的内容,郁闷。还是用OD载入,用脱其他壳的方法一顿乱脱,居然还给我脱下来了。庆幸之余,发到看雪去交流心得,才知道Upack的壳年代久远,为我等后出小辈不知。更为惭愧的是Upack的脱壳机早都有了。
我用的是Quick.Unpack.1.0.打开目标软件,程序会先进行一次查壳。
00:41:12 - Opened 传奇客星终结版.exe
Quick self analyze.... unknown
PESniffer EP Scan: Upack v0.24 - v0.27 beta / v0.28 alpha
选择OEP finders 中的 Upack,如图2所示。
图2
接着点UNPACK NOW ,现在脱壳就OK了。再去查壳,Microsoft Visual C++ 6.0。修复都不用了,程序直接运行。如图3所示。
图3
下面就来去他的NAG,下断点,BPX ShellExecuteA F9运行一下看看效果。
00403630 > \A1 D8764000 MOV EAX,DWORD PTR DS:[4076D8]
00403635 . 8B0D DC764000 MOV ECX,DWORD PTR DS:[4076DC];
0040363B . 8B15 D4764000 MOV EDX,DWORD PTR DS:[4076D4];
00403641 . 6A 01 PUSH 1 ; /IsShown = 1
00403643 . 50 PUSH EAX ; |DefDir => ""
00403644 . 51 PUSH ECX ; |Parameters => ""
00403645 . 52 PUSH EDX ; |FileName => "
http://www.hackeroo.com"
00403646 . 68 EC754000 PUSH 传奇客星.004075EC ; |Operation = "open"
0040364B . 6A 00 PUSH 0 ; |hWnd = NULL
0040364D . FF15 A8524000 CALL DWORD PTR DS:[<&shell32.ShellExecut>; \ShellExecuteA
不懂的可以查查API的资料表,直接把00403646 和 00403645 这两个地址NOP 就可以解决弹出网站的问题。
0040363B . 8B15 D4764000 MOV EDX,DWORD PTR DS:[4076D4];
把4076D4 的数据传送到EDX寄存器,如果你跟到004076D4 看的话,就会发现这个地址的数据就是攻客的网站,所以,如果你想把弹出来网站修改成自己站点的话……你想?那我小小BS你一下。
下Messagebox 断没有断到,后来才发现都是用SendmessageA的。
00402CF0 . A3 10774000 MOV DWORD PTR DS:[407710],EAX
00402CF5 . A1 14774000 MOV EAX,DWORD PTR DS:[407714]
00402CFA . 83F8 01 CMP EAX,1 //和一比较
00402CFD . 7D 13 JGE SHORT 传奇客星.00402D12 //若大于或者等于就跳
00402CFF . 6A 00 PUSH 0
00402D01 . 6A 00 PUSH 0
00402D03 . 68 F8744000 PUSH 传奇客星.004074F8
00402D08 . E8 530C0000 CALL <JMP.&mfc42.#1200_?AfxMessageBox@@Y>
00402D0D . E9 D2000000 JMP 传奇客星.00402DE4
00402D12 > A1 10774000 MOV EAX,DWORD PTR DS:[407710]//经过第一个判断跳到这
00402D17 . 83F8 01 CMP EAX,1 //继续和一比较
00402D1A . 6A 00 PUSH 0
00402D1C . 7D 11 JGE SHORT 传奇客星.00402D2F //若大于或者等于就跳
00402D1E . 6A 00 PUSH 0
00402D20 . 68 DC744000 PUSH 传奇客星.004074DC
判断攻击目标和代理数,若大于等于则跳出警告,如果不大于1,就是不写,会提示“攻击太少”或者“代理太少”的警告。不过你有没有发现,攻客禁止别人使用这个软件攻击自己的网站,如图4所示。
图4
怎么?就允许你攻击别人?继续看代码。
00401AC4 . 6A 01 PUSH 1
00401AC6 . E8 8F1E0000 CALL <JMP.&mfc42.#6334_?UpdateData@CWnd@>
00401ACB . 8DB7 EC000000 LEA ESI,DWORD PTR DS:[EDI+EC]
00401AD1 . 6A 00 PUSH 0
00401AD3 . 68 7C724000 PUSH 传奇客星.0040727C ; ASCII "hackeroo.com"
00401AD8 . 8BCE MOV ECX,ESI
00401ADA . E8 871E0000 CALL <JMP.&mfc42.#6663_?Find@CString@@QB>
00401ADF . 85C0 TEST EAX,EAX
00401AE1 . 6A 00 PUSH 0
00401AE3 . 7E 0F JLE SHORT 传奇客星.00401AF4
00401AE5 . 6A 00 PUSH 0
00401AE7 . 68 58724000 PUSH 传奇客星.00407258
00401AEC . E8 6F1E0000 CALL <JMP.&mfc42.#1200_?AfxMessageBox@@Y>
00401AF1 . 5F POP EDI
00401AF2 . 5E POP ESI
00401AF3 . C3 RETN
00401AF4 > 68 48724000 PUSH 传奇客星.00407248 ; ASCII "219.153.11.195"
00401AF9 . 8BCE MOV ECX,ESI
00401AFB . E8 661E0000 CALL <JMP.&mfc42.#6663_?Find@CString@@QB>
00401B00 . 85C0 TEST EAX,EAX
00401B02 . 6A 00 PUSH 0
00401B04 . 7E 0F JLE SHORT 传奇客星.00401B15
00401B06 . 6A 00 PUSH 0
00401B08 . 68 24724000 PUSH 传奇客星.00407224
00401B0D . E8 4E1E0000 CALL <JMP.&mfc42.#1200_?AfxMessageBox@@Y>
00401B12 . 5F POP EDI
00401B13 . 5E POP ESI
00401B14 . C3 RETN
从代码00401AC4一直到00401BFB这一段可都是攻客保护的IP,估计是保护的SF的IP吧。输入这些IP 任意一个到攻击列表中,都会有提示的,如图5所示。
图5
找到地方要改就随便你了。我们看这几句。
00401AD3 . 68 7C724000 PUSH 传奇客星.0040727C ; ASCII "hackeroo.com"
00401AD8 . 8BCE MOV ECX,ESI
00401ADA . E8 871E0000 CALL <JMP.&mfc42.#6663_?Find@CString@@QB>
00401ADF . 85C0 TEST EAX,EAX //比较
00401AE1 . 6A 00 PUSH 0
00401AE3 . 7E 0F JLE SHORT 传奇客星.00401AF4 //若攻击目标没有自己的站跳下去继续判断
用UE打开,搜索ASCII “hackeroo.com”,如图6所示。
图6
现在就随便你改了,如图7所示。
图7
再看看效果,怎么样,hackeroo.com的站点加入到我们的攻击列表中去了。
(完)