首页
社区
课程
招聘
[分享]分享一下OD反汇编引擎。
发表于: 2009-7-29 15:47 66301

[分享]分享一下OD反汇编引擎。

2009-7-29 15:47
66301
收藏
免费 7
支持
分享
最新回复 (67)
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
有个xde 的反汇编引擎, 大家用过么? 我个人感觉不错!!!
2009-8-27 13:20
0
雪    币: 253
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
这是个好模块!下来收藏!
2009-8-28 08:20
0
雪    币: 104
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zjw
28
好东西,感谢分享。
2009-9-11 16:55
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
看雪里面都是好东西,大牛一串串~
我等菜鸟前来,膜拜~
2009-9-11 22:34
0
雪    币: 250
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
太强了
2009-9-11 23:04
0
雪    币: 3226
活跃值: (2878)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
3:修复了REP指令的识别,按OD来确定。
//将REP和MOV分开,不太确定是否妥当.
00417E64  |.  F3:AB                 rep     stos dword ptr es:[edi] //这里为???
00417E66  |.  66:AB                 stos    word ptr es:[edi]

测试了下  还是有这个分行的问题 。。

另外一个地方估计楼主笔误。。

                // If opcode is 2-byte, adjust command.
                if(pd->len==2)
                {
                        if(m_ulSize==0){ m_pDisasm->error=DAE_CROSS; }
                        else {
                                if(m_nMode>=DISASM_FILE){ m_nDump += sprintf(m_pDisasm->dump+m_nDump,_T("%02X"),*m_pCmd); }
                                m_pCmd[0]++; srcip++; m_ulSize--;
                        }
                }
m_pCmd[0]++;     应该是  m_pCmd++
2009-9-12 11:57
0
雪    币: 3226
活跃值: (2878)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
没注意 #25.。。 \xF3\xAB 这样的指令还是会分行。。OD 1.10版本 则是当一行处理
2009-9-12 11:59
0
雪    币: 517
活跃值: (84)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
33
美得很,前一向就想改造OD的BC版反汇编引擎了,一看代码那么多,全局变量又一大堆,封装起来有点难度。一直没怎么去动。没想到还是牛人多。好好好!
楼主menting与9楼bluesand都牛!
PS:搞成动态库更方便,还有——改unicode版本就更帅了,嘿嘿
2009-9-12 12:08
0
雪    币: 232
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
9楼的那个也不错
2009-9-12 12:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
谢谢分享。好文章!!
2009-9-12 13:51
0
雪    币: 222
活跃值: (69)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
36
反汇编我已经改得很完美了,就和OD出来的一样,就是汇编引擎弄不好,老是用了长指令的格式

81 05 E0 5A 47 00 01 00 00 00 11 22 33 44 55 66    Size of command = 10 bytes

==========================================
                          0xff,0xE0,0x55,0x8B,0xEC,0x51,0x51,0x53,0x56,0x57,
                          0x64,0x8B,0x35,0x00,0x00,0x00,0x00,0x89,0x75,0xFC,
                          0xC7,0x45,0xF8,0xF4,0x25,0x42,0x00,0x6A,0x00,0xFF,
                          0x75,0x0C,0xFF,0x75,0xF8,0xFF,0x75,0x08,0xE8,0x76,
                          0x1F,0x01,0x00,0x8B,0x45,0x0C,0x8B,0x40,0x04,0x83,
                          0xE0,0xFD,0x8B,0x4D,0x0C,0x89,0x41,0x04,0x64,0x8B,
                          0x3D,0x00,0x00,0x00,0x00
下面是上面的数据的反汇编:
00410000  FFE0                  jmp      eax                          ;2  byte
00410002  55                    push     ebp                          ;1  byte
00410003  8BEC                  mov      ebp,esp                      ;2  byte
00410005  51                    push     ecx                          ;1  byte
00410006  51                    push     ecx                          ;1  byte
00410007  53                    push     ebx                          ;1  byte
00410008  56                    push     esi                          ;1  byte
00410009  57                    push     edi                          ;1  byte
0041000a  64:8B35 00000000      mov      esi,fs:[0]                   ;7  byte
00410011  8975 FC               mov      [ebp-4],esi                  ;3  byte
00410014  C745 F8 F425D200      mov      dword ptr [ebp-8],0xD225F4   ;7  byte
0041001b  6A 00                 push     0                            ;2  byte
0041001d  FF75 0C               push     dword ptr [ebp+0xC]          ;3  byte
00410020  FF75 F8               push     dword ptr [ebp-8]            ;3  byte
00410023  FF75 08               push     dword ptr [ebp+8]            ;3  byte
00410026  E8 761F0100           call     0x421FA1                     ;5  byte
0041002b  8B45 0C               mov      eax,[ebp+0xC]                ;3  byte
0041002e  8B40 04               mov      eax,[eax+4]                  ;3  byte
00410031  83E0 FD               and      eax,-3                       ;3  byte
00410034  8B4D 0C               mov      ecx,[ebp+0xC]                ;3  byte
00410037  8941 04               mov      [ecx+4],eax                  ;3  byte
0041003a  64:8B3D 00000000      mov      edi,fs:[0]                   ;7  byte
=========================================
  5  E8 1F140000             call     0x45187C              jmpconst=45187C
==========================================
  2  75 72                   jnz      short 0xD504A374      jmpconst=D504A374
==========================================
Assembler:
汇编:ADD [DWORD 475AE0],1:
32位立即数: 10  81 05 E0 5A 47 00 01 00 00 00
==========================================
8位立即数:  7  83 05 E0 5A 47 00 01
==========================================
汇编 push 7f;
  2  6A 7F
mov eax,dword ptr [40E000];这一句本来汇编出来的是 A1 00 E0 04 00
  6  8B 05 00 E0 40 00
请按任意键继续. . .
上传的附件:
2009-9-12 20:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
多看源码 有利身心健康.感谢分享
2009-9-13 03:27
0
雪    币: 3226
活跃值: (2878)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
"这一句本来汇编出来的是 A1 00 E0 04 00" <----------------  这句是错的

“8B 05 00 E0 40 00” <-------------  这正确,smartqiu可以在OD里试试看
2009-9-26 11:38
0
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
先下了收藏了,期待楼主能做个简要的会用说明,谢谢了
2009-9-26 23:46
0
雪    币: 347
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
全部收藏了,谢谢大牛们的分享
慢慢研究
2009-10-27 12:02
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
收藏了!谢谢楼主和9楼以及36楼3位牛人的分享!
2009-10-28 13:05
0
雪    币: 357
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
42
收藏,好帖子,不能不收藏
2009-10-28 13:46
0
雪    币: 303
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
收藏了。谢谢分享。
2009-10-29 00:36
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
这么好,受用了。
2009-12-16 08:55
0
雪    币: 3003
活跃值: (479)
能力值: ( LV15,RANK:1395 )
在线值:
发帖
回帖
粉丝
45
支持,收藏一个
2009-12-16 11:21
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
46
顶一下,支持,下来,看看
2009-12-16 11:34
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
看源码很受益,谢谢
2010-4-8 15:04
0
雪    币: 170
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
48
好东西,先收了
2010-5-19 18:21
0
雪    币: 248
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
学学,很好的资料
2010-5-19 22:00
0
雪    币: 132
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
50
大牛们别停哟。。。我在后面追呢。。。
2010-9-1 23:54
0
游客
登录 | 注册 方可回帖
返回
//