首页
社区
课程
招聘
[旧帖] [求助]OD反汇编出来的代码有区别,到底以哪个为准 0.00雪花
发表于: 2007-9-2 11:31 6496

[旧帖] [求助]OD反汇编出来的代码有区别,到底以哪个为准 0.00雪花

2007-9-2 11:31
6496
我用OllyDbg v1.10 (Step 2)   聆风听雨 汉化的反汇编出来的代码如下:
004010CC      55            DB 55                                    ;  CHAR 'U'
004010CD      8B            DB 8B
004010CE      EC            DB EC
004010CF      83            DB 83
004010D0      EC            DB EC
004010D1      44            DB 44                                    ;  CHAR 'D'
004010D2      56            DB 56                                    ;  CHAR 'V'
004010D3      FF            DB FF
004010D4      15            DB 15
004010D5   .  E4634000      DD <&KERNEL32.GetCommandLineA>
004010D9      8B            DB 8B
004010DA      F0            DB F0
004010DB      8A            DB 8A
004010DC      00            DB 00
004010DD      3C            DB 3C                                    ;  CHAR '<'
004010DE      22            DB 22                                    ;  CHAR '"'
004010DF      75            DB 75                                    ;  CHAR 'u'

选择分析变成如下代码:
004010CC  /.  55            PUSH EBP
004010CD  |.  8BEC          MOV EBP,ESP
004010CF  |.  83EC 44       SUB ESP,44
004010D2  |.  56            PUSH ESI
004010D3  |.  FF15 E4634000 CALL DWORD PTR DS:[<&KERNEL32.GetCommand>; [GetCommandLineA
004010D9  |.  8BF0          MOV ESI,EAX
004010DB  |.  8A00          MOV AL,BYTE PTR DS:[EAX]
004010DD  |.  3C 22         CMP AL,22
004010DF  |.  75 1B         JNZ SHORT Notepad.004010FC
004010E1  |>  56            /PUSH ESI                                ; /pCurrentChar
004010E2  |.  FF15 F4644000 |CALL DWORD PTR DS:[<&USER32.CharNextA>] ; \CharNextA
004010E8  |.  8BF0          |MOV ESI,EAX
004010EA  |.  8A00          |MOV AL,BYTE PTR DS:[EAX]
004010EC  |.  84C0          |TEST AL,AL
004010EE  |.  74 04         |JE SHORT Notepad.004010F4
004010F0  |.  3C 22         |CMP AL,22
004010F2  |.^ 75 ED         \JNZ SHORT Notepad.004010E1

上面就是手动脱壳入门第十七篇 VGCrypt PE Encryptor V0.75这里面的一个例子。

而我OllyDbg V1.10 [汉化第二版] 汉化: cao_cong   反汇编出来的代码如下

004010CC   .  CD 74         INT 74
004010CE   .  9C            PUSHFD
004010CF      82            DB 82
004010D0      AC            DB AC
004010D1      C4            DB C4
004010D2      35            DB 35                                    ;  CHAR '5'
004010D3      61            DB 61                                    ;  CHAR 'a'
004010D4      ED            DB ED
004010D5   .  23234000      DD Notepad.00402323
004010D9      79            DB 79                                    ;  CHAR 'y'
004010DA      8F            DB 8F
004010DB      79            DB 79                                    ;  CHAR 'y'
004010DC      00            DB 00
004010DD      EC            DB EC
004010DE      DD            DB DD
004010DF      AC            DB AC
004010E0      FB            DB FB
004010E1      C9            DB C9
004010E2      94            DB 94
004010E3      12            DB 12

而这个移除分析变成如下代码:
004010CC    CD 74           INT 74
004010CE    9C              PUSHFD
004010CF    82ACC4 3561ED23>SUB BYTE PTR SS:[ESP+EAX*8+23ED6135],23
004010D7    40              INC EAX
004010D8    0079 8F         ADD BYTE PTR DS:[ECX-71],BH
004010DB    79 00           JNS SHORT Notepad.004010DD
004010DD    EC              IN AL,DX                                 ; I/O 命令
004010DE    DD              ???                                      ; 未知命令
004010DF    AC              LODS BYTE PTR DS:[ESI]
004010E0    FB              STI
004010E1    C9              LEAVE
004010E2    94              XCHG EAX,ESP
004010E3    12AC9C 3F007BF0 ADC CH,BYTE PTR SS:[ESP+EBX*4+F07B003F]
004010EA    8AFF            MOV BH,BH
004010EC  ^ 7C BF           JL SHORT Notepad.004010AD

这两个版本为什么有这样的差别,到底用哪个版本好些,麻烦高手告诉我。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 1211
活跃值: (2589)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
搞错了吧 。。。。。
2007-9-2 11:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哪里搞错了,告诉我啊。QQ 463728677
2007-9-2 11:43
0
雪    币: 424
活跃值: (10)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
4
汇编指令较直观, 但是意思都是一样的
2007-9-2 11:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
[QUOTE=;]...[/QUOTE]
用OllyDbg V1.10 [汉化第二版] 汉化: cao_cong   反汇编出来的汇编相差很远呢,前面哪个都已经把壳脱出来了,教程上也是这样写的,而这个版本的汇编都不知道是怎么回事。

我现在的疑问就是这两个版本分析的数据都不一样。指令码都相差很大,同样一个文件,用不同的版本分析就出现这事,哪我们平常破解时,遇到这种情况怎么办?到底该用哪个。
2007-9-2 12:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是菜鸟~我有个软件用OD只脱掉注册壳,但里面还有个加密的用户帐号限制壳,也就是说作者给软件做了用户使用名称限制;我用OD不懂怎么查看和修改这些限制,有请OD高手帮忙~加我QQ:4218498~有尝服~谢谢!
2007-9-2 12:50
0
游客
登录 | 注册 方可回帖
返回
//