首页
社区
课程
招聘
写算法时候得一个疑惑 II
发表于: 2006-4-19 17:35 3535

写算法时候得一个疑惑 II

2006-4-19 17:35
3535
DWORD ebp_r
_asm
    {
        mov ebx,dword ptr ds:[bufone+0xC]
        mov esi,dword ptr ds:[bufone+0x8]
        mov ecx,dword ptr ds:[bufone]
        mov ebp_r,ebx//这里本来是ebp,但是ebp最好别改高人说得呵呵。
        .......
        // 问题来了,
        lea edx,dword ptr ds:[ecx+ebp+0x6EF478] //本来是这样得
        lea edx,dword ptr ds:[ecx+ebp_r+0x6EF478]//为了方便我程序改成这样但是运行得结果和上面得不一样,是不是 ecx+ebp_r+0x6EF478,把ebp_r得地址给运算了呢。需要怎么改才正确呢?
    }

测试了下
mov eax, ebp_r
lea edx,dword ptr ds:[ecx+eax+0x6EF478]
算下来是对得晕

要怎么改比较简单有效呢?


[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
upm
2
保证ebp使用前和使用后不变就可以用ebp,编译器的warning不用理会。
2006-4-19 18:03
0
雪    币: 5
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
晕真的么?
2006-4-19 20:08
0
雪    币: 5
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
终于完成了,2k多行晕死
改成这个样了

DWORD temp, ebp_r;

mov temp,eax
mov eax, ebp_r
lea edx,dword ptr ds:[ecx+eax+0x......]
mov eax,temp

我好笨没别的办法了,不知道那个高人给指点一下
2006-4-20 02:08
0
雪    币: 154
活跃值: (216)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
注册机不是这样子写法的.
2006-4-20 13:44
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 采臣・宁 发布
注册机不是这样子写法的.

你说该咋写?
2006-4-20 18:15
0
雪    币: 154
活跃值: (216)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
建议内连汇编语句不要太长,如果太长,不如用MASM直接编译.
最好吃透汇编代码,写成对应的C或者其它的高级语言,这样利于理解.
2006-4-20 20:38
0
雪    币: 234
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
最初由 采臣・宁 发布
建议内连汇编语句不要太长,如果太长,不如用MASM直接编译.
最好吃透汇编代码,写成对应的C或者其它的高级语言,这样利于理解.

有道理,不过有些算法内嵌汇编效率比高级语言高很多倍.短短的6,7行汇编,你高级语言写还需要转换好多次才可以运算.
2006-4-20 20:49
0
雪    币: 5
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
采臣・宁,是完全自己写出来,还是一句一句的翻译成高级语言呢
2006-4-20 23:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
upm
10
最初由 采臣・宁 发布
建议内连汇编语句不要太长,如果太长,不如用MASM直接编译.
最好吃透汇编代码,写成对应的C或者其它的高级语言,这样利于理解.


几千行代码,咋吃?你吃还是我吃还是分着吃?
2006-4-21 08:53
0
游客
登录 | 注册 方可回帖
返回
//