悬赏答案

admin
6月前
本文共计502个字,预计阅读时长1.9分钟。
本人小白一枚,在看到滴水的在空白区注入messagebox这一节时遇到问题,首先在滴水中注入的方式是硬编码格式为6A 00(push 0) 6A 00 6A 00 6A 00 E8(call) + 跳转的硬编码 E9(jmp) + 原程序入口点的硬编码。我首先遇到两个问题,第一是我使用vs2022编写的程序它的汇编没有像滴水课中那样是push,而是用四个寄存器使用xor指令来得到参数0再调用messagebox,那该如何注入呢?第二个问题,我通过动态调试器(vs中自带的和x64dbg)发现程序加载进内存的地址特别大(类似07FF65A0F0150h这种),那pe头中的imagebase失效了我在文件中手动注入怎么知道messagebox的具体位置以及在内存中entrypoint的真正位置呢?这两点很困扰我,在网上搜也是用在滴水课中一样的讲法,一直没找到解决的,所以再次恳请各位大佬指导一下,谢谢啦。
int main() { printf("HEllo world\n"); return 0; } 我就是想在这个很简单的helloworld中注入一个messagebox。
二进制手动注入messagebox