吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 642|回复: 4
收起左侧

[新手问题] x64dbg执行到返回指令无法正常工作

[复制链接]
Ceylon 发表于 2023-12-17 19:08

RT,最新版本的x64dbg(snapshot_2023-12-04_17-51)

在使用执行到返回指令(ctrl+F9)时经常跑飞,不会停在那个call对应的ret语句处。在命令行使用StepOut/rtr指令也是一样的结果。

在网上搜了一下好像没人提过类似问题,是我哪里没有设置对吗?还是debugger本身的问题?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Ceylon 发表于 2023-12-18 01:42

【已解决】

x64dbg的处理逻辑跟OD的处理逻辑还不太一样

OD的ctrl+F9处理逻辑是:相当于一直手动执行F8(StepOver)直到遇见RETRETN时停下,这也是我最初理解的处理逻辑。

x64dbg还多了一层判断条件,它会先记录下当前指令处的Stack Pointer,遇见RETRETN时,会再判断Stack Pointer是否比当初记录下的值位于更低栈空间上(即位于高地址处),如果不是,则不会在此处停下,这也是会跑飞的原因

解决方法

要使x64dbg的处理逻辑跟OD一样,可以使用TraceOver,断点条件设置为byte(XIP) == 0xC3(只考虑了RET短跳转的情况,要满足长跳转和RETN还需另加条件)


zishen 发表于 2023-12-17 20:53
 楼主| Ceylon 发表于 2023-12-17 21:24
zishen 发表于 2023-12-17 20:53
应该是程序内部的问题,有些call里面有反调试

我的理解是,ctrl+F9的效果应该等效于手动一直按F8,直到看到第一个RET或者RETN语句就停下。

我的问题是现在我在x64dbg里面用ctrl+F9之后并不能停在手动步过时看到的第一个返回语句处。

这跟反调试没什么关系吧

ias想 发表于 2023-12-18 00:22
应该是跟反调试的关联
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表