标签: reverse-engineering

使用AI技术的逆向工程文件格式

这是为了扩展问题:帮助逆向工程二进制文件格式的工具

是否有任何公开可用的工具使用群集和/或数据挖掘技术来反向工程文件格式?

例如,使用该工具,您将拥有一组具有相同格式的文件,并且该工具的输出将是通用结构?

file-format pattern-recognition artificial-intelligence reverse-engineering cluster-analysis

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

在剥离的ELF可执行文件中设置断点

我有一个ELF 32位动态链接,剥离文件,我想调试.尝试在地址处设置断点时,会显示一条消息,指出未加载符号表.

我的问题是:

  1. 当你说一个ELF文件stripped正是发生了什么?
  2. 你如何剥离ELF文件?
  3. 有可能以某种方式重建符号表吗?
  4. 是否无法在剥离的可执行文件中在gdb中设置断点?

gdb reverse-engineering elf disassembly

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

在运行时确定程序段(HEADER,TEXT,CONST等)

所以我意识到我可以在IDA Pro中打开一个二进制文件并确定段开始/停止的位置.可以在Cocoa运行时确定这个吗?

我假设有一些c级库函数可以实现这一点,我在马赫标题中戳了一下但找不到多少:/

提前致谢!

assembly xcode cocoa reverse-engineering

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

FILD和FSTP指令

正在做一个破解,试图写一个keygen,我对一些FPU指令感到困惑.

fild    qword ptr ss:[esp] ; loads 4275451536.0000000000 into ST0. ESP has FED63690
lea     esp, dword ptr ss:[esp+8]
fstp    qword ptr ss:[ebp-410] ; loads D2000000 into ebp - 410
fld     qword ptr ss:[ebp-410] ; loads 4275451536.0000000000 into ST0
fstp    qword ptr ss:[esp+8] ; loads D2000000 into esp+8
Run Code Online (Sandbox Code Playgroud)

我想知道它弹出时如何将4275451536.0000000000转换为D2000000?

floating-point x86 assembly reverse-engineering x87

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

在Visio中对数据库进行反向工程时,我无法添加视图

我正在尝试将2012 SQL Server的一部分工程转换为Microsoft Visio2010。views选项为灰色。这些视图是我要记录的过程不可或缺的一部分,没有它们,该图将无用。除了手动输入视图之外,还有其他人可以轻松解决吗?

sql-server visio views reverse-engineering

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

将ms sql数据库反向工程为ERD

如何在micorsoft sql server 2014中从现有数据库创建ERD?

ERD需要类似于: 在此输入图像描述

database sql-server erd reverse-engineering

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

解码汇编语言(炸弹实验室第5阶段)

好吧,所以这是一个如此受欢迎的炸弹实验室,我现在正处于第5阶段,我只停留在两条线上.这是汇编代码:

Dump of assembler code for function phase_5:
   0x08048e29 <+0>: push   %ebx
   0x08048e2a <+1>: sub    $0x18,%esp
   0x08048e2d <+4>: mov    0x20(%esp),%ebx
   0x08048e31 <+8>: mov    %ebx,(%esp)
   0x08048e34 <+11>:    call   0x804908b <string_length>
   0x08048e39 <+16>:    cmp    $0x6,%eax
   0x08048e3c <+19>:    je     0x8048e43 <phase_5+26>
   0x08048e3e <+21>:    call   0x80493a5 <explode_bomb>
   0x08048e43 <+26>:    mov    $0x0,%edx
   0x08048e48 <+31>:    mov    $0x0,%eax
   0x08048e4d <+36>:    movzbl (%ebx,%eax,1),%ecx
   0x08048e51 <+40>:    and    $0xf,%ecx
   0x08048e54 <+43>:    add    0x804a4a0(,%ecx,4),%edx
   0x08048e5b <+50>:    add    $0x1,%eax
   0x08048e5e <+53>:    cmp    $0x6,%eax
   0x08048e61 <+56>:    jne    0x8048e4d <phase_5+36>
=> 0x08048e63 <+58>:    cmp …
Run Code Online (Sandbox Code Playgroud)

x86 assembly reverse-engineering

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

在正在运行的进程中给出其地址,在可执行文件中查找指令?

我正在修改一个旧的放弃软件游戏,以获得无限生命.

具有该指令的地址dec ecx与其在.exe调试中的位置不同.

我记得我的一位老朋友告诉我,有一个公式可以通过.exe中的指令获得"真实"地址.作弊引擎给了我内存地址.我记得在数学公式中,我需要得到模块,在OllyDbg我得到它.但我不记得这个公式.有人知道那个数学公式怎么样?这个公式非常简单!还有另一种方法可以让文件位置永久修改.exe吗?

assembly reverse-engineering memory-address portable-executable cheat-engine

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

伪造ASM回邮地址?

是否有可能伪造返回地址,ebp + 4.

我正在编写一个你会注入到游戏中的DLL,它会调用游戏函数来执行操作,但是我调用的函数会检查程序本身的返回地址,如果它在它的基础之外它会检测到它.

所以基本上有什么办法以任何方式伪造回复地址?

它的工作原理如下:

if ( (_BYTE *)retaddr - (_BYTE *)unusedPadding >= (unsigned int)&byte_A6132A )
  {
    dword_11E59F8 |= 0x200000u;
    dword_162D06C = 0;
    result = (void (*)())sub_51FEE0(dword_11E59FC, v5, (_BYTE *)retaddr - (_BYTE *)unusedPadding, ebx0, edi0, a1);
  }
Run Code Online (Sandbox Code Playgroud)

dll assembly reverse-engineering visual-c++

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

旧版Visual Basic代码中的隐式ByRef

我必须从旧版的Visual Basic软件中复制算法,而关于代码的一件事我不理解。

看来作者已经使用某种方式隐式地通过引用传递简单的数据类型,例如整数。我第一次认为这可能是原始软件中的错误,但第三次出现后,它似乎是故意的。

我无法运行和调试原始(VB6或更低版本)代码。并且在我尝试重现该行为(使用VB.NET)的每个简单代码示例中,除非明确使用ByRef,否则它始终按值传递。

我举了一个例子:

Option Explicit

Module VBModule
    Public Sub Calculate(value)
        value = value + 1
    End Sub

    Function Starter()
        Dim value%
        Call Calculate(value)
        If value > 0 Then
            Console.WriteLine("Success")
        End If
        Console.WriteLine(value)
    End Function

    Sub Main()
        Call Starter()
    End Sub
End Module
Run Code Online (Sandbox Code Playgroud)

该代码取决于Sub value更改Calculate以达到“成功”。在原始项目中,如果不起作用,则有数百行代码将无法访问。

所以问题是,有没有办法value在仍然使用整数类型的情况下通过引用传递而不使用ByRef?还是我要完全理解的错误代码?

作者在代码库中的任何地方都没有使用显式的ByRef或ByVal语句。变量使用类型字符声明,但是子例程参数缺少类型声明。我不确定所使用的Visual Basic版本。在主文件中,第一个语句为VERSION 5.00

当我在Visual Studio中打开代码时,参数的类型显示为Object。因此,Visual Studio知道我不知道的东西,或者仅仅是因为参数缺少类型声明。

我还拥有该软件的编译版本,其产生的结果看起来不错。因此,当我完成代码转录后,我至少可以对照原始结果进行检查。

vb6 basic reverse-engineering pass-by-reference byref

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