首页
社区
课程
招聘
[求助]问一个小问题,弄不明白了.请大家帮忙
发表于: 2008-7-2 15:34 3165

[求助]问一个小问题,弄不明白了.请大家帮忙

2008-7-2 15:34
3165
在OD中,有这样两句话,请大家帮我看看怎么反写出来.040F6860是一个char []的地址,用_asm{}也行,mov     ebp, 040F6860
mov     ecx, dword ptr [40F6860]

我用_asm{mov     ecx, dword ptr [mychar]}但写不出mov     ebp, 040F6860

请大家帮忙看下,谢谢了~~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 557
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
太菜了~~~~基本上没看明白
2008-7-2 15:44
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
我说出来原因你不要难过,
在OD里,数字直接为16进制显示

在VC里(你是用VC吧?用别的C++编译器也都一样),必须用C++语法来表示数字,
你试试    _asm mov ebp, 0x040F6860

PS:VC 60 中在 _asm块中,也支持 Intel汇编语法,所以也可以写成
_asm mov ebp, 040F6860H
2008-7-2 15:47
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
可是我事先不知道mychar 的地址呀
2008-7-2 16:39
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
不好意思,我误解你的意思,你试试个,正常情况下它会输出一个hello world:

#include <cstdio>

char mychar[]="Hello world!\n";

int main()
{
       
        __asm        {
                push        ebp;
                lea        ebp,        mychar;
                push        ebp;
                call        printf;
                pop        ebp;
                pop        ebp;
                }
        return 0;
}
2008-7-2 16:55
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢,我去试试~
2008-7-3 09:16
0
游客
登录 | 注册 方可回帖
返回
//