首页
社区
课程
招聘
Prefetch queue??
发表于: 2004-10-5 10:16 5118

Prefetch queue??

RoBa 活跃值
16
2004-10-5 10:16
5118
翻译一篇讲壳的文章,遇到了问题,他讲的ASPR里的反调试在我的系统里实现不了,下面是我写的的代码,我想应该没有问题

.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
include user32.inc
includelib kernel32.lib
includelib user32.lib

.data
	szOK db 'OK!',0

.code
start:
	add dword ptr [label1],100h ;SMC
	db 90h,90h,90h       ;这里只要插入几个NOP就可以运行了
label1:
	db 0ebh,00h          ;这里修改后跳转到MESSAGEBOX这句
	db 0ebh              ;花着玩儿的
	invoke MessageBox,NULL,addr szOK,addr szOK,MB_OK
	invoke ExitProcess,0
end start


如果不加那几个90,程序就非法操作,加上就可以运行。我看介绍好像是说与什么prefetch queue有关,好像是先把后面的指令放在CACHE里,所以不能改了……到网上只找到用PREFETCH QUEUE在386DX/SX上花指令的东东,哪位明白的讲给弟讲解一下,谢了!

BTW:我的系统是98,不知别的系统怎样。

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

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
2
沉了,顶上!
2004-10-5 18:41
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
3
再顶!!:D
2004-10-6 16:44
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
以前讨论过
http://bbs.pediy.com/showthread.php?s=&threadid=1337

你的代码我试了,2种情况都可以运行,但你必须将.code段属性设定为可读、可写、可执行
2004-10-6 18:58
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
5
反调试跟踪 东东
支持!
2004-10-6 19:06
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
6
最初由 小楼 发布
以前讨论过
http://bbs.pediy.com/showthread.php?s=&threadid=1337

你的代码我试了,2种情况都可以运行,但你必须将.code段属性设定为可读、可写、可执行


谢了,CODE段属性当然已经改了,不然无论如何都是不行的。等我在别的系统上试试,或者还与CPU有关?我的是Cyrix MII :D 应该和INTEL的一样吧。
2004-10-6 21:11
0
雪    币: 166
活跃值: (112)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
Prefetch queue肯定与cpu有关,不同厂商的cpu,甚至同一厂商生产的不同型号CPU也不一样

特别是现在的pIV,Prefetch queue根本用不了
2004-10-6 21:23
0
游客
登录 | 注册 方可回帖
返回
//