-
-
Prefetch queue??
-
发表于:
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直播授课