首页
社区
课程
招聘
[求助]如何修改汇编代码使进程结束
发表于: 2017-12-29 17:15 3276

[求助]如何修改汇编代码使进程结束

2017-12-29 17:15
3276
现在需要程序在执行完一个操作后结束进程,但是修改后面的汇编代码为
xor ebx,ebx
push ebx
call ds:GetCurrentProcess
push eax
call TerminateProcess

进程跑到 call ds:GetCurrentProcess后崩溃,调试发现地址为0xFFFFFFFF,如何获取正确的GetCurrentProcess地址


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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 775
活跃值: (2292)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
xor  eax,eax
or  eax,0xFFFFFFFF
push 0
push  eax
call  TerminateProcess

本进程句柄直接-1可代替  IAT地址的话网上有很多GetProcAddress的  shellcode代码

这个也可以
push 0
call ExitProcess
2017-12-29 17:26
0
雪    币: 118
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
楼上正解。
另外:
xor ebx,ebx
push ebx
call ds:GetCurrentProcess
push eax
call TerminateProcess

1. 你的代码有中push ebx 是无用的,ds:GetCurrentProcess(void)是没有参数的。
2. 之所以有问题,可能是你将call ds:GetCurrentProcess 写成了jmp ds:GetCurrentProcess.
我刚刚就这么写了。。。




2018-1-1 03:22
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
dalerkd 楼上正解。另外:xor ebx,ebx push ebx call ds:GetCurrentProcess push e ...
第一个push其实是TerminateProcess的第二个参数,GetCurrentProcess的返回值作为第一个参数,ExitProcess试过了也崩。。。这个是逆向其他程序并修改这个程序的二进制使其在指定位置结束自己,不知道是不是因为函数地址的问题导致崩溃
2018-1-9 14:56
0
游客
登录 | 注册 方可回帖
返回
//