标签: reverse-engineering

加密以保护文件免受更改

我最近一直在阅读有关加密的一些内容,并且有兴趣保护许可文件不被篡改.现在这可能不是最好的方法,在这种情况下,我愿意接受建议.但我想保护它的一种方法是简单地加密它.

但是,如果我使用加密,我需要使用对称密钥,但这提出了一个问题.如果我在源代码中存储密钥,使用反射器等工具,它真的值得吗?获得初始化向量,盐,密钥等因此破坏加密似乎是一项相当简单的任务.有没有办法保护源中的密钥?或者这是完全错误的做法?

c# encryption reverse-engineering

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

从Oracle数据库反向工程数据库

我想知道是否有任何工具能够从现有的Oracle数据库中提取设计.

我有一个读取权限,我想有设计.或者只是将其导出到*.sql,然后使用任何能够使用表之间的链接创建设计的工具来读取它.像alt数据库设计样本的东西http://www.fileguru.com/images/b/database_design_studio___lite__dds_lite__business_information_database-9552.jpeg

非常感谢你.

database oracle reverse-engineering

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

修补二进制文件

我写了一个简单的C程序,显示"Hello World!" 到stdout.然后我编译了它,并删除了源代码.

我已经将自己设置为修补程序的项目,以便显示除"Hello World!"之外的其他内容.为此,我发现存储在二进制文件中的字符串,并使用vi的十六进制编辑器将存储字符串的二进制偏移量(我假设它是数据部分)中的'a'替换为'e'.

我只更改了二进制文件的一个字节,0x65到0x61,'e' - >'a',然而,当我运行程序时,我得到了这个:

./simple: line 1: 0000000:: command not found
./simple: line 2: 0000010:: command not found
./simple: line 3: 0000020:: command not found
./simple: line 4: 0000030:: command not found
./simple: line 5: 0000040:: command not found
./simple: line 6: 0000050:: command not found
./simple: line 7: syntax error near unexpected token `('
./simple: line 7: `0000060: 0000 0000 0000 0000 1900 0000 2802 0000  ............(...'
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样?即为什么单字节替换可以呈现其他可执行的二进制文件(我之前运行得很好)不可执行?该字节只是字符串的一部分 - 它不是指令的一部分 - 所以我不明白为什么会发生这种情况.

感谢所有反馈.

c assembly reverse-engineering

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

如何查找C++可执行文件的所有对象(类对象/结构)

有没有办法,可能使用nm或gdb,这将让我创建一个可执行文件包含的所有对象类型的列表?

为了澄清,我有源代码.我需要一种方法来计算运行时使用的所有类/结构大小.所以这可能是一个两部分问题:

  1. 创建所有类/结构的列表
  2. 在gdb中对列表中的每个项目使用sizeof().

c++ reverse-engineering

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

Dalvik再造,.dex文件的结构

我正在尝试分析已编译的Dalvik代码,但我发现了一个问题.这是.dex格式的规范.我可以获取文件的标题,但我无法理解接下来会发生什么 - 当我使用dexdump时,我在标题旁边有类:

class_defs_off      : 61836 (0x00f18c)
data_size           : 368612
data_off            : 72312 (0x011a78)
Class #0 header:
class_idx           : 62
access_flags        : 1536 (0x0600)
Run Code Online (Sandbox Code Playgroud)

但是当我查看我的字节码时,还有其他的东西.我无法理解标题旁边的内容.根据规格string_idi's,但我不确定..dex文件的真实结构是什么?

android reverse-engineering dalvik

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

MOVSX EDX,BYTE PTR [ESP + ECX + 8]命令在OllyDbg和IDA PRO中的差异

当使用OllyDbg和IDA PRO分解同一程序时,我用不同的方式反汇编了一行代码。

OllyDBG:

    MOVSX EDX,BYTE PTR [ESP+ECX+8]
Run Code Online (Sandbox Code Playgroud)

IDA:

    MOVSX EDX, [ESP+ECX+68h+String]
Run Code Online (Sandbox Code Playgroud)

有人可以在这里解释IDA PRO的意思吗?我对这里的68h + String部分感到沮丧。我可以假设68h + String始终表示BYTE PTR吗?

assembly reverse-engineering ida ollydbg

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

将mov更改为设置常量0

这是可执行文件的指令:

mov dword_1006530C, esi -> 89 35 0C 53 06 10
Run Code Online (Sandbox Code Playgroud)

如何更改十六进制以将零移动到地址?

x86 assembly reverse-engineering ida

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

保护python代码免受逆向工程

我正在python(2.7)中创建一个程序,我想保护它不受逆向工程的影响。

我使用cx_freeze(提供了基本的安全性-混淆和防调试)对其进行了编译

我如何添加更多保护措施,例如混淆,打包,防调试,对代码识别VM进行加密。

我以为可能对有效负载进行加密并在运行时对其进行解密,但是我不知道如何做到这一点。

python debugging obfuscation assembly reverse-engineering

1
推荐指数
2
解决办法
4665
查看次数

如何扭转这个等式?

下面的代码行在一个for循环中,其中j增加ansString了一个ASCII字符串,如000\Qg$M!*P000\gQYA+ h000\M|$skd 000\Qo}plsd000\.

ansString[j] = ((char)(paramString[j] >> j % 8 ^ paramString[j]));
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何让XOR和所有其他操作员反向找到paramString.感谢任何帮助.

java string encryption reverse-engineering

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

*(int32_t *)(a + 4)= b是什么意思?

我已经.so使用retdec反编译了一个文件(来自Android应用程序中的ARM库),并且在代码中可以找到类似的指令:

int32_t a = `some value`;
int32_t b = `another value`;
*(int32_t *)(a + 4) = b;
Run Code Online (Sandbox Code Playgroud)

由于以任何值运行此命令都会在编译时产生警告,并且在运行时出现分段错误,因此我不确定它的实际作用。

c arm decompiling reverse-engineering

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