灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:6749回复:1

dll反汇编初步

楼主#
更多 发布于:2011-12-19 17:48

没有什么特别有效的方法,靠的就是耐心和经验,反复验证,直到调用成功。
有个dll2lib的工具,不知道是我不会使用还是怎么的,反正我是没有使用成功过,所以我只能靠自己

来分析了。
首先是使用的工具,ida/win32dasm/ollydbg
win32dasm分析的速度快一些,但是智能程度不如ida,ida这个2001开发工具亚军绝对不是浪得虚名的
,它的智能程度非常高,可是识别出常用的函数,这两个都是静态反汇编的工具,必须配以动态分析的工具,
毕竟你很难一下子就分析对(至少我是这样),当然你可以使用s-ice或者trw,但是这些工具都有限制,trw不支
持2000,s-ice一旦装载只能reboot才能取消装载,还有其工作在ring0,所以你只能对者黑乎乎的屏幕,很痛
苦,这里选用的ollydbg是最新版本,支持dll的跟踪。
下面列出win32dasm反汇编的结果:
Exported fn(): GetUserNumber - Ord:0004h
:0040C1B0 55                       push ebp
:0040C1B1 8BEC                     mov ebp, esp
:0040C1B3 53                       push ebx
:0040C1B4 56                       push esi
:0040C1B5 57                       push edi
:0040C1B6 8B5D08                   mov ebx, dword ptr [ebp+08]
:0040C1B9 33F6                     xor esi, esi
:0040C1BB 8BC3                     mov eax, ebx
:0040C1BD E846A5FFFF               call 00406708
:0040C1C2 6685C0                   test ax, ax
:0040C1C5 7212                     jb 0040C1D9
:0040C1C7 40                       inc eax
:0040C1C8 33D2                     xor edx, edx

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C1D7(C)
|
:0040C1CA 0FB7CA                   movzx ecx, dx
:0040C1CD 0FB60C0B                 movzx ecx, byte ptr [ebx+ecx]
:0040C1D1 03F1                     add esi, ecx
:0040C1D3 42                       inc edx
:0040C1D4 66FFC8                   dec ax
:0040C1D7 75F1                     jne 0040C1CA

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C1C5(C)
|
:0040C1D9 8B450C                   mov eax, dword ptr [ebp+0C]
:0040C1DC 8A4012                   mov al, byte ptr [eax+12]
:0040C1DF 3C61                     cmp al, 61
:0040C1E1 720B                     jb 0040C1EE
:0040C1E3 25FF000000               and eax, 000000FF
:0040C1E8 6683E861                 sub ax, 0061
:0040C1EC EB09                     jmp 0040C1F7

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C1E1(C)
|
:0040C1EE 25FF000000               and eax, 000000FF
:0040C1F3 6683E841                 sub ax, 0041

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C1EC(U)
|
:0040C1F7 8B550C                   mov edx, dword ptr [ebp+0C]
:0040C1FA 8A5213                   mov dl, byte ptr [edx+13]
:0040C1FD 80FA61                   cmp dl, 61
:0040C200 720C                     jb 0040C20E
:0040C202 81E2FF000000             and edx, 000000FF
:0040C208 6683EA61                 sub dx, 0061
:0040C20C EB0A                     jmp 0040C218

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C200(C)
|
:0040C20E 81E2FF000000             and edx, 000000FF
:0040C214 6683EA41                 sub dx, 0041

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C20C(U)
|
:0040C218 0FB7C0                   movzx eax, ax
:0040C21B 6BF81A                   imul edi, eax, 0000001A
:0040C21E 0FB7C2                   movzx eax, dx
:0040C221 03F8                     add edi, eax
:0040C223 81F74D010000             xor edi, 0000014D
:0040C229 83F701                   xor edi, 00000001
:0040C22C 8BC3                     mov eax, ebx
:0040C22E E8D5A4FFFF               call 00406708
:0040C233 2BF8        ;nb


喜欢0 评分0
闭眼就天黑
精灵王
精灵王
  • 注册日期2012-09-13
  • 发帖数373
  • QQ
  • 火币1904枚
  • 粉丝68
  • 关注9
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 幽默大师奖
  • 新人进步奖
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 金点子奖
  • 特殊贡献奖
  • 宣传大使奖
  • 诚信商户
沙发#
发布于:2012-09-21 17:54
      OD不会用啊

名称:IT171中文网 群号:259667665 论坛地址: http://www.it171.com
回复(0) 喜欢(0)     评分
游客

返回顶部