吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1275|回复: 7
收起左侧

[求助] ida如何修改汇编指令不占用后面字节

[复制链接]
loukx1006 发表于 2022-2-10 21:26
本帖最后由 loukx1006 于 2022-2-10 21:58 编辑

[Asm] 纯文本查看 复制代码
.text:0000000180018791 8B CB                                   mov     ecx, ebx        ; Size
.text:0000000180018793 E8 58 16 00 00                          call    malloc
.text:0000000180018798 44 8B C3                                mov     r8d, ebx        ; Size
.text:000000018001879B 31 D2                                   xor     edx, edx        ; Val
.text:000000018001879D 48 8B C8                                mov     rcx, rax        ; void *
.text:00000001800187A0 48 89 05 61 EF 02 00                    mov     cs:qword_180047708, rax
.text:00000001800187A7 E8 F4 18 00 00                          call    memset

我想要把edx寄存器的值改掉,让memset不用0来初始化
但用 mov edx, 0Ch 会占用 5 个字节,导致后面的 memset 的第一个参数指针被覆盖掉,有没有办法不覆盖后面的 mov     rcx, rax
有听说jmp方法,但不知道怎么跳转

前面悬赏发错区了改不过来,如果知道的大佬可以转我那边悬赏帖子https://www.52pojie.cn/thread-1585693-1-1.html

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2022-2-10 21:45
好像还真不好改,从 mov     r8d, ebx 这里开始写jmp跳转到别处去,改完以后再跳转到mov     cs:qword_180047708, rax
 楼主| loukx1006 发表于 2022-2-10 22:04
侃遍天下无二人 发表于 2022-2-10 21:45
好像还真不好改,从 mov     r8d, ebx 这里开始写jmp跳转到别处去,改完以后再跳转到mov     cs:qword_1800 ...

大佬 x64的该怎么用jmp跳转地址
孤狼微博 发表于 2022-2-10 23:39
也是跳个0区  写上要执行的代码 执行完了在跳回之前的位置
plauger 发表于 2022-2-11 00:46
省字节一般用入栈出栈来实现,比如:
push 0ch
pop edx
爱飞的猫 发表于 2022-2-11 02:09
本帖最后由 jixun66 于 2022-2-11 02:11 编辑

.text:00000001800187A7 E8 F4 18 00 00                          call    memset

把这个函数改成 CALL 你新找的空白区域(比如一堆 CC 的地方、代码段结束的地方扩容),然后空白区域可以填充:

[Asm] 纯文本查看 复制代码
call    _my_memset

; 段尾或其他地方

_my_memset:
  mov edx, 0xFF
  jmp memset
 楼主| loukx1006 发表于 2022-2-11 21:41
jixun66 发表于 2022-2-11 02:09
.text:00000001800187A7 E8 F4 18 00 00                          call    memset

把这个函数改成 CALL ...

谢谢大佬,如果没一堆00的地方能自己加吗

点评

可以自己加区段到 exe/dll 里  详情 回复 发表于 2022-2-12 11:37
爱飞的猫 发表于 2022-2-12 11:37
loukx1006 发表于 2022-2-11 21:41
谢谢大佬,如果没一堆00的地方能自己加吗

可以自己加区段到 exe/dll 里
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表