首页
社区
课程
招聘
谁能帮我看看这个,汇编是如何转成C程序?
发表于: 2010-5-7 10:19 5412

谁能帮我看看这个,汇编是如何转成C程序?

2010-5-7 10:19
5412
这个我查到,相信是封包加解的程序,但汇编指令看了N次
就是没有办法写出他的转换来

00401334  /$  85DB          TEST EBX,EBX
00401336  |.  75 03         JNZ SHORT Nana_1_8.0040133B
00401338  |.  33C0          XOR EAX,EAX
0040133A  |.  C3            RETN
0040133B  |>  8BCB          MOV ECX,EBX
0040133D  |.  F7C1 03000000 TEST ECX,3
00401343  |.  74 0F         JE SHORT Nana_1_8.00401354
00401345  |>  8A01          /MOV AL,BYTE PTR DS:[ECX]
00401347  |.  41            |INC ECX
00401348  |.  84C0          |TEST AL,AL
0040134A  |.  74 3B         |JE SHORT Nana_1_8.00401387
0040134C  |.  F7C1 03000000 |TEST ECX,3
00401352  |.^ 75 F1         \JNZ SHORT Nana_1_8.00401345
00401354  |>  8B01          /MOV EAX,DWORD PTR DS:[ECX]
00401356  |.  BA FFFEFE7E   |MOV EDX,7EFEFEFF
0040135B  |.  03D0          |ADD EDX,EAX
0040135D  |.  83F0 FF       |XOR EAX,FFFFFFFF
00401360  |.  33C2          |XOR EAX,EDX
00401362  |.  83C1 04       |ADD ECX,4
00401365  |.  A9 00010181   |TEST EAX,81010100
0040136A  |.^ 74 E8         |JE SHORT Nana_1_8.00401354
0040136C  |.  8B41 FC       |MOV EAX,DWORD PTR DS:[ECX-4]
0040136F  |.  84C0          |TEST AL,AL
00401371  |.  74 26         |JE SHORT Nana_1_8.00401399
00401373  |.  84E4          |TEST AH,AH
00401375  |.  74 1C         |JE SHORT Nana_1_8.00401393
00401377  |.  A9 0000FF00   |TEST EAX,0FF0000
0040137C  |.  74 0F         |JE SHORT Nana_1_8.0040138D
0040137E  |.  A9 000000FF   |TEST EAX,FF000000
00401383  |.  74 02         |JE SHORT Nana_1_8.00401387
00401385  |.^ EB CD         \JMP SHORT Nana_1_8.00401354
00401387  |>  8D41 FF       LEA EAX,DWORD PTR DS:[ECX-1]
0040138A  |.  2BC3          SUB EAX,EBX
0040138C  |.  C3            RETN
0040138D  |>  8D41 FE       LEA EAX,DWORD PTR DS:[ECX-2]
00401390  |.  2BC3          SUB EAX,EBX
00401392  |.  C3            RETN
00401393  |>  8D41 FD       LEA EAX,DWORD PTR DS:[ECX-3]
00401396  |.  2BC3          SUB EAX,EBX
00401398  |.  C3            RETN
00401399  |>  8D41 FC       LEA EAX,DWORD PTR DS:[ECX-4]
0040139C  |.  2BC3          SUB EAX,EBX
0040139E  \.  C3            RETN

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个东西给的太少吧,恐怕很有难度吧
2010-5-7 10:47
0
雪    币: 117
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
但这段才是解密的部分哦
2010-5-7 10:53
0
雪    币: 117
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
只要帮忙说出每一行的意思也可以,其它的我再去搞..嘻嘻
2010-5-7 11:39
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
strlen()
2010-5-7 11:42
0
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
建议楼主用IDA 的F5功能,这样分析起来会方便很多。

http://bbs.pediy.com/showthread.php?t=103324&highlight=IDA

我没分析楼主贴的代码,不知IDA能不能解析出来的!
2010-5-7 12:18
0
雪    币: 117
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
用IDA试了一下,不太会IDA,呵呵
看到有一些象程序段,把他复制下了,看看
int __usercall sub_401334<eax>(int a1<ebx>)
{
  int result; // eax@2
  int v2; // ecx@3
  char v3; // al@4
  int v4; // eax@6
  int v5; // eax@7

  if ( a1 )
  {
    v2 = a1;
    if ( !(a1 & 3) )
      goto LABEL_6;
    do
    {
      v3 = *(_BYTE *)v2++;
      if ( !v3 )
        return v2 - 1 - a1;
    }
    while ( v2 & 3 );
    while ( 1 )
    {
      do
      {
LABEL_6:
        v4 = (*(_DWORD *)v2 + 2130640639) ^ ~*(_DWORD *)v2;
        v2 += 4;
      }
      while ( !(v4 & 0x81010100) );
      v5 = *(_DWORD *)(v2 - 4);
      if ( !(_BYTE)v5 )
        break;
      if ( !BYTE1(v5) )
        return v2 - 3 - a1;
      if ( !(v5 & 0xFF0000) )
        return v2 - 2 - a1;
      if ( !(v5 & 0xFF000000) )
        return v2 - 1 - a1;
    }
    result = v2 - 4 - a1;
  }
  else
  {
    result = 0;
  }
  return result;
}
2010-5-8 14:25
0
雪    币: 117
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
if ( !BYTE1(v5) ) 这个是什么,不是说数组吧?
2010-5-8 14:42
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
5楼多少参考一下吧
2010-5-8 15:07
0
雪    币: 1981
活跃值: (771)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
10
LZ有给你1Kx
2010-5-8 15:17
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
谢谢楼主
2010-5-8 15:18
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
5楼多少有一点
2010-5-8 22:48
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
13
可能他认为5楼是来闹的吧
2010-5-9 00:33
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
14
真理往往就停在字数很少的楼层上面
2010-5-9 07:51
0
雪    币: 117
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
呵呵,不好意思,STRLEN()我只知道是求字符串的个数,
C/C++我不懂,有失礼之处,多多原谅!
2010-5-9 09:50
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
反汇编  IDA 那软件好像没了
2010-6-12 13:27
0
游客
登录 | 注册 方可回帖
返回
//