首页
社区
课程
招聘
[求助]请教这段反汇编代码
发表于: 2007-10-23 12:11 6772

[求助]请教这段反汇编代码

2007-10-23 12:11
6772
IDA反汇后,生成如下的代码,我想改成masm32格式的代码

; BOOL __stdcall DialogFunc(HWND,UINT,WPARAM,LPARAM)
DialogFunc        proc near        ; DATA XREF: sub_401020+6 o

Rect        = tagRECT ptr - 20h
var_10        = dword        ptr   - 10h
var_C        = dword        ptr   - 0Ch
var_8        = dword        ptr   - 8
var_4        = dword        ptr   - 4
hDlg        = dword        ptr   4
arg_4        = dword        ptr   8
arg_8        = dword        ptr   0Ch

        mov  eax, [esp+arg_4]
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(1)     eax是不是函数传入的参数WPARAM,
(2)     DialogFunc似乎只用了3个形参      
(3)     如果函数少用了一个参数的话,哪一个
        参数没有用到

        sub  esp, 20h
        sub  eax, 10h
        push esi
        jz   loc_401151
        sub  eax,  100h
        jz   short loc_4010B9
        dec  eax
        jz   short loc_401064

        xor  eax, eax
        pop  esi
        add  esp, 20h
        retn 10h

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1.
mov  eax, [esp+arg_4] 是message
从后面可以看出, 只处理了三种消息, 10(WM_CLOSE) 110(WM_INITDIALOG) 111(WM_COMMAND)

2.
是只用了三种

3. LPARAM没用到

觉得回答的好帮我加V
2007-10-23 13:47
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
回答的好
加V了有啥用?
2007-10-23 13:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
今年年底V最多的前10名有书送
2007-10-23 14:12
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
5
我举报!!!有人拉票
2007-10-23 14:17
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
举报的好 举报的好
2007-10-23 14:46
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我没有找到你的征文,我帮你增加了你的声望。
你的V是不是指的那个

[QUOTE=天线宝宝;373922]1.
mov  eax, [esp+arg_4] 是message
从后面可以看出, 只处理了三种消息, 10(WM_CLOSE) 110(WM_INITDIALOG) 111(WM_COMMAND)

2.
是只用了三种

3. LPARAM没用到

觉得回答的好帮我加V[/QUOTE]
2007-10-23 15:04
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
8
拉了3票。。。太牛了
2007-10-23 15:15
0
雪    币: 299
活跃值: (25)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
9
怪异的子程序。
啥子编译器整出来的??
2007-10-23 15:24
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
怪异么?不觉得呀
LZ只是截取了部分吧
2007-10-23 15:36
0
雪    币: 299
活跃值: (25)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
11
使用了sub  esp, 20h来开辟局部变量空间,末尾add  esp, 20h来恢复esp值,很少见。
mov  eax, [esp+arg_4]用esp来做局部变量和传入参数的指针也很少见,esp值会不停的变,当然它只在最前面用过一次,但我不知道局部变量它是怎么用的。
像是手工写的子程序。
2007-10-23 15:45
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
[QUOTE=zjjmjtoot;373950]使用了sub  esp, 20h来开辟局部变量空间,末尾add  esp, 20h来恢复esp值,很少见。
mov  eax, [esp+arg_4]用esp来做局部变量和传入参数的指针也很少见,esp值会不停的变,当然它只在最前面用过一次,但我不知道局部变量它是怎么用的。
像是手工写的子程序。[/QUOTE]

C的程序太多这样的了
2007-10-23 15:48
0
雪    币: 299
活跃值: (25)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
13
嘿嘿,确实有不少
lea     ecx, [esp+424h+NewFileName]
push    ecx             ; lpNewFileName
lea     edx, [esp+428h+ExistingFileName]
俺不习惯而已。
2007-10-23 16:02
0
雪    币: 252
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
C++也有这样
2007-11-9 18:13
0
游客
登录 | 注册 方可回帖
返回
//