- UID
- 58584
注册时间2009-1-25
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 慵懒 2015-10-9 11:25 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
发表于 2009-8-26 04:38:02
|
显示全部楼层
用PEID查壳:ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov,用脚本Aspr2.XX_unpacker_v1.14aSC.osc脱壳,用ImportRec修复,修复好的主程序为:de_bizcard_.exe,试运行,一闪而过,有自校验,下断点bp ExitProcess,F9运行,断下,停在7C81CDEA,看堆栈:
0012FCA8 100296FD /CALL 到 ExitProcess 来自 krnln.100296F7
0012FCAC 00000000 \ExitCode = 0
0012FCB0 /0012FCC8
0012FCB4 |006CE550 返回到 de_bizca.006CE550 来自 de_bizca.0077C05A
0012FCB8 |00000000
0012FCBC |006CE301 返回到 de_bizca.006CE301 来自 de_bizca.0077C096
在0012FCA8处单击右键---》反汇编窗口跟随,停在100296FD 处,向上拉,在断首下硬件断点:
100296E1 C3 retn
100296E2 55 push ebp --- 此处下断
100296E3 8BEC mov ebp,esp
100296E5 8B45 08 mov eax,ss:[ebp+8]
100296E8 50 push eax
100296E9 B9 A8EB0E10 mov ecx,krnln.100EEBA8
100296EE E8 2DC50200 call krnln.10055C20
100296F3 8B4D 08 mov ecx,ss:[ebp+8]
100296F6 51 push ecx
100296F7 FF15 DC330C10 call ds:[<&KERNEL32.ExitProcess>] ; kernel32.ExitProcess
100296FD 5D pop ebp ----停在此处
接着 Ctbl+F2重新载入,断下来,看堆栈:
0012FCB4 006CE550 返回到 de_bizca.006CE550 来自 de_bizca.0077C05A-----单击右键---》反汇编窗口跟随
0012FCB8 00000000
0012FCBC 006CE301 返回到 de_bizca.006CE301 来自 de_bizca.0077C096
0012FCC0 00000000
0012FCC4 006CED3D de_bizca.006CED3D
0012FCC8 /0012FCE0
在0012FCB4处单击右键---》反汇编窗口跟随,停在下面
006CE529 55 push ebp
006CE52A 8BEC mov ebp,esp
006CE52C 81EC 0C000000 sub esp,0C
006CE532 E8 20000000 call de_bizca.006CE557
006CE537 E8 C4040000 call de_bizca.006CEA00
006CE53C 8945 F8 mov ss:[ebp-8],eax
006CE53F 837D F8 01 cmp dword ptr ss:[ebp-8],1
006CE543 0F84 0A000000 je de_bizca.006CE553-------可疑点
006CE549 6A 00 push 0
006CE54B E8 0ADB0A00 call de_bizca.0077C05A------调用自校验
006CE550 83C4 04 add esp,4-------------停在此处
006CE553 8BE5 mov esp,ebp
向上看,发现可疑点006CE543,把JE改为JMP,右键----》复制到可执行文件----》所有修改,出现菜单,点击“全部复制”,右键保存文件,文件名为de_bizcard_1.exe,试运行,软件可以运行。破解的关键如下:
006DDB1C BB A4060000 mov ebx,6A4
006DDB21 E8 70E50900 call de_bizca.0077C096
006DDB26 83C4 28 add esp,28
006DDB29 8B5D E0 mov ebx,ss:[ebp-20]
006DDB2C 85DB test ebx,ebx
006DDB2E 74 09 je short de_bizca.006DDB39
006DDB30 53 push ebx
006DDB31 E8 42E50900 call de_bizca.0077C078
006DDB36 83C4 04 add esp,4
006DDB39 E8 A3000000 call de_bizca.006DDBE1 ; 关键call,进去修改标志位
006DDB3E 8945 F8 mov ss:[ebp-8],eax
006DDB41 837D F8 01 cmp dword ptr ss:[ebp-8],1
006DDB45 0F85 5C000000 jnz de_bizca.006DDBA7 ; 关键调
006DDB4B 68 04000080 push 80000004
006DDB50 6A 00 push 0
006DDB52 68 897A4000 push de_bizca.00407A89 ; ASCII "Message"
006DDB57 68 01030080 push 80000301
006DDB5C 6A 00 push 0
006DDB5E 68 00000000 push 0
006DDB63 68 04000080 push 80000004
006DDB68 6A 00 push 0
006DDB6A 68 AD7B4000 push de_bizca.00407BAD ; ASCII "Register success,Thank you for your register!"
006DDB6F 68 03000000 push 3
006DDB74 BB 00030000 mov ebx,300
006DDB79 E8 18E50900 call de_bizca.0077C096
006DDB7E 83C4 28 add esp,28
006DDB81 68 01000100 push 10001
006DDB86 68 03610106 push 6016103
006DDB8B 68 04610152 push 52016104
006DDB90 68 01000000 push 1
006DDB95 BB 60030000 mov ebx,360
006DDB9A E8 F7E40900 call de_bizca.0077C096
006DDB9F 83C4 10 add esp,10
006DDBA2 E9 36000000 jmp de_bizca.006DDBDD
006DDBA7 68 04000080 push 80000004
006DDBAC 6A 00 push 0
006DDBAE 68 897A4000 push de_bizca.00407A89 ; ASCII "Message"
006DDBB3 68 01030080 push 80000301
006DDBB8 6A 00 push 0
006DDBBA 68 00000000 push 0
006DDBBF 68 04000080 push 80000004
006DDBC4 6A 00 push 0
006DDBC6 68 DB7B4000 push de_bizca.00407BDB ; ASCII "Register fails! Please try again."
006DDBCB 68 03000000 push 3
006DDBD0 BB 00030000 mov ebx,300
006DDBD5 E8 BCE40900 call de_bizca.0077C096
006DDBDA 83C4 28 add esp,28
006DDBDD 8BE5 mov esp,ebp
006DDBDF 5D pop ebp
006DDBE0 C3 retn
希望高手分析一下注册算法,相互学习一下。
[ 本帖最后由 老万 于 2009-8-26 22:24 编辑 ] |
|