我想用OD在程序里添加一段函数.
****
push ***(源程序的数值)
push ***(源程序的数值)
push ***(源程序的数值)
push 0C(之前push的个数*4)[自己添加的]
call 转移堆栈数据(自己添加的,不知怎么写)
call 原函数(调用的DLL函数)
call 修复堆栈(自己添加的,已完成)
****
请问那个转移堆栈数据的函数该怎么写,才能把堆栈中push的0C放到之前push的3个数之前去,而且不改变除ESP寄存器之外的值?
------解决方案--------------------------------------------------------
push ebp
mov ebp, esp
push [ebp+8]
push [ebp+12]
push [ebp+16]
push [ebp+20]
pop [ebp+20]
pop [ebp+8]
pop [ebp+12]
pop [ebp+16]
pop ebp
ret