用od查找变量
中间那句的ss:[ebp+0*8]的数据怎么知道它的原始数据是在哪怎么回溯回去我知道把那句改成push1的话按钮就可以使用...
中间那句的ss:[ebp+0*8]的数据怎么知道它的原始数据是在哪 怎么回溯回去 我知道把那句改成push 1的话按钮就可以使用
展开
1个回答
展开全部
这个是堆栈参数,ebp一般指向的是外层call的压栈参数。这个应该比较好找。
方法么,选中右下角堆栈窗口,Ctrl+G ebp,回车,跳转到当前ebp。然后在地址上回车显示相对地址,自己到+8位置看就行了。看样子应该是外层call的第二个压栈参数。
方法么,选中右下角堆栈窗口,Ctrl+G ebp,回车,跳转到当前ebp。然后在地址上回车显示相对地址,自己到+8位置看就行了。看样子应该是外层call的第二个压栈参数。
追答
多看看OD的基础操作,多学学东西。
该说的我都说了,你问的是[ebp+8]怎么回溯,我告诉你方法了,这个变量就是堆栈上来的。从堆栈窗口看,你这个是EnableWindow函数,就是启用或者禁用一个窗口控件,你可以百度这个函数查看具体释义。
单纯修改堆栈窗口是没用的亲,它们是临时数据,你要找到堆栈数据的确切来源。一般的逻辑是这样:
if(通关)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
你要做的是改成这样:
if(TRUE)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
或者你去找到是否通关是在哪判断的,在这个逻辑上做修改会更彻底,因为上面的做法只是单纯的修改了界面,如果按钮的处理函数中继续判断通关状态,你还是达不到目的。
做逆向要有耐心。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询