Dumpulator模拟执行解密tip

https://github.com/mrexodia/dumpulator

Dumpulator模拟执行工具下载,该工具底层利用了Unicorn模拟执行实现。

安装步骤如下,直接pip是最简单的

Dumpulator模拟执行解密tip

下载官方给出的示例

https://github.com/mrexodia/dumpulator/releases/download/v0.0.1/StringEncryptionFun_x64.dmp

可以看到官方给出了一个非常简单的加解密代码

main.cpp

#include <cstdio>
static char g_encrypted[256] = "x1Cx00x12x0ex0fx15x46x0fx15x46x07x08x46x03x08x05x14x1fx16x12x03x02x46x15x12x14x0fx08x01x66";
void decrypt(char* decrypted, const char* encrypted);
int main(){ char decrypted[256]; decrypt(decrypted, g_encrypted); puts(decrypted);}

decryption.cpp

__declspec(noinline) void decrypt(char* decrypted, const char* encrypted){  auto size = *(unsigned short*)encrypted;  encrypted += 2;  for (unsigned short i = 0; i < size; i++)    *decrypted++ = *encrypted++ ^ 0x66;}

我们使用模拟执行的目的也变得清晰:

1、使用工具获取程序运行时的内存dump文件

2、定位解密函数在dump中的地址

3、使用模拟执行工具Dumpulator直接调用,这一步需要知道调用该解密函数时需要传入的参数

4、执行模拟执行工具,直接获取解密字符串

操作过程

1、获取dump文件

这个示例是一个带有解密功能的程序示例dump,获取它的方法也很简单,官方推荐使用minidump而且该工具在已经在最新版本的x64dbg中集成。打开x64dbg调试StringEncryptionFun.exe,让程序直接断在入口点

Dumpulator模拟执行解密tip

断在入口点后直接输入minidump

Dumpulator模拟执行解密tip

默认dump到x64调试器的同级目录下

Dumpulator模拟执行解密tip

2、确认解密函数地址,由于官方给的程序带有pdb,我们很轻松的定位了解密函数地址0x0000000140001000

Dumpulator模拟执行解密tip

3、确定传入参数

在0x0000000140001000下断点,查看寄存器rcx和rdx两个参数

Dumpulator模拟执行解密tip

我们从源码得知rcx是需要存放解密的数据地址需要我们自己分配,rdx是样本中被加密字符串的地址这个地址需要我们记住是0x0000000140017000

Dumpulator模拟执行解密tip

4、编写模拟执行脚本

将dump放在同级目录下

Dumpulator模拟执行解密tip

脚本如下

from dumpulator import Dumpulator
dp = Dumpulator("StringEncryptionFun_x64.dmp") #为dump创建模拟器temp_addr = dp.allocate(256) #模拟分配解密数据要存放的地址dp.call(0x140001000, [temp_addr, 0x140017000]) #模拟执行解密函数0x140001000,参数用[]传递decrypted = dp.read_str(temp_addr) #解密输出print(f"decrypted: '{decrypted}'")

 点击执行,获取解密数据

Dumpulator模拟执行解密tip



其它相关课程

Dumpulator模拟执行解密tip

Dumpulator模拟执行解密tip


linux高级usb安全开发与源码分析视频教程


Dumpulator模拟执行解密tip


linux程序设计与安全开发


Dumpulator模拟执行解密tip


  • 恶意软件与免杀对抗视频教程


  • Dumpulator模拟执行解密tip

 


 



  • Dumpulator模拟执行解密tip


  • windows

  • Dumpulator模拟执行解密tip

  • windows()

  • Dumpulator模拟执行解密tip

  • USB()

  • Dumpulator模拟执行解密tip

  • ()

  • Dumpulator模拟执行解密tip

  • ios

  • Dumpulator模拟执行解密tip

  • windbg

  • Dumpulator模拟执行解密tip

  • ()

  • Dumpulator模拟执行解密tipDumpulator模拟执行解密tipDumpulator模拟执行解密tip

  • Dumpulator模拟执行解密tip

  • Dumpulator模拟执行解密tip

  •  

  • Dumpulator模拟执行解密tip




原文始发于微信公众号(安全狗的自我修养):Dumpulator模拟执行解密tip

版权声明:admin 发表于 2024年9月4日 上午7:07。
转载请注明:Dumpulator模拟执行解密tip | CTF导航

相关文章