问题标签 [reverse-engineering]

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 投票
4 回答
5316 浏览

debugging - 监控 API 调用

我正在做一些逆向工程,想知道从可执行文件中调用了哪些 API。我最感兴趣的是在特定 Windows 系统 DLL 上调用的 API。

我想这样做的一种方法是使用 dumpbin 从 DLL 中公开所有 API,并在所有来自 Windbg 的 API 上放置断点。

还有其他方法吗?如果我需要监控许多系统 DLL,这似乎需要很多时间。

顺便说一句,我正在使用 Windows XP 并希望监视一个调用某些 Windows 系统 DLL 函数的可执行文件。

0 投票
5 回答
3211 浏览

binary - 如何分析封闭格式(例如 doc 或 vce)?

我想研究 .vce 格式。它是一种二进制格式,看起来比简单的对象序列化更复杂。是否存在任何分析二进制格式的工具或技术?

0 投票
1 回答
4895 浏览

binary - 如何在内存中找到字符串的位置(具有物理偏移量)?

我需要找到str[possibly n]cmp一个敌对的二进制文件。问题是拆卸中有十亿。

我知道它的存在是因为字符串的帮助。我正在反汇编一个没有“otx”的二进制文件(为您放入字符串的反汇编程序。

一旦程序加载,我需要知道如何找到该字符串的内存偏移量,以便我可以使用 gdb 等。

如果你能给我一个算法(我以前记得另一种方式:phys off = virtual off * segment adress + segment offset--或类似的东西)(ps是正确的吗??:))

或者,如果您能告诉我这在 ida pro 中如何变得无比简单,我将不胜感激

谢谢 :)

0 投票
6 回答
42464 浏览

binary - 在 IDA Pro 中编辑(修补)二进制文件

我想知道如何在 ida pro 中编辑二进制文件(我只需要更改一条指令!)

(它的 ARM 二进制文件)

谢谢

0 投票
7 回答
40596 浏览

java - 如何从 jar 文件中获取方法签名?

我有一个第三方 jar 文件,它仅用于部分 API 的 javadocs。有没有办法对 jar 文件进行逆向工程以获得完整的类和方法列表?

0 投票
2 回答
2662 浏览

reverse-engineering - 函数的参数是在堆栈上传递还是在寄存器中传递?

我目前正在分析我在汇编中编写的程序,并正在考虑在汇编中移动一些代码。我有一个带有一个参数的过程,但我不确定它是通过堆栈还是寄存器传递。

当我在 IDA Pro 中打开我的程序时,程序的第一行是:

如果我将光标悬停在声明上,还会出现以下内容:

我会假设它会指向一个堆栈变量?

然而,当我在 OllyDbg 中打开同一个程序时,堆栈上的这个位置有一个很大的值,这与可能传递的任何参数不一致,让我相信它是在寄存器中传递的。

谁能指出我正确的方向?

0 投票
4 回答
1868 浏览

reverse-engineering - 修改程序以伪造按钮按下

我有一个给我的 MFC 应用程序(没有源代码),它打开一个带有“更新”按钮的窗口,然后在单击后执行很长时间的更新。

我想修改程序,以便在创建窗口(或其他地方,如 DoModal)时,会向程序发送一条消息,使其认为按钮已被按下。

我在 Ida Pro 和 OllyDbg 中玩弄了一段时间,但无济于事。我看着可能使用 PumpMessage,但这并没有带来任何成功。

有什么建议吗?

0 投票
3 回答
1265 浏览

ruby - 从我的胰岛素泵控制器逆向工程统计数据文件

这可能是也可能不是一个灰色地带的主题,尽管我的意图肯定不是,所以我的意图不是激起关于逆向工程主题的道德辩论。

我是一名 1 型糖尿病患者,目前正在接受泵治疗。我是OmniPod用户,它是一种一次性豆荚,可以贴在我的身体上并分配 3 天的胰岛素。它由个人糖尿病经理 [PDM](见下文)控制,该经理控制在用餐期间分配多少胰岛素、血糖读数,并且它包含一个食物指数,用于在旅途中计算碳水化合物。

替代文字
(来源:myomnipod.com

新的 PDM 有一个用于下载数据的 USB 端口。该软件对 Windows 用户免费(名为 CoPilot 的软件包),但不支持 Mac。

将 PDM 插入我的 Mac 后,它像任何其他 USB 设备一样安装,并为我提供了一个可读的卷,上面有一个带有 IBF 扩展名的文件。它的重量为 16KB。

我的第一个直觉是通过文本编辑器传递它,并得到一个看起来非常二进制的文件。然后我通过字符串传递它(见下文)并用十六进制编辑器打开它。尽管除了下面的字符串之外我无法获得太多信息;没有压缩格式细节或任何东西。

我在这个过程中的下一步应该是什么?我是一个动态语言专家,所以任何 Ruby 或 Python 的资源都会很棒。是否有任何测试驱动的逆向工程流程?

就我希望获得的数据而言,我想将这些信息绘制成图表以获得有关我的进度的更多信息(胰岛素摄入量、血糖读数、时间戳);所有这些都可以在 Windows 软件包中实现。

0 投票
6 回答
424 浏览

hash - 如何生成此哈希?

我是编程新手(刚开始!),最近碰壁了。我正在为魔兽世界制作一个粉丝网站,我想链接到一个受欢迎的网站 (wowhead.com)。以下页面显示了我想要弄清楚的内容:http ://www.wowhead.com/?talent#ozxZ0xfcRMhuVurhstVhc0c

据我了解,链接的“ozxZ0xfcRMhuVurhstVhc0c”部分是一个哈希。它包含页面上有关该特定天赋规范的所有信息,并且每当我在天赋中添加或删除点时都会更改。我希望能够重新创建这部分,以便我可以将我的用户直接链接到 wowhead 以查看他们的天赋树,但我不知道如何做到这一点。任何人都可以提供一些指导吗?

0 投票
11 回答
35184 浏览

encryption - 我将如何对加密算法进行逆向工程?

我编写了一个以这种方式加密文本的应用程序:

  1. 获取输入文本

  2. 反转文本

  3. 转换为十六进制

  4. 与密钥进行异或

  5. Base64 编码

现在,我自己并没有做很多加密/编码,所以我的问题可能听起来很愚蠢,但是,假设我得到一个包含上述算法内容的文件,而我不知道这个算法。一个人将如何开始“破坏”文本,是否有任何指导方针、原则和规则可以遵循?

我的问题与这 5 个步骤无关,这是一个纯粹的例子。

作为不同的示例,以文本:A751CD9E1F99 为例。我将如何开始调查这可能意味着什么?