跟进去发现有 一个大跳
0042B54B 85C0 test eax,eax
0042B54D 0F84 C2030000 je CM1.0042B915 ; 直接跳继续加油.
0042B553 E8 75F4FFFF call CM1.0042A9CD
1号小跳
0042B59A 8945 FC mov dword ptr ss:[ebp-0x4],eax
0042B59D 837D FC 01 cmp dword ptr ss:[ebp-0x4],0x1
0042B5A1 0F85 D4000000 jnz CM1.0042B67B ; 1
0042B5A7 C745 F8 0000000>mov dword ptr ss:[ebp-0x8],0x0
2号小跳
0042B67B 837D FC 02 cmp dword ptr ss:[ebp-0x4],0x2
0042B67F 0F85 D4000000 jnz CM1.0042B759 ; 2
0042B685 C745 F8 0000000>mov dword ptr ss:[ebp-0x8],0x0
3号小跳
0042B759 837D FC 03 cmp dword ptr ss:[ebp-0x4],0x3
0042B75D 0F85 D4000000 jnz CM1.0042B837 ; 3
0042B763 C745 F8 0000000>mov dword ptr ss:[ebp-0x8],0x0
4号小跳
0042B837 837D FC 04 cmp dword ptr ss:[ebp-0x4],0x4
0042B83B 0F85 D4000000 jnz CM1.0042B915 ; 4
0042B841 C745 F8 0000000>mov dword ptr ss:[ebp-0x8],0x0
0042B848 6A 00 push 0x0
通过调试个小跳发现都是指向验证错误!但是直接jmp大跳仍是验证错误。
0042B915 E8 1A000000 call CM1.0042B934
0042B91A E8 3C1E0000 call CM1.0042D75B
进入 call CM1.0042B934 看看
既然都是错,看看call CM1.0042B454 都是干啥。,还不如直接拉入IDA。
伪代码:在测试中也发现,偶尔是1 2 34.看了伪代码可以确认。如果是验证失败,会随机生成1-4,再去switch 这个值,但这4个值都是指向错误的。
弹窗call:
- call sub_42B123
- call sub_42B1CC
- call sub_42B25E
- call sub_42B2F5
在ida看看大跳call CM1.0042B934 即 call sub_42B934 看看是什么
发现流程基本一致 ,那就好办了直接找call就可以了
大跳call
loc_42BE27:
call sub_42BF5B
call sub_42D75B
再看 sub_42BF5B
好家伙,学会换方向了。
大跳call
mov large dword ptr ds:28h, 1
call sub_42C489
jmp loc_42C35F
再看 sub_42C489
大跳call
loc_42C8B2:
pop eax
mov large ds:20h, eax
call sub_42C8C6
call sub_42D75B
再看 sub_42C8C6
这个call明显多了结果,极有可能在其中。
仔细观察,除了4小龙错误call不用管,两边均指向 call sub_42CDC5,看了这个call又是4小龙。那
loc_42CD91:
mov eax, [ebp+var_10]
mov large ds:28h, eax
call sub_42D13F
jmp loc_42CDC1
call sub_42D13F 大概率指向成功call
进去sub_42D13F 看看
又看到了 sub_42CDC5,错误的。
再进 sub_42D1CE 看看
妈耶~又是四小龙。这不兴搞啊~
稳住,转移到OD.
一路jmp到需要的call看看
1号大跳:
0042B54D /0F84 C2030000 je CM1.0042B915 ; 直接跳继续加油.
2号大跳:
0042BA5F /0F84 C2030000 je CM1.0042BE27
3号大跳:
0042BFDA /0F85 14000000 jnz CM1.0042BFF4
4号大跳:
0042C505 /0F8D 66030000 jge CM1.0042C871
4号大跳:
0042C942 /0F84 0F000000 je CM1.0042C957
5号大跳:
0042C9B5 /0F84 66030000 je CM1.0042CD21
6号大跳:
0042CD28 /0F8E 7A000000 jle CM1.0042CDA8
7号大跳:
0042D14F /0F8E 0F000000 jle CM1.0042D164
最终到了这里:
nop一下吧
总结:
好工具值得你拥有!此时就结束了我第一次CrackMe之旅。