爆破一易语言CrackMe,KEY授权导入类型
爆破一易语言CrackMe,KEY授权导入类型
程序地址html">http://www.52pojie.cn/thread-23566-1-1.html
运行程序出现,“注册文件导入失败,请查看您是否拥有授权Key”
程序好还加了VMP
--------
OD载入,下断bp MessageBoxA,F9运行。断下后看堆栈0012FF10 00C3189D /CALL 到 MessageBoxA 来自 00C31898 ;在这返回
0012FF14 00000000 |hOwner = NULL
0012FF18 00C301F2 |Text = "注册文件导入失败,请查看您是否拥有授权Key"
0012FF1C 00C3021C |Title = "信息:"
0012FF20 00000000 Style = MB_OK|MB_APPLMODAL
0012FF24 00000283
----------------00C31898 E8 A1130000 call 00C32C3E ; 错误提示,返回到这里,向上找到段首
00C3189D 3965 F4 cmp dword ptr ss:[ebp-C],esp
00C318A0 74 0D je short 00C318AF
00C318A2 68 06000000 push 6
00C318A7 E8 8C130000 call 00C32C38
-----------------
00C3182D 55 push ebp ; 段首,下硬件执行断点,重载程序
00C3182E 8BEC mov ebp,esp
重新载入后,F9运行,中断在00C3182D 55 push ebp
看堆栈第一行,返回
0012FF48 00C31809 返回到 00C31809 来自 00C3182D ;在这里返回。
-----------------
00C31809 8B5D F4 mov ebx,dword ptr ss:[ebp-C] ; 返回到这里,
---------
向上找段首,下硬件执行断点。重载程序00C317D6 55 push ebp ; 段首,下硬件执行断点,重新载入
00C317D7 8BEC mov ebp,esp
-------------------重载,断下后在看堆栈,在返回
0012FF70 00C30926 返回到 00C30926 来自 00C317D6---------
返回到这里,程序里出现了RegFile.key00C30917 837D EC 00 cmp dword ptr ss:[ebp-14],0
00C3091B 0F85 0F000000 jnz 00C30930 ;检查有没有Regfile.key文件,没有就不跳
00C30921 E8 B00E0000 call 00C317D6
00C30926 6A 00 push 0 ; 返回到这里。
00C30928 E8 F3220000 call 00C32C20
00C3092D 83C4 04 add esp,4
00C30930 E8 62010000 call 00C30A97
00C30935 8945 F4 mov dword ptr ss:[ebp-C],eax
00C30938 68 CC01C300 push 0C301CC ; ASCII "Regfile.key"
00C3093D FF75 F4 push dword ptr ss:[ebp-C]
00C30940 B9 02000000 mov ecx,2
00C30945 E8 0DFEFFFF call 00C30757
-----------------向上找到段首,下硬件执行断点,找到这
00C30850 55 push ebp 在这里下断
00C30851 8BEC mov ebp,esp
00C30853 81EC 20000000 sub esp,20
00C30859 C745 FC 00000000 mov dword ptr ss:[ebp-4],0
00C30860 C745 F8 00000000 mov dword ptr ss:[ebp-8],0-------------
重新载入程序,F9运行中断后,F8单步到
00C3091B /0F85 0F000000 jnz 00C30930 ; 查测有没有key文件,这里要跳过。改jmp
,或者在文件夹里建一个Regfile.key文件,就不用改了。
00C30921 |E8 B00E0000 call 00C317D6
00C30926 |6A 00 push 0
00C30928 |E8 F3220000 call 00C32C20
00C3092D |83C4 04 add esp,4
00C30930 E8 62010000 call 00C30A97
00C30935 8945 F4 mov dword ptr ss:[ebp-C],eax
00C30938 68 CC01C300 push 0C301CC ; ASCII "Regfile.key"
----------------F8继续向下走,到
00C309D2 E8 73220000 call 00C32C4A ; 单步到这里后,程序出错
00C309D7 83C4 10 add esp,10
00C309DA 8945 E0 mov dword ptr ss:[ebp-20],eax
00C309DD 8B5D E4 mov ebx,dword ptr ss:[ebp-1C]
00C309E0 85DB test ebx,ebx出错: "Runtime error. Error number is P:3 L:0."
重载程序,F9运行断在程序段首,F8单步,一直走到出错CALL,把这个CALL,NOP掉
00C309D2 90 nop
00C309D3 90 nop
00C309D4 90 nop
00C309D5 90 nop
00C309D6 90
补充:综合编程 , 安全编程 ,