首页
社区
课程
招聘
DLL注入出现The value of ESP was not properly。。。。
发表于: 2006-12-14 18:09 11171

DLL注入出现The value of ESP was not properly。。。。

2006-12-14 18:09
11171
用注入DLL到一个exe里,然后调用exe里的内部函数,结果成功 但是会有这样的提示
The value of ESP was not properly saved across a function call.This is usually a result of calling a function decared with one calling convention with a function pointer declared with a different calling convention.
有3个选项 中止 重试 忽略, 按忽略之后程序继续正常运行

DLL中的代码
void doIt2(){
mbox("start");
__asm{
pushad
mov eax, code //参数
push eax
mov edx, 0x00401019 //函数地址
call edx
popad
}
mbox("over");
}
在弹出"over"之后就会弹出这个错误提示,如何能解决?


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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
堆栈被破坏,自己在OD里好好检查一下
2006-12-14 18:34
0
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
3
很有可能调定不统一造成的
2006-12-14 19:46
0
雪    币: 196
活跃值: (111)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
谢谢,果然是堆栈破坏
od里看了下,压入的参数没有弹出

后面加了一条 add esp,4 就好了
2006-12-14 19:57
0
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
5
使用MFC写出来的函数它都会在后面给你加一个chkesp()函数,来判断堆栈是否正确,
从你代码上看
pushad
push eax
call edx
add esp,4  <-- 这里得加上才行
popad
2006-12-14 19:59
0
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
6
呵呵,对,同时发贴了
2006-12-14 19:59
0
雪    币: 196
活跃值: (111)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
呵呵 就是你说的那样,多谢~
2006-12-14 20:01
0
游客
登录 | 注册 方可回帖
返回
//