想把汇编代码转成类c的代码,有经验的给点建议

发布于 2021-11-10 07:49:10 字数 56 浏览 906 评论 7

本来一直在上层游荡,突的就来了个这么低层的活:把汇编代码转化成类c代码的格式。没弄过,求高手大侠不吝赐教,谢谢啦

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

眼眸里的那抹悲凉 2021-11-11 02:08:19

这个可以试试,呵呵

天涯离梦残月幽梦 2021-11-11 02:07:26

看来乃们的破解知识不行嘛 :)

 

IDA HEX-RAYS

.text:0061B000
.text:0061B000                 push    0FFFFFFFFh
.text:0061B002 ; 18:     v4 = sub_40AAC0((unsigned int)&v15 ^ dword_A3982C);
.text:0061B002                 push    offset loc_67ED59
.text:0061B007                 mov     eax, large fs:0
.text:0061B00D                 push    eax
.text:0061B00E                 push    ebx
.text:0061B00F                 push    esi
.text:0061B010                 push    edi
.text:0061B011                 mov     eax, dword_A3982C
.text:0061B016                 xor     eax, esp
.text:0061B018                 push    eax
.text:0061B019 ; 10:   v3 = this;
.text:0061B019                 lea     eax, [esp+1Ch+var_C]
.text:0061B01D                 mov     large fs:0, eax
.text:0061B023                 mov     esi, ecx
.text:0061B025 ; 11:   v2 = a2;
.text:0061B025                 mov     edi, [esp+1Ch+arg_0]
.text:0061B029                 mov     eax, [edi]
.text:0061B02B                 xor     ebx, ebx
.text:0061B02D ; 12:   if ( *(_DWORD *)a2 )
.text:0061B02D                 cmp     eax, ebx
.text:0061B02F                 jnz     loc_61B0BF
.text:0061B035                 call    sub_40AAC0
.text:0061B03A ; 19:     if ( (unsigned __int8)QString__operator__(v2 + 1028, v4) )
.text:0061B03A                 push    eax
.text:0061B03B                 lea     ecx, [edi+404h]
.text:0061B041                 call    ds:??8QString@@QBE_NPBD@Z ; QString::operator==(char const *)
.text:0061B047                 test    al, al
.text:0061B049                 jz      short loc_61B07D
.text:0061B04B ; 21:       if ( (unsigned __int8)sub_63F3A0(v2) )
.text:0061B04B                 push    edi
.text:0061B04C                 mov     ecx, esi
.text:0061B04E                 call    sub_63F3A0
.text:0061B053                 test    al, al
.text:0061B055                 mov     ecx, esi
.text:0061B057                 jz      short loc_61B076
.text:0061B059 ; 23:         sub_61ACD0(v3, v2);
.text:0061B059                 push    edi
.text:0061B05A                 call    sub_61ACD0
.text:0061B05F ; 24:         return 1;
.text:0061B05F                 mov     al, 1
.text:0061B061                 mov     ecx, [esp+1Ch+var_C]
.text:0061B065                 mov     large fs:0, ecx
.text:0061B06C                 pop     ecx
.text:0061B06D                 pop     edi
.text:0061B06E                 pop     esi
.text:0061B06F                 pop     ebx
.text:0061B070                 add     esp, 0Ch
.text:0061B073                 retn    4

F5后转成

char __thiscall sub_61B000(void *this, int a2)
{
  int v2; // edi@1
  void *v3; // esi@1
  int v4; // eax@2
  int v6; // eax@6
  int v7; // ST04_4@6
  char v15; // [sp+0h] [bp-18h]@2
  int v16; // [sp+14h] [bp-4h]@6

  v3 = this;
  v2 = a2;
  if ( *(_DWORD *)a2 )
  {
    sub_61A940(*(_DWORD *)a2);
  }
  else
  {
    v4 = sub_40AAC0((unsigned int)&v15 ^ dword_A3982C);
    if ( (unsigned __int8)QString__operator__(v2 + 1028, v4) )
    {
      if ( (unsigned __int8)sub_63F3A0(v2) )
      {
        sub_61ACD0(v3, v2);
        return 1;
      }
      sub_61AF80(v3);
    }
    else
    {
      v6 = sub_61A710(&a2, "The key is not for this product.", 0);
      v16 = 0;
      sub_61E070(v6, v7);
      _ECX = a2;
      v16 = -1;
      _EDX = -1;
      __asm { lock xadd [ecx], edx }
      if ( _ZF )
        QString__free(a2);
    }
  }
  return 0;
}

我现在正研究某某的那啥,你们懂的

头大死了 没头绪了

千笙结 2021-11-11 02:03:16

上头的任务,不转不行啊

英雄似剑 2021-11-11 01:37:49

这个最好还是手工转吧,汇编转C并不麻烦啊

虐人心 2021-11-11 01:22:10

哦,好的,谢谢啊

清欢 2021-11-11 00:53:12

好像 有个什么工具 能将汇编转换为C代码,但是里面很多goto语句,看起来很蛋疼,

软件名字我忘了 ,你可以去看雪问问~

柠檬 2021-11-10 10:30:59

这个没有

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文