首页
社区
课程
招聘
win32汇编的assume ptr的问题请教
发表于: 2010-3-2 18:31 4457

win32汇编的assume ptr的问题请教

2010-3-2 18:31
4457
目的:想打开文件后读取其中某几个字节,然后跟预设的字节比较,如果不相同则认为不是同一个版本的文件;
从od里看到一个函数是把某个寄存器作为地址指针,比如说edi,用lodsb来读入字符到al,逐个比较al和[edi],不相同就提示错误版本,相同则继续进行,ECX用来装将要比较的字符个数;
现在的困难是:
1、假如预设特征字串定义为:
szOriCode db 35h,58h,68h,78h,0

把edi作为目标指针的声明assume ptr该怎么写?

2、使用lodsb的话,需要做哪些初始化才能用?DF不置位默认是什么方向?
谢谢啦

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
根本不用使用assume,也别使用lodsb指令。让 esi 指向特征串(lea  esi,szOriCode),edi 指向读取文件的缓冲区,然后用cmpsb指令进行比较。
另:DF=0 时,edi 和 esi 为递增。
2010-3-2 20:24
0
雪    币: 87
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嗯,我看了一下,的确很方便,这个串操作有关的这几个指令真好。
似乎都要初始化ecx
2010-3-3 09:41
0
游客
登录 | 注册 方可回帖
返回
//