Anonymous 发表于 2024-7-2 08:30

1万8 麻烦看一下 不一样 空白地方补丁怎么写?

本帖最后由 匿名 于 2024-7-2 08:58 编辑

基质不一样 需要给多个地址补码,补丁怎么写?
假如下面2个地址
126560G6
10079DC8


在空白处补跳转假如地址是10079DC8    空白地方补上 mov eax, 10079DC8    但是再次打开软地址10079DC8    前面4位1007就变了,这样应该怎么写?



下面图片不用看(删除不掉{:6_221:} 下面图片忘记说了 补多个地址 )

lies 发表于 2024-7-2 08:40

就直接写 jmp 10079DC8,机器码里记录的是相对地址(相对当前地址的偏移)不是绝对地址,再次打开基址变了绝对地址会变,但偏移不会变

小梦我焉坏 发表于 2024-7-2 09:28

loadliba获取模块基址+偏移 跳转eax即可

lies 发表于 2024-7-2 10:17

如果用 jmp 还是直接输地址,因为是相对偏移不影响
如果用 mov 你就不能用绝对地址,比如你要在 10079DF0 补码达到 mov eax, 10079DC8 的目的,可以用 eip 赋值给 eax 再计算间接实现:
mov eax, eip
sub eax, 0x28

2477925836 发表于 2024-7-2 11:50

lies 发表于 2024-7-2 10:17
如果用 jmp 还是直接输地址,因为是相对偏移不影响
如果用 mov 你就不能用绝对地址,比如你要在 10079DF0...

太难了根本不会啊大佬。除非跟着视频教程{:6_221:}

lies 发表于 2024-7-2 16:33

2477925836 发表于 2024-7-2 11:50
太难了根本不会啊大佬。除非跟着视频教程

其实我写错了,eip 不能直接引用,基础不牢,刚刚想起来,可见学好汇编多么重要。应该这样写:
call 0x10079DFA
pop eax
sub eax,0x2d
jmp eax

2477925836 发表于 2024-7-2 20:22

lies 发表于 2024-7-2 16:33
其实我写错了,eip 不能直接引用,基础不牢,刚刚想起来,可见学好汇编多么重要。应该这样写:
call 0x10 ...

大佬 能不能录制个教程这样实在不懂

缘来如此般若 发表于 2024-7-4 10:07

进来跟大佬学习学习

2477925836 发表于 2024-7-5 14:54

lies 发表于 2024-7-2 16:33
其实我写错了,eip 不能直接引用,基础不牢,刚刚想起来,可见学好汇编多么重要。应该这样写:
call 0x10 ...

大佬 随便指点下吧{:6_223:}

2477925836 发表于 2024-7-5 14:58

lies 发表于 2024-7-2 16:33
其实我写错了,eip 不能直接引用,基础不牢,刚刚想起来,可见学好汇编多么重要。应该这样写:
call 0x10 ...

大佬 随便指点下吧

call 0x10079DFA
pop eax
sub eax,0x2d
jmp eax

补丁内容写在哪里啊{:6_224:}
页: [1] 2
查看完整版本: 1万8 麻烦看一下 不一样 空白地方补丁怎么写?