打算用 010 Editor 5.01 查看一个EXE,发现 010 Editor 5.01 过期
于是便有了这篇文章,文笔不好,技术也不好,大牛就直接跳过好了。
注册框内输入注册码后
0117B74F . 8B0D F4E84201 mov ecx,dword ptr ds:[0x142E8F4]
0117B755 . 8BF8 mov edi,eax
0117B757 > 81FF DB000000 cmp edi,0xDB
0117B75D 74 38 jnz X010Edito.0117B797
这里对用户名和密码进行计算得到的值进行比较检测,如果edi=0xDB则表示正确。于是,在上一个跳转处把edi改成0xDB,然后直接跳下来就好了。
0117B5B8 895424 28 mov dword ptr ss:[esp+0x28],edx
0117B5BC 81FB E7000000 cmp ebx,0xE7
0117B5C2 0F84 8F010000 je 010Edito.0117B757
0117B5B8 895424 28 mov dword ptr ss:[esp+0x28],edx
0117B5BC BF DB000000 mov edi,0xDB
0117B5C1 81FB E7000000 cmp ebx,0xE7
0117B5C7 E9 8B010000 jmp 010Edito.0117B757
程序启动后检查注册信息
0128D10D . E8 CB4DD8FF call 010Edito.01011EDD
0128D112 . 8B0D F4E84201 mov ecx,dword ptr ds:[0x142E8F4]
0128D118 . E8 C85ED8FF call 010Edito.01012FE5
0128D11D . 8B0D F4E84201 mov ecx,dword ptr ds:[0x142E8F4]
0128D123 . 68 083E0000 push 0x3E08
0128D128 . 6A 06 push 0x6
0128D12A . E8 E5BBD8FF call 010Edito.01018D14
0128D12F . 8BF0 mov esi,eax ;这里获得了esi,我没有具体分析。
0128D131 . E8 CA75D8FF call 010Edito.01014700
0128D136 . 85C0 test eax,eax
0128D138 . 0F95C0 setne al
0128D13B . A2 BDE84201 mov byte ptr ds:[0x142E8BD],al
0128D140 . 84C0 test al,al
0128D142 . 0F85 F4000000 jnz 010Edito.0128D23C
0128D148 . E8 AE5CD8FF call 010Edito.01012DFB
0128D14D . 85C0 test eax,eax
0128D14F . 74 0C je X010Edito.0128D15D
0128D151 . 81FE DB000000 cmp esi,0xDB
0128D157 . 0F84 DF000000 je 010Edito.0128D23C
注册信息错误代码值(过期,不正确……)
0x177
0x2F
0xED
0x113
0061D26D . 81FE 77010000 cmp esi,0x177
0061D273 74 34 je X010Edito.0061D2A9
0061D275 . 83FE 2F cmp esi,0x2F
0061D278 . 74 2F je X010Edito.0061D2A9
0061D27A . 81FE ED000000 cmp esi,0xED
0061D280 . 74 27 je X010Edito.0061D2A9
0061D282 . 81FE 13010000 cmp esi,0x113
0061D288 . 74 1F je X010Edito.0061D2A9
0061D28A . 81FE 0C020000 cmp esi,0x20C
0061D290 0F85 67010000 jnz 010Edito.0061D3FD
把jnz 010Edito.0061D3FD之前换成nop,同时把jnz换成jmp,即可跳出主窗口
00506B10 8B86 B4000000 mov eax,dword ptr ds:[esi+0xB4]
00506B16 3D DB000000 cmp eax,0xDB
00506B1B 0F85 6E010000 jnz 010Edito.00506C8F
00506B21 8B0D F4E87B00 mov ecx,dword ptr ds:[0x7BE8F4]
00506B27 8379 20 01 cmp dword ptr ds:[ecx+0x20],0x1
00506B2B 75 4B jnz X010Edito.00506B78
如果上方没改,这里又会检查注册信息,这里是弹出对话框后的检测,好像是根据检测错误数值来写注册对话框上的话
0061D370 . 85C0 test eax,eax
0061D372 0F85 85000000 jnz 010Edito.0061D3FD
这里对注册码对话框的返回值进行了判断,必须要保证eax=1。暴力破解,将jnz直接修改为jmp,出现程序主窗口:010Edito.0061D3FD,爆破成功!
修改过后的程序输入任何序列号都是正确的,同时开软件的时候不会弹出对话框
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课