首页
社区
课程
招聘
[求助]创建的傀儡进程,为什么debug模式不能正常执行,release却可以。
发表于: 2019-8-30 20:15 2208

[求助]创建的傀儡进程,为什么debug模式不能正常执行,release却可以。

2019-8-30 20:15
2208

各位大哥好,
今天小白小弟新学了个姿势,去尝试写了一个傀儡进程,代码是能成功编译过的。
但是在发现一个问题,debug模式下的生成的exe不能成功运行。release模式下的.exe就能达到效果。
看汇编代码,如果是debug模式下,调用一个函数,会看到里面全是jmp。。而release下就是正常的代码。

小弟心想,会不会是debug模式下  .exe    传递的都是先jmp指令,所以,WriteProcessMemory这个函数本应该传递我的shellcode代码的首地址给傀儡进程写入,
而由于debug传递jmp指令,最终写入傀儡进程中的并不是我的shellcode    ,而是那条jmp指令。而由于jmp指令是相对地址的,所以进程在执行到写进去的jmp指令处,执行的肯定不是我shellcode代码,因为肯定指不回来了。具体指哪儿就未知了。

想法就是这样个想法,小弟有个问题想不通,如果,万一我这个理解有点道理,那这条jmp指令,是在什么时候 “替换” 了我的shellcode?
是在我调用了WriteProcessMemory函数,调参数时,这时候拿到的参数是个jmp。  ????
 还是在向进程执行写入时( 假设这次WriteProcessMemory参数是正确的shellcode首地址而不是jmp指令地址  ),写入的时候,写进去了指向临时变量(shellcode代码)的jmp指令???? 

带带弟中弟吧

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 90
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
啊  。。。小弟明白了,我WriteProcessMemory函数的第三个参数,是一个函数名(函数内部是需要传入的shellocde),所以穿进来的参数是jmp,如果是用字符串保存shellcode而不是将shellcode保存在函数中,就不会有这种情况了。
2019-8-30 20:59
1
游客
登录 | 注册 方可回帖
返回
//