貼個程式的smc破解。 (1千字)

看雪資料發表於2001-09-24

:00000000 C705E1C74B0068200340    mov dword ptr [004BC7E1], 40032068
:0000000A 66C705E5C74B0000C3      mov word ptr [004BC7E5], C300
:00000013 68E6FA4900              push 0049FAE6
:00000018 C3                      ret
把程式的某個地方改成跳去執行我們的程式碼
然後返回程式oep執行。
:00000019 00000000000000          BYTE  7 DUP(0)


:00000020 B30A                    mov bl, 0A
:00000022 A0207F5300              mov al, byte ptr [00537F20]
:00000027 8A3D217F5300            mov bh, byte ptr [00537F21]
:0000002D E851000000              call 00000083
:00000032 8844240A                mov byte ptr [esp+0A], al
取記憶體中的2個字元,轉成數值,然後放到[esp+0A]
:00000036 A0237F5300              mov al, byte ptr [00537F23]
:0000003B 8A3D247F5300            mov bh, byte ptr [00537F24]
:00000041 E83D000000              call 00000083
:00000046 88442406                mov byte ptr [esp+06], al
:0000004A A0267F5300              mov al, byte ptr [00537F26]
:0000004F 8A3D277F5300            mov bh, byte ptr [00537F27]
:00000055 E829000000              call 00000083
:0000005A 6605D007                add ax, 07D0
:0000005E 6689442404              mov word ptr [esp+04], ax
:00000063 66B8002C                mov ax, 2C00
:00000067 6633DB                  xor bx, bx
把暫存器的內容改成執行我們的程式碼前的樣子
:0000006A C705E1C74B00668B4C24    mov dword ptr [004BC7E1], 244C8B66
:00000074 66C705E5C74B000A66      mov word ptr [004BC7E5], 660A
把一開始修改過的程式碼改回原樣,否則會出錯。
:0000007D 68E1C74B00              push 004BC7E1
:00000082 C3                      ret


:00000083 2C30                    sub al, 30
:00000085 80EF30                  sub bh, 30
:00000088 F6E3                    mul bl
:0000008A 00F8                    add al, bh
:0000008C C3                      ret

相關文章