能力值:
( LV2,RANK:10 )
|
-
-
2 楼
更改,然后另存
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
从基本的学习吧
http://bbs.pediy.com/showthread.php?t=184679&highlight=od
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
偶已搞定了,不能在原反汇编里增加,否则地址都变了,里面的跳转会出错。所以ollydbg不提供在汇编里增加的功能。可以改,或删除后用nop充实。但不能增加。
|
能力值:
( LV9,RANK:240 )
|
-
-
5 楼
你可以先找到一段都是nop的代码,在你想加代码的地方改一句跳转跳到nop处改你想加的代码,然后再跳回去。如果你改的那句跳转的代码的原代码还要用就在nop处先写上那个代码。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
找一片空白的空间,写你的汇编代码,可以跳转到这段代码执行,然后再跳转回去,注意不要破坏原来的寄存器的环境,用pushad和popad指令
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
原代码:
0037143E push eax kernel32.BaseThreadInitThunk
0037143F push offset 数组.??_C@_02DPKJAMEF@?$CFd?$A>; ASCII "%d"
00371444 call dword ptr ds:[<&MSVCR120D.scanf_s>] ; msvcr120.scanf_s
0037144A add esp,0x8 跳转到添加的代码
0037144D cmp esi,esp
0037144F call 数组.0037114A
修改后:
00B0143E push eax ; kernel32.BaseThreadInitThunk
00B0143F push offset 数组_-_???_C@_02DPKJAMEF@?$CFd>; ASCII "%d"
00B01444 call dword ptr ds:[<&MSVCR120D.scanf_s>] ; msvcr120.scanf_s
00B0144A jmp 数组_-_?00B04DBD 修改之后,变成了一行代码,跳转到添加的代码段
00B0144F call 数组_-_?00B0114A
添加的代码段:
00B04DBB add byte ptr ds:[eax],al
00B04DBD add esp,0x8 ; 保存前五个字节
00B04DC0 cmp esi,esp
00B04DC2 push 0x0 ; MessagBox函数
00B04DC4 push 0x0
00B04DC6 push 0x0
00B04DC8 push 0x0
00B04DCA all user32.MessageBoxW
00B04DCF jmp 数组_-_?00B0144F ; 跳转回之前的代码下一行
00B04DD4 nop
00B04DD5 add byte ptr ds:[eax],al
原程序需要导入了MessageBox函数,才能运行成功。找个有MessageBox弹窗的程序实验一下,应该没错
|
|
|