好友
阅读权限30
听众
最后登录1970-1-1
|
爆破一易语言CrackMe,KEY授权导入类型
程序地址http://www.52pojie.cn/thread-23566-1-1.html
闲着没事,写下记录,
运行程序出现,“注册文件导入失败,请查看您是否拥有授权Key”
程序好还加了VMP,还加了,,到原地址看看就知了。
VM咱不会,直接带着他吧。
------------------
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.key
00C30917 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 nop
00C309D7 83C4 10 add esp,10
--------
继续F8向下走到
00C30A24 0F94C0 sete al ; 辅助窗口里显示,条件为假 FALSE al=0,
00C30A27 8945 F0 mov dword ptr ss:[ebp-10],eax
00C30A2A 8B5D F4 mov ebx,dword ptr ss:[ebp-C]
00C30A2D 85DB test ebx,ebx
sete al (条件为假 FALSE al=0,)
我们把他改为setne al( 条件为真TRUE al=00)
F9 运行,身份验证成功。爆破成功。 |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|