buu-findKey

本文介绍了对32位无壳exe的分析过程,通过查看字符串、使用逆向工程工具逐步分析,发现了关键的无条件跳转导致的执行问题。在修复后,识别并跟进了两个关键函数,一个是MD5加密的实现,另一个涉及特定内存地址的异或操作,用于解密得到特定内容。
摘要由CSDN通过智能技术生成

先感谢up的详细讲解

32位无壳exe
在这里插入图片描述
运行了啥也没有
在这里插入图片描述

查看字符串
在这里插入图片描述
跟进f5查看伪代码,提示

在这里插入图片描述

往上翻可以看到两断一样的汇编指令
逐步交叉引用找到函数的调用位置可以发现
在这里插入图片描述
jz+jnz=>无条件跳转
导致了下面的jmp无法执行
在这里插入图片描述
在这里插入图片描述

然后回到最开始变红的地方
按p键定义函数
在这里插入图片描述
就可以正常按F5查看伪代码了

LRESULT __stdcall sub_401640(HWND hWndParent, UINT Msg, WPARAM wParam, LPARAM lParam)
{
   
  int v5; // eax
  size_t v6; // eax
  DWORD v7; // eax
  HWND v8; // eax
  int v9; // eax
  int v10; // eax
  const CHAR *v11; // [esp+0h] [ebp-44Ch]
  const CHAR *v12; // [esp+4h] [ebp-448h]
  UINT v13; // [esp+8h] [ebp-444h]
  int v14; // [esp+4Ch] [ebp-400h]
  UINT v15; // [esp+50h] [ebp-3FCh]
  CHAR v16; // [esp+54h] [ebp-3F8h]
  CHAR v17[2]; // [esp+154h] [ebp-2F8h]
  int v18; // [esp+157h] [ebp-2F5h]
  __int16 v19; // [esp+15Bh] [ebp-2F1h]
  char v20; // [esp+15Dh] [ebp-2EFh]
  char v21; // [esp+160h] [ebp-2ECh]
  char v22; // [esp+181h] [ebp-2CBh]
  __int16 v23; // [esp+25Dh] [ebp-1EFh]
  char v24; // [esp+25Fh] [ebp-1EDh]
  CHAR v25; // [esp+260h] [ebp-1ECh]
  CHAR String[4]; // [esp+360h] [ebp-ECh]
  int v27; // [esp+364h] [ebp-E8h]
  __int16 v28; // [esp+368h] [ebp-E4h]
  CHAR Text; // [esp+36Ch] [ebp-E0h]
  struct tagRECT Rect; // [esp+38Ch] [ebp-C0h]
  CHAR Buffer; // [esp+39Ch] [ebp-B0h]
  HDC hdc; // [esp+400h] [ebp-4Ch]
  struct tagPAINTSTRUCT Paint; // [esp+404h] [ebp-48h]
  WPARAM v34; // [esp+444h] [ebp-8h]
  int v35; // [esp+448h] [ebp-4h]

  LoadStringA(hInstance, 0x6Au, &Buffer, 100);
  v15 = Msg;
  if ( Msg > 0x111 )
  {
   
    if ( v15 == 517 )
    {
   
      if ( strlen(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值