好友
阅读权限20
听众
最后登录1970-1-1
|
by:kernel2008->【i386 information security team of china】<-qq:kernel2008@qq.com
【调试平台】深度优化windows xp sp2
【目标程序】进程执法官2.50【用到工具】OD,Peid
【脱壳目的】偶菜菜呀就是想啊想玩玩,飞呀飞,一切都是为了学习^_^!
【文件下载】http:// www.firebug.org.cn/download.asp
软件简单介绍:
进程执法官是一款强悍的手工杀毒与系统监控软件。它通过对应用程序、普通进程、网络进程、隐藏进程、关键系统目录、启动项、系统用户、共享目录等系统关键资源的实时监视与查杀,确保系统的安全,让各类非法进程无所遁形。“进程执法官”将帮你简单的解决所有的进程问题,无论你是新手还是老手,都可以通过执法官提供的大量进程资料,准确定位非法进程,确保系统安全,弥补防火墙和杀毒软件的不足。
支持平台:Win2000/XP/2003 任何版本
最新版本:V2.0个人正式版
官方主页:http:// www.firebug.org.cn /
官方论坛:http:// www.firebug.org.cn/forum/
官方下载:http://
使用Peid查壳显示为:ASPack 2.12 -> Alexey Solodovnikov
运行目标程序程序,输入注册信息,提示再次点击注册看看是否注册,好再次来点击注册,没有注册的。
用户名:i386 information security team of china
注册码:123456
留心的朋友就会发现该目标程序目录下会自动生成有一个INI文件,使用记事本看看里面的信息,而且果不其然的里面有我们刚才填入的注册信息,好,破解思路来了,那么,下面开始追码吧。载入目标程序于OD中,在命令行下输入bp GetPrivateProfileStringA,F9运行程序(偶这里使用键盘了),大概F9运行66次就到达返回时机了,注意看堆栈窗口出现如下信息即是了:
0012D30C 73DCA45F /CALL 到 GetPrivateProfileStringA 来自 mfc42.73DCA459
0012D310 0047416C |Section = "RigisterSettings"
0012D314 00474180 |Key = "user"
0012D318 73E0E564 |Default = ""
0012D31C 0012D350 |ReturnBuffer = 0012D350
0012D320 00001000 |BufSize = 1000 (4096.)
0012D324 00DB2E98 \IniFileName = "C:\Documents and Settings\Administrator\桌面\jczfg\进程
执法官2.50压缩包\PJudger.ini"
好,到此ALT+F9返回,F8往下单步,又回到断点处,再ALT+F9返回,代码及其分析如下:
0041CB2D 50 PUSH EAX
0041CB2E 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
0041CB32 C64424 38 06 MOV BYTE PTR SS:[ESP+38],6
0041CB37 E8 58910300 CALL PJudger.00455C94
0041CB3C 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
0041CB40 885C24 34 MOV BYTE PTR SS:[ESP+34],BL
0041CB44 E8 45910300 CALL PJudger.00455C8E
0041CB49 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18] //取机器码赋值给EAX寄存器
0041CB4D 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14] //取用户名赋值给ECX寄存器
0041CB51 50 PUSH EAX
0041CB52 51 PUSH ECX
0041CB53 8D5424 14 LEA EDX,DWORD PTR SS:[ESP+14]
0041CB57 68 545F4700 PUSH PJudger.00475F54
0041CB5C 52 PUSH EDX
0041CB5D E8 D6920300 CALL PJudger.00455E38
0041CB62 83C4 10 ADD ESP,10
0041CB65 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
0041CB69 E8 52540100 CALL PJudger.00431FC0
0041CB6E 6A 0C PUSH 0C
0041CB70 C64424 38 07 MOV BYTE PTR SS:[ESP+38],7
0041CB75 6A 00 PUSH 0
0041CB77 8D4424 2C LEA EAX,DWORD PTR SS:[ESP+2C]
0041CB7B 50 PUSH EAX
0041CB7C 51 PUSH ECX
0041CB7D 8D5424 1C LEA EDX,DWORD PTR SS:[ESP+1C]
0041CB81 8BCC MOV ECX,ESP
0041CB83 896424 38 MOV DWORD PTR SS:[ESP+38],ESP
0041CB87 52 PUSH EDX
0041CB88 E8 A5920300 CALL PJudger.00455E32
0041CB8D 8D4424 38 LEA EAX,DWORD PTR SS:[ESP+38]
0041CB91 50 PUSH EAX
0041CB92 E8 69540100 CALL PJudger.00432000
0041CB97 83C4 08 ADD ESP,8
0041CB9A 8BC8 MOV ECX,EAX
0041CB9C C64424 40 08 MOV BYTE PTR SS:[ESP+40],8
0041CBA1 E8 C8920300 CALL PJudger.00455E6E
0041CBA6 8BF0 MOV ESI,EAX
0041CBA8 6A 0C PUSH 0C
0041CBAA 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
0041CBAE 6A 00 PUSH 0
0041CBB0 51 PUSH ECX
0041CBB1 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
0041CBB5 C64424 40 09 MOV BYTE PTR SS:[ESP+40],9
0041CBBA E8 AF920300 CALL PJudger.00455E6E
0041CBBF 8B36 MOV ESI,DWORD PTR DS:[ESI] //×注意×开始出现注册码了
0041CBC1 > 8B00 MOV EAX,DWORD PTR DS:[EAX] 把假的注册码赋值给了EAX
0041CBC3 56 PUSH ESI //此下的几句都可以做注册机,在ESI中(偶在此选择)
0041CBC4 50 PUSH EAX
0041CBC5 FF15 34FC4500 CALL DWORD PTR DS:[45FC34]
0041CBCB 83C4 08 ADD ESP,8
0041CBCE 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
0041CBD2 85C0 TEST EAX,EAX
0041CBD4 0F944424 0B SETE BYTE PTR SS:[ESP+B]
0041CBD9 E8 B0900300 CALL PJudger.00455C8E
0041CBDE 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
0041CBE2 C64424 34 08 MOV BYTE PTR SS:[ESP+34],8
0041CBE7 E8 A2900300 CALL PJudger.00455C8E
0041CBEC 8D4C24 28 LEA ECX,DWORD PTR SS:[ESP+28]
0041CBF0 C64424 34 07 MOV BYTE PTR SS:[ESP+34],7
0041CBF5 E8 94900300 CALL PJudger.00455C8E
0041CBFA 8A4424 0B MOV AL,BYTE PTR SS:[ESP+B]
0041CBFE 885C24 34 MOV BYTE PTR SS:[ESP+34],BL
0041CC02 84C0 TEST AL,AL
0041CC04 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
0041CC08 74 56 JE SHORT PJudger.0041CC60 //很可疑的爆破点,但偶没深入了!
0041CC0A E8 E1530100 CALL PJudger.00431FF0
0041CC0F 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
0041CC13 C64424 34 02 MOV BYTE PTR SS:[ESP+34],2
0041CC18 E8 71900300 CALL PJudger.00455C8E
0041CC1D 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
0041CC21 C64424 34 01 MOV BYTE PTR SS:[ESP+34],1
0041CC26 E8 63900300 CALL PJudger.00455C8E
0041CC2B 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
0041CC2F C64424 34 00 MOV BYTE PTR SS:[ESP+34],0
0041CC34 E8 55900300 CALL PJudger.00455C8E
0041CC39 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
0041CC3D C74424 34 FFFFF>MOV DWORD PTR SS:[ESP+34],-1
0041CC45 E8 44900300 CALL PJudger.00455C8E
0041CC4A B8 01000000 MOV EAX,1
0041CC4F 8B4C24 2C MOV ECX,DWORD PTR SS:[ESP+2C]
0041CC53 64:890D 0000000>MOV DWORD PTR FS:[0],ECX
0041CC5A 5E POP ESI
0041CC5B 5B POP EBX
0041CC5C 83C4 30 ADD ESP,30
0041CC5F C3 RETN
追码结果如下--->
用户名:i386 information security team of china
机器码:WDC WD800BB-00JHC0
注册码:1A794D52470C
做注册机偶选择如下(好几处,大家看着喜欢选择做):
寄存方式:ESI
中断地址:0041CBC3 56
字节长度:1
第一字节:56
【总结如下】注册信息保存在INI文件,有点类似ini文件类型重启验证注册,但又有点不一样,关键是下好断点,找到返回时机(这点很重要)。当然认真地分析代码也是关键!
屏幕录像下载:
http://www.namipan.com/d/ini%e6% ... %8c%e8%af%81%e5%b8%
a6%e5%a3%b3%e7%a0%b4%e8%a7%a3%e4%b8%80%e4%be%
8b.zip/d0baae20d222dc4913bdc85ccf2b6ed036b1db2f6dffc900 |
|