| 
注册时间2009-1-25
阅读权限30
最后登录1970-1-1UID58584 龙战于野 
 
 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 编辑 ]
 | 
 |