用od查找变量
答案:1 悬赏:0 手机版
解决时间 2021-01-24 17:58
- 提问者网友:几叶到寒
- 2021-01-24 11:35
用od查找变量
最佳答案
- 五星知识达人网友:拾荒鲤
- 2021-01-24 13:04
这个是堆栈参数,ebp一般指向的是外层call的压栈参数。这个应该比较好找。
方法么,选中右下角堆栈窗口,Ctrl+G ebp,回车,跳转到当前ebp。然后在地址上回车显示相对地址,自己到+8位置看就行了。看样子应该是外层call的第二个压栈参数。追问
还是不会弄……堆栈窗口修改的成00000001的话就无法保存
反汇编窗口反回到程序领空就是上面第一张图的界面
追答多看看OD的基础操作,多学学东西。
该说的我都说了,你问的是[ebp+8]怎么回溯,我告诉你方法了,这个变量就是堆栈上来的。从堆栈窗口看,你这个是EnableWindow函数,就是启用或者禁用一个窗口控件,你可以百度这个函数查看具体释义。
单纯修改堆栈窗口是没用的亲,它们是临时数据,你要找到堆栈数据的确切来源。一般的逻辑是这样:
if(通关)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
你要做的是改成这样:
if(TRUE)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
或者你去找到是否通关是在哪判断的,在这个逻辑上做修改会更彻底,因为上面的做法只是单纯的修改了界面,如果按钮的处理函数中继续判断通关状态,你还是达不到目的。
做逆向要有耐心。。。。
方法么,选中右下角堆栈窗口,Ctrl+G ebp,回车,跳转到当前ebp。然后在地址上回车显示相对地址,自己到+8位置看就行了。看样子应该是外层call的第二个压栈参数。追问
还是不会弄……堆栈窗口修改的成00000001的话就无法保存
反汇编窗口反回到程序领空就是上面第一张图的界面
追答多看看OD的基础操作,多学学东西。
该说的我都说了,你问的是[ebp+8]怎么回溯,我告诉你方法了,这个变量就是堆栈上来的。从堆栈窗口看,你这个是EnableWindow函数,就是启用或者禁用一个窗口控件,你可以百度这个函数查看具体释义。
单纯修改堆栈窗口是没用的亲,它们是临时数据,你要找到堆栈数据的确切来源。一般的逻辑是这样:
if(通关)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
你要做的是改成这样:
if(TRUE)
{
EnableWindow(TRUE);
}else{
EnableWindow(FALSE);
}
或者你去找到是否通关是在哪判断的,在这个逻辑上做修改会更彻底,因为上面的做法只是单纯的修改了界面,如果按钮的处理函数中继续判断通关状态,你还是达不到目的。
做逆向要有耐心。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯