[Asm] 纯文本查看 复制代码
00401004 /. 55 push ebp
00401005 |. 8BEC mov ebp, esp
00401007 |. 81EC 08000000 sub esp, 0x8
0040100D |. 8965 FC mov dword ptr [ebp-0x4], esp
00401010 |. 68 D0814800 push 004881D0
00401015 |. 68 00000000 push 0x0
0040101A |. 68 00000000 push 0x0
0040101F |. 68 68114000 push 00401168
00401024 |. 68 00000000 push 0x0
00401029 |. 68 00000000 push 0x0
0040102E |. B8 00000000 mov eax, 0x0
00401033 |. E8 08050000 call 00401540
00401038 |. 3965 FC cmp dword ptr [ebp-0x4], esp
0040103B |. 74 0D je short 0040104A
0040103D |. 68 06000000 push 0x6
00401042 |. E8 F3040000 call 0040153A
00401047 |. 83C4 04 add esp, 0x4
0040104A |> A3 D0814800 mov dword ptr [0x4881D0], eax
0040104F |. 68 01030080 push 0x80000301
00401054 |. 6A 00 push 0x0
00401056 |. 68 C8000000 push 0xC8
0040105B |. 68 01000000 push 0x1
00401060 |. B8 01000000 mov eax, 0x1
00401065 |. BB 508A4400 mov ebx, 00448A50
0040106A |. E8 E3040000 call 00401552
0040106F |. 83C4 10 add esp, 0x10
00401072 |. 68 05000080 push 0x80000005
00401077 |. 6A 00 push 0x0
00401079 |. A1 D4814800 mov eax, dword ptr [0x4881D4]
0040107E |. 85C0 test eax, eax
00401080 75 05 jnz short 00401087
00401082 |. B8 FCAC4600 mov eax, 0046ACFC
00401087 |> 50 push eax
00401088 |. 68 01000000 push 0x1
0040108D |. BB C0164000 mov ebx, 004016C0
00401092 |. E8 B5040000 call 0040154C
00401097 |. 83C4 10 add esp, 0x10
0040109A |. 8945 FC mov dword ptr [ebp-0x4], eax
0040109D |. 6A 00 push 0x0
0040109F |. 6A 00 push 0x0
004010A1 |. 6A 00 push 0x0
004010A3 |. 68 01030080 push 0x80000301
004010A8 |. 6A 00 push 0x0
004010AA |. 68 00000000 push 0x0
004010AF |. 68 04000080 push 0x80000004
004010B4 |. 6A 00 push 0x0
004010B6 |. 8B45 FC mov eax, dword ptr [ebp-0x4]
004010B9 |. 85C0 test eax, eax
004010BB |. 75 05 jnz short 004010C2
004010BD |. B8 04AD4600 mov eax, 0046AD04
004010C2 |> 50 push eax
004010C3 |. 68 03000000 push 0x3
004010C8 |. BB F0174000 mov ebx, 004017F0
004010CD |. E8 7A040000 call 0040154C
004010D2 |. 83C4 28 add esp, 0x28
004010D5 |. 8B5D FC mov ebx, dword ptr [ebp-0x4]
004010D8 |. 85DB test ebx, ebx
004010DA |. 74 09 je short 004010E5
004010DC |. 53 push ebx
004010DD |. E8 46040000 call 00401528
004010E2 |. 83C4 04 add esp, 0x4
004010E5 |> 8BE5 mov esp, ebp
004010E7 |. 5D pop ebp
004010E8 \. C3 retn
---------------------------------------------------------------------
00401079 |. A1 D4814800 mov eax, dword ptr [0x4881D4] 取常量内容给eax
0040107E |. 85C0 test eax, eax 比较eax
00401080 75 05 jnz short 00401087 是否跳转
00401082 |. B8 FCAC4600 mov eax, 0046ACFC 不跳转就赋值
00401087 |> 50 push eax 压入栈eax
00401088 |. 68 01000000 push 0x1 压入栈1
0040108D |. BB C0164000 mov ebx, 004016C0 把004016C0 给ebx
00401092 |. E8 B5040000 call 0040154C
00401097 |. 83C4 10 add esp, 0x10
0040109A |. 8945 FC mov dword ptr [ebp-0x4], eax 这里吧eax给ebp-0x4
0040109D |. 6A 00 push 0x0
0040109F |. 6A 00 push 0x0
004010A1 |. 6A 00 push 0x0
004010A3 |. 68 01030080 push 0x80000301
004010A8 |. 6A 00 push 0x0
004010AA |. 68 00000000 push 0x0
004010AF |. 68 04000080 push 0x80000004
004010B4 |. 6A 00 push 0x0
004010B6 |. 8B45 FC mov eax, dword ptr [ebp-0x4] 然后又把 [ebp-0x4]给eax
004010B9 |. 85C0 test eax, eax 对比eax 这里我们使用命令dd eax 然后数据窗口HEX--16位 发现里面内容是:注册码不对,还需要努力 然后我们往上面看eax最初的值是谁赋的 当然是0x4881D4这个常量
我们对这个常量下内存写入断点
004010BB |. 75 05 jnz short 004010C2 如果不跳转的话默认赋值 这里是跳转的
004010BD |. B8 04AD4600 mov eax, 0046AD04 赋值
内存写入断点断在
00401307 |. A3 D4814800 mov dword ptr [0x4881D4], eax
0040130C |> 8BE5 mov esp, ebp
0040130E |. 5D pop ebp
0040130F \. C3 retn
然后我们往上面找 注意 mov dword ptr [0x4881D4], eax 这样的语句
00401295 /0F84 3B000000 je 004012D6
0040129B |. |B8 1BAD4600 mov eax, 0046AD1B
004012A0 |. |85C0 test eax, eax
004012A2 |. |74 13 je short 004012B7
004012A4 |. |50 push eax
004012A5 |. |8B40 04 mov eax, dword ptr [eax+0x4]
004012A8 |. |83C0 08 add eax, 0x8
004012AB |. |50 push eax
004012AC |. |E8 95020000 call 00401546
004012B1 |. |59 pop ecx
004012B2 |. |5E pop esi
004012B3 |. |8BF8 mov edi, eax
004012B5 |. |F3:A4 rep movs byte ptr es:[edi], byte ptr>
004012B7 |> |50 push eax
004012B8 |. |8B1D D4814800 mov ebx, dword ptr [0x4881D4]
004012BE |. |85DB test ebx, ebx
004012C0 |. |74 09 je short 004012CB
004012C2 |. |53 push ebx
004012C3 |. |E8 60020000 call 00401528
004012C8 |. |83C4 04 add esp, 0x4
004012CB |> |58 pop eax
004012CC |. |A3 D4814800 mov dword ptr [0x4881D4], eax
004012D1 |. |E9 36000000 jmp 0040130C
004012D6 |> \B8 4BAD4600 mov eax, 0046AD4B
004012DB |. 85C0 test eax, eax
004012DD |. 74 13 je short 004012F2
004012DF |. 50 push eax
004012E0 |. 8B40 04 mov eax, dword ptr [eax+0x4]
004012E3 |. 83C0 08 add eax, 0x8
004012E6 |. 50 push eax
004012E7 |. E8 5A020000 call 00401546
004012EC |. 59 pop ecx
004012ED |. 5E pop esi
004012EE |. 8BF8 mov edi, eax
004012F0 |. F3:A4 rep movs byte ptr es:[edi], byte ptr>
004012F2 |> 50 push eax
004012F3 |. 8B1D D4814800 mov ebx, dword ptr [0x4881D4]
004012F9 |. 85DB test ebx, ebx
004012FB |. 74 09 je short 00401306
004012FD |. 53 push ebx
004012FE |. E8 25020000 call 00401528
00401303 |. 83C4 04 add esp, 0x4
00401306 |> 58 pop eax
00401307 |. A3 D4814800 mov dword ptr [0x4881D4], eax