标签: reverse-engineering

如何查看 DLL 中的函数?

有没有办法打开和查看 DLL 中的代码(即,查看函数/方法、签名以及这些函数或方法中的代码?)

有没有办法查看 DLL 中的任何标题以及 DLL 的作者信息?

dll reverse-engineering header

3
推荐指数
1
解决办法
6772
查看次数

Cocotron是逆向工程的结果吗?

它是否复制了各种库的行为(因此调用完全相同),或者只是使用独特的优化和新方法来从头开始编码?

cocoa reverse-engineering objective-c cocotron

3
推荐指数
1
解决办法
686
查看次数

德尔福编程手册

我试图找到一个Delphi编程手册,在那里我可以看到每个函数的作用,参数和返回值的描述.有谁知道我在哪里找到一个?类似于微软的东西?

你知道,我以前从未对Delphi进行过编程,而且我对它一无所知(而且我没有时间去学习它).

谢谢!

delphi x86 reverse-engineering

3
推荐指数
1
解决办法
609
查看次数

安全地保存常数值

我正在开发与安全数据通信相关的 Android 应用程序。我在我的应用程序中使用了一些常量值,并将它们保存在 constant.java 类中。我不希望这些值被逆向工程,但即使我使用 ProGuard for Android,对于专家来说,逆向代码也很容易。这些常量是非常安全的。我可以使用属性文件或 res 文件夹中的任何文件,但这种方法根本不安全。

谁能告诉我如何进行?是否有任何文件格式可以保存我的常量或防止属性文件被逆向工程。是否有任何选项,例如将其保存为 .py python 文件格式并从 Android 代码中读取它?

android reverse-engineering properties proguard

3
推荐指数
1
解决办法
2645
查看次数

在 OllyDBG 中找不到“引用字符串”

所以我试图反转一个程序并破解它,但我无法通过搜索“引用字符串”或“二进制字符串”找到任何字符串,我是 OllyDBG 的新手,我对此知之甚少,这就是为什么这让我发疯。我想知道如何或在哪里可以找到字符串,或者是否有另一种方法可以找到可以开始的给定装配线。

已经谢谢了:)

编辑:如果您需要更多信息,请询问,我会提供。

已经在 ReverseEngineering Stackexchange 中问过,但似乎没有人知道或有时间回答。

string reverse-engineering ollydbg

3
推荐指数
1
解决办法
8838
查看次数

通过装配查找数组的尺寸

我有一个分配逆向工程的程序,以便在下面的代码中找到R,S和T的值.假设R,S和T是用声明的常量#define.

long int A[R][S][T];
int store_ele(int h, int i, int j, long int *dest)
{
   A[h][i][j] = *dest;
   return sizeof(A);
}
Run Code Online (Sandbox Code Playgroud)

编译该程序时,GCC会生成以下汇编代码(使用-O2):

 store_ele:
    movslq    %esi, %rsi          //%rsi = h
    movslq    %edi, %rdi          //%rdi = i
    movq    (%rcx), %rax          //moves the value from %rcx to %rax
    leaq    (%rdi,%rdi,4), %rdi   //%rdi = 4 * i + i
    leaq    (%rsi,%rsi,4), %rcx   //%rcx = 4 * h + h
    movslq    %edx, %rdx          //%rdx = j
    leaq    (%rcx,%rdi,4), %rcx   //%rcx = 4 * …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly reverse-engineering multidimensional-array

3
推荐指数
1
解决办法
530
查看次数

Linux 上的 PEiD 替代方案

有没有可以在 Linux 上使用的类似于 PEiD 的封隔器检测器?ELF 和 PE 格式。

我试图找到一个类似的工具,但我发现的只是在可执行文件中搜索字符串的手动方法,这不是一种非常有效和有效的方法。

linux reverse-engineering elf

3
推荐指数
1
解决办法
4556
查看次数

将 .dart.snapshot 反编译为 Dart 源代码

根据dart-lang/sdk

从 1.21 开始,Dart VM 还支持应用程序快照,其中包括程序训练运行期间生成的所有解析类和编译代码。

    $ dart --snapshot=hello.dart.snapshot --snapshot-kind=app-jit hello.dart arguments-for-training
    Hello, world!
    $ dart hello.dart.snapshot arguments-for-use
    Hello, world!
Run Code Online (Sandbox Code Playgroud)

现在,我如何将这个 hello.dart.snapshot 文件反编译为 hello.dart?

在java语言编写的android Apk中,我们可以使用dex2jar工具反编译apk并从class.dex中获取jar文件,但是当使用flutter框架(用dart编写)开发应用程序时,如何反编译该应用程序并获取应用程序dart类?

此图像显示在 apk 资产文件中生成的快照文件。

Apk结构

reverse-engineering decompiler apk dart flutter

3
推荐指数
1
解决办法
3398
查看次数

如何在普通 DLL 中找到“奇怪”的 ROP 小工具?编译器永远不会这样做。(面向返回的编程)

小工具:

pushad
ret
Run Code Online (Sandbox Code Playgroud)

在合法程序中,来自某个 DLL 对我来说毫无意义。

假设 DLL 是合法的,如何通过自动搜索找到小工具?使用函数的示例可能会有所帮助。

dll x86 assembly reverse-engineering machine-code

3
推荐指数
1
解决办法
94
查看次数

Dwarf DW_AT_location objdump 和 dwarfdump 不一致

我在玩 CPython 并试图了解调试器的工作原理。具体来说,我正在尝试获取最后一个的位置PyFrameObject以便我可以遍历它并获得 Python 回溯。

在文件中ceval.c,第 689 行有函数的定义:

PyObject * PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)

我感兴趣的是f堆栈上的位置。当我转储二进制文件时,dwarfdump我得到的f$rbp-824,但如果我转储二进制文件,objdump我得到的位置是$rbp-808- 16 的差异。此外,当使用 GDB 调试时,我得到正确的答案$rbp-808就像objdump给了我。为什么有差异,为什么dwarfdump不正确?我不明白什么?

如何在技术上重现问题:python-2.7.17.tgz从 Python 网站下载。提炼。

我使用调试符号 ( ./configure --enable-pydebug && make)从源代码编译了 python-2.7.17 。在生成的python二进制文件上运行以下命令:

dwarfdump Python-2.7.17/python 有以下输出:

                        DW_AT_name                  f           
                        DW_AT_decl_file             0x00000001 /home/meir/code/python/Python-2.7.17/Python/ceval.c
                        DW_AT_decl_line             0x000002b1                         
                        DW_AT_type                  <0x00002916>
                        DW_AT_location              len 0x0003: 91c879: DW_OP_fbreg -824
Run Code Online (Sandbox Code Playgroud)

我知道这是正确的,f因为声明变量的行是689 (0x2b1) …

gdb reverse-engineering

3
推荐指数
1
解决办法
290
查看次数