Chinaunix首页 | 论坛 | 博客
  • 博客访问: 498785
  • 博文数量: 223
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2145
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-01 10:23
个人简介

该坚持的时候坚持,该妥协的时候妥协,该放弃的时候放弃

文章分类

全部博文(223)

文章存档

2017年(56)

2016年(118)

2015年(3)

2014年(46)

我的朋友

分类: WINDOWS

2014-10-15 17:44:57


点击(此处)折叠或打开

  1. ; Exported entry 2253. ?DoDialog@WSaveFileDialogBase@@UAEFPBVIDFile@@PAV2@PAJFFPBVPMString@@@Z


  2. ; Attributes: bp-based frame

  3. ; public: virtual short __thiscall WSaveFileDialogBase::DoDialog(class IDFile const *, class IDFile *, long *, short, short, class PMString const *)
  4. public ?DoDialog@WSaveFileDialogBase@@UAEFPBVIDFile@@PAV2@PAJFFPBVPMString@@@Z
  5. ?DoDialog@WSaveFileDialogBase@@UAEFPBVIDFile@@PAV2@PAJFFPBVPMString@@@Z proc near

  6. var_460= word ptr -460h
  7. var_258= byte ptr -258h
  8. var_220= byte ptr -220h
  9. var_1E8= byte ptr -1E8h
  10. var_1B0= byte ptr -1B0h
  11. var_16C= byte ptr -16Ch
  12. var_160= byte ptr -160h
  13. var_128= byte ptr -128h
  14. var_F0= byte ptr -0F0h
  15. var_B8= byte ptr -0B8h
  16. var_80= byte ptr -80h
  17. var_70= tagOFNW ptr -70h
  18. var_24= dword ptr -24h
  19. var_20= dword ptr -20h
  20. var_1C= dword ptr -1Ch
  21. var_18= dword ptr -18h
  22. var_14= dword ptr -14h
  23. var_10= dword ptr -10h
  24. var_C= dword ptr -0Ch
  25. var_4= dword ptr -4
  26. arg_0= dword ptr 8
  27. arg_4= dword ptr 0Ch
  28. arg_8= dword ptr 10h
  29. arg_C= dword ptr 14h
  30. arg_10= dword ptr 18h
  31. arg_14= dword ptr 1Ch

  32. push ebp             ;把ebp压入栈
  33. mov ebp, esp         ;栈地址赋给ebp
  34. push 0FFFFFFFFh        ;压入0FFFFFFFFh
  35. push offset ?DoDialog@WSaveFileDialogBase@@UAEFPBVIDFile@@PAV2@PAJFFPBVPMString@@@Z_SEH    ;压入函数吧
  36. mov eax, large fs:0         ;FS:0指向线程环境块TEB
  37. push eax                     ;压入栈
  38. mov large fs:0, esp            ;这3句可能是异常处理,large是ida自己加的
  39. sub esp, 454h                ;在堆栈中留出局部变量的空间
  40. push ebx     
  41. push esi
  42. mov esi, ecx
  43. xor ebx, ebx                ;清零
  44. push edi
  45. lea ecx, [ebp+var_1B0]        ;ecx=ebp+var_1B0
  46. mov [ebp+var_14], ebx            ;ebx不是0了么
  47. call ds:??0IDFile@@QAE@XZ ; IDFile::IDFile(void)  ;感觉是个声明,找不到具体的定义
  48. mov edi, [ebp+arg_0]                ;参数0赋值
  49. mov [ebp+var_4], ebx                ;这里又清零了?
  50. cmp edi, ebx                        ;比较edi和ebx,edi是参数0,ebx是0。
  51. jz short loc_100786FB              ;如果edi比较后ZF置1,则跳转到loc_100786FB

var_460= word ptr -460h开始是相对于指针EBP偏移距离为负,代表着是一些局部变量。
偏移距离为正的代表着用到的形参。
call  ds:IDFile
这条指令不是很清楚


阅读(1010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~