问题标签 [x64dbg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - 无法在 x64dbg 中修改程序集
当我双击 x64dbg 中的一行以打开“assemble at”窗口并将“jne”更改为“jmp”时,它会将我带到下一步而不是打开 assemble 对话框。我究竟做错了什么?
debugging - 如何从 ghidra 的相应指令中破解 x64dbg?
我通过ret-sync 同步了 x64dbg 和 ghidra 。我在 ghidra 中发现了一个有趣的点:
在列表视图中;文件my.dll从180000000开始。所以,然后在x64dbg中我为my.dll添加了一个dll中断,当我进入时,我用ctrl+shift+g转到文件偏移量并输入328b4,但我结束了在(第一行):
在 x64dbg 中,文件开始于:00007FF8B2F81000
(CPU 选项卡,模块 my.dll,主线程 X,PID Y)。
显然指令是不一样的。(我相信我正确地做了rebase)
我怎样才能使对应的 ghidra -> x64dbg 并在“相同的地方”中断 x64dbg,即相同的指令?
.net - 使用逆向工程技术改变应用程序的网络请求路径
我正在调试自己的应用程序,所以请避免法律建议,
我是逆向工程的新手。我想知道,是否可以更改应用程序网络请求路径。假设,我的应用程序正在对该服务器https://example.com进行 API 调用,有人可以通过逆向工程将其更改为https://fake.com (没有源代码)。
我的应用程序是用 C#/.Net WPF 编写的。为了防止反编译,我使用 .Net-Reactor 将其转换为本机代码
assembly - 解压后的可执行文件 [UPX 3.91+] 的运行时错误 C0000005
尝试执行解压缩的可执行文件时会出现问题。原文件采用UPX (3.91 +) [modified]打包, Detect It Easy报道。
解包过程如下所示:
- 使用x64dbg找到了指令:
- 有效的入口点由
jmp
数据定义:***.7FF71816CE3C
- 使用Scylla模块,指示真正的入口点,进行转储和转储修复。
注意:转储时有 2 个未定义的导入,但我通过删除忽略了它们
运行固定转储后,出现错误:
我还想指出,原始应用程序不想在x64dbg调试下完全工作,就像它在附加到进程时完成工作一样。
对不起,我还是新手,最近两天才这样做。感谢您的关注!
我认为源文件受到了保护,这可能是显而易见的,但我完全不知道该怎么做,实现目标的愿望并没有消失。
执行环境:
c - 使用 UPX 解压 C 打包脚本后没有输出
我学习如何使用 UPX 和 C 语言打包然后解包脚本。这是我打包的脚本:
这很简单,只需在屏幕上键入字符串“hello world”。好吧,我使用下一个命令打包它:
这对我来说一切正常,这是 DIE 的输出
如您所见,在这里我得到 PE 包含 UPX(best
选项,但没关系)。接下来我要做的是使用 x64dbg(x32 模式)打开打包文件。在那里我找到了popad规则,在一些命令之后,我到达了应用程序的实际解包入口点。这里是:
我确信这是实际的入口点,因为当我执行下面的所有代码直到它正常工作时,执行结果如下:
好吧,在它之后,当我找到程序运行的实际点时,我尝试使用内置应用程序Scylla创建一个内存转储:
我做的步骤:
- 在 OEP 中插入我的新入口点,对我来说是005E14C0
- 其次,我点击按钮IAT Autosearch
- 然后我点击获取进口
- 下一步是使用选定的设置转储内存,我单击转储并将文件另存为main-upx_dump.exe
- 毕竟,我只需单击最后一个按钮Fix Dump即可修复导入表并保存文件。
我要做的下一步是运行 .exe,当我在 .exe 中启动它时cmd
,我收到的输出什么都没有,只是一个空字符串,这里是:
我只是不明白我做错了什么,如果您知道可能出了什么问题,请写一个答案,非常感谢!
debugging - 如何在调试时跟踪 RIP/EIP(指令指针)值
在调试时,当调试器命中时,RIP 寄存器的值是调试器附加的当前地址。但是,有没有办法知道 RIP/EIP 寄存器的先前值,以便清楚在当前操作码之前执行了什么操作码?
reverse-engineering - 如何忽略线程切换并分析单个线程
我目前正在使用 x64dbg 来分析一个多线程程序。每次线程切换时,x64dbg 都会自动中断,这种情况经常发生。
我想专注于分析一个线程。有什么方法可以禁用线程开关的中断并仅单步执行特定线程?
如附图所示,我已禁用与线程相关的中断事件。这是默认设置。
x64dbg 选项:
reverse-engineering - 无效的PE文件!(尝试将版本 8.0.1 中的数据包跟踪实验室放入 x64dbg)
当我将数据包跟踪器实验室放入 x64lgb 时,它显示无效的 PE 文件。我在管理员模式下运行它,但它仍然没有工作。
debugging - x64dbg 插件 Scylla 错误 - “无法转储图像”
作为一个 RE 菜鸟,我正在尝试关注这篇关于逆向工程 Black Desert 的博客文章,但似乎 x64dbg 中的默认插件 Scylla 对我不起作用,因为它会引发错误(“无法转储图像”),如图所示以下。
我试图从中获取二进制转储的程序是黑色沙漠游戏 (BlackDesert64.exe) 的可执行文件,我正在 Windows10 上运行调试器。
Pick DLL、IAT Autosearch 或 Get Imports 的任何其他按钮也没有给我任何帮助。我错过了什么?
任何见解将不胜感激。请让我知道是否有任何其他信息可以添加以更好地理解。