问题标签 [ida]

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.

0 投票
1 回答
1594 浏览

reverse-engineering - 基地址不相同

当我在 IDA pro 和 OllyDbg 中加载可执行文件时,相同指令的地址在不同的位置启动。这可能是因为它们是不同的基地址。我希望可执行文件使用相同的基地址;我该怎么做呢?

0 投票
1 回答
2204 浏览

assembly - 如何从 ARM ASM 位中提取值?

在 IDA Pro 中,我看到了下面列出的 ARM ASM。IDA 使用什么位来获得 7200?

A3 F5 E1 53 SUB.W R3, R3 #7200

为方便起见,值是二进制的,如下所示

7200 = 0x1c20 = 0001 1100 0010 0000

0xA3F5E153 = 1010 0011 1111 0101 1110 0001 0101 0011

编辑:在 IDA 选择中加载文件。Mach-O 文件 (DYLIB) ARMv7[macho.lhc]

0 投票
1 回答
2348 浏览

reverse-engineering - 如何编辑 IDA Pro 函数外部参照?

IDA 非常坚持对我正在制作的函数调用进行错误标记(它是手写的汇编程序,但我已经在调试器中对其进行了验证)。它以前可以工作,但是当我一直在使用 python 将新代码修补到现有数据库中时,它似乎有点不稳定。

现在,即使它承认我将 function_a 推送到 eax,它仍坚持我的后续调用 eax 是对 function_b 的调用。无论我如何尝试“刷新”它,它都会持续存在。我试过删除函数,取消定义和重新定义部分,甚至调用 DelCodeXref (这最后一个方法似乎将它从函数外部参照列表中删除,但注释仍然出现在调用旁边,如果我取消定义/重新定义,它自然只是再次出现)。

唯一的解决方法似乎是在其上方编写第二个 mov eax, offset function_a ,但是为了消除误导性注释而抛出冗余指令并不优雅。有人有什么建议吗?

0 投票
1 回答
1240 浏览

assembly - 拆卸、修改和组装DLL文件

我有一个我已经反汇编的 DLL,只是为了测试我的项目是否可以工作。我已经尝试再次组装它,但没有运气。

我收到不同类型的错误。

我用 IDA Pro 免费软件完成的反汇编,然后将文件导出为 .asm,再次尝试组装我尝试使用 A86 汇编器和平面汇编器。

也许我错误地反汇编了 DLL 或使用了错误的汇编程序,但有人可能会向我指出一些关于此的工具和/或资源吗?

数据:

A86,IDA 没有对拆机做分析:

C:\Users\Ma\Documents\sap assembler\a86\Temp>a86 TEST.ASM
A86 宏汇编程序,V4.02 版权所有 1995 Eric Isaacson
来源:
TEST.ASM [COMPAT.8
抱歉,没有这样的文件

Flat assembler 1.69.32,IDA 没有对反汇编进行分析:

非法指令
指令:.686p

Flat assembler 1.69.32,IDA 分析在反汇编时完成:

错误:无效名称
_LARGE_INTEGER::$837407842DC9087486FDFA5FEB63B74E struc

a86,拆卸时在 IDA 中进行分析:

我的工作流程错了吗?

0 投票
1 回答
5221 浏览

macos - Mac上进程的内存快照?

我想在 mac 上拍摄正在运行的进程的内存快照。我不知道该怎么做。

我有 IDA-PRO for mac。可以使用吗?如何?

任何人都可以建议我这样做吗?(一些文档或示例)。可能可以使用一些来自 uni 的技术,但我也没有意识到这一点。

我不想终止进程,因为我想看看执行指令/命令后发生了什么变化。

0 投票
1 回答
710 浏览

visual-c++ - msvcp60.dll 在 idapro 和 ollydbg 上导入函数名称

我目前正在反转从 msvcp60.dll 导入一些函数的可执行文件。当我在 IDA Pro 中打开可执行文件时,函数名称很长,并且没有提示它们在做什么。现在反转所有这些功能将是浪费时间。

那么有什么方法可以为这些函数取一个有意义的名称,或者至少解释 IDA 中显示的列表?下面是一个函数的例子(代码的地址 0040377C 中的调用):

0 投票
2 回答
1199 浏览

assembly - 汇编绝对 JMP/CALL 到相对 JMP/CALL 工具/插件?

我有这个程序,我正在尝试逆向工程。我不知道是编译器的优化器还是混淆器,但是现在调用其他函数的代码的某些部分是通过数学计算然后调用的,例如

它可以正常工作,直到它作为 DLL 加载到另一个程序中。基地址偏移量已更改,因此现在所有相关代码都可以正常工作,但所有数学计算的调用/jmps 都没有转到正确的区域。

所以我想我可以通过将所有绝对调用变成相对调用来轻松解决这个问题。

在单步执行代码并计算所有数学时,我得到了正确的 jmp/call 偏移量。

我没有像没有足够的空间来分配补丁这样的问题。由于绝对调用通常使用之前的行,我也可以使用它来修复问题

绝对调用,这是数学结束的地方:

转换为喜欢

好吧,上面当然不会工作,因为 eax 已经是什么了,但这只是一个伪代码示例

好吧,我的问题不是如何做到这一点,而是在 OllyDbg 或 IDA Pro 中是否有任何插件可以自动为我做到这一点?

0 投票
2 回答
4450 浏览

reverse-engineering - 在 IDA 中修改和保存

是否可以将代码添加到 IDA 中的当前二进制文件,然后保存然后重新编译二进制文件?我查看了谷歌,但没有关于 IDA 是否可以做到这一点的建议。如果没有,最好对过时的固件添加一些相当大的修改?

我是否必须从文件中加载其他类/函数?

0 投票
1 回答
877 浏览

debugging - AeDebug\Debugger 中的什么字符串将 IDA Pro 附加为调试器?

我需要使用 IDA Pro 调试一些二进制崩溃。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger启动 IDA Pro 附加到崩溃进程的值中的命令行是什么?

我查看了 IDA 的命令行开关,但一无所获。

0 投票
3 回答
167 浏览

assembly - 找到最后更改寄存器中位置的“函数”?

抱歉,对于 ASM 和 IDA,我完全是个菜鸟。我的编程经验主要是作为一名 Java 开发人员,我觉得有点脱离了我的舒适区。

我正在做一些逆向工程,我设法找到了我想要的东西。我在我的程序中发现了以下情况:

据我了解,它将 [esi+500h] 处的值移动到寄存器 ecx 中,然后将地址 [exc+679h] 处的字节与字节 1 进行比较。如果结果不是 0,则跳转到函数 loc_7256AAD .

我的问题是 [ecx+679h] 处的字节实际上是一个布尔值,总是 0 或 1。这很好,但我不知道如何找到决定结果是 0 还是 1 的函数。基本上我会很感激一些关于如何去寻找 [ecx+679h] 的值被设置的地方的建议。谢谢。

我将从调用此代码段的例程中提供一些代码,以防万一。

loc_7256E73 是第一个片段。

对不起,如果我漫无目的,我很感激任何建议,谢谢。

在听取了 Jens 的建议后,我尝试添加一个 write trace 断点,但是内存位置发生了变化,即地址 ecx+679h 每次都不一样。如果有人有更多的想法,非常感谢,谢谢。