如何检测程序的主跳转是否已被修改?想写这样的函数来检测,ASM不懂,也不知道如何下手,希望各位补充一下function ReadJnz(var BaseAddr: Pointer): Boolean;
begin
asm
end;
end; //var BaseAddr: Pointer 为主跳转地址(我不知道思路是否正确 :()
begin
asm
end;
end; //var BaseAddr: Pointer 为主跳转地址(我不知道思路是否正确 :()
解决方案 »
- 有关在dll中调用继承过来的表单出现的问题
- 我怎么找不到 Data Module 控件啊
- DBGRIDEH超难问题,给100分.
- 有关编辑的问题,请高手指点??
- 请问哪里有Delphi COM 深度探索一书下呀
- ado 与sql server 触发器的问题
- 公用单元的运用问题
- 怎样在数据库中添加一条纪录
- 求用delphi在Dll封装多个窗体的方法或源码
- DELPHI的简单简单小问题,答对必奖!!!
- TOleContainer嵌入word文档后,另外在windows"开始菜单"中打开一个word文档后,TOleContainer嵌入的word文档中的右键菜单和工具栏都不能
- 便用cxGrid大家有没有遇到这样的问题,在编辑状态下不能在光标处直接输入?
怎么 这样的问题都发到非技术了+++++++++++++++++++++++++++
好像现在都比较兴非技术区....
写得不好,勉强能用
function GetEIP: Integer;
asm
mov eax, [esp];
sub eax, 5; //call GetEIP占用5字节
end;procedure CheckTrailDayCount(StartDate: TDateTime; DayCount: Integer);
//uses DateUtils
var
EIPValue: Integer;
begin
EIPValue := GetEIP;
EIPValue := EIPValue + DaysBetween(Now, StartDate) div DayCount;
asm
add EIPValue, $51 //end line - GetEIP line
mov eax, offset @JmpPos; //Check Key Code
mov eax, [eax];
and eax, $00FFFFFF;
sub eax, $00FC65FF; //If not changed eax will be 0
jz @JmpPos;
mov eax, EIPValue
sub eax, 3
and [eax], $FF000000 //Write back FF65FC
or [eax], $00FC65FF
@JmpPos:
jmp EIPValue; //FF65FC
end;
end;
检查基址还不如给自己做CheckSum,不过一句话说回来,都没用,防君子不防小人。
老之貌似用灌水机liangqingzhi(老之) ( ) 信誉:105 2006-06-13 18:45:00 得分: 0
DS开发的应该不是灌水机吧CoolSlob(CSDN论坛浏览器:http://CoolSlob.ys168.com/) ( ) 信誉:100 2006-06-13 20:23:00 得分: 0
不是,你怎么不用用看-_-!---------
CoolSlob同学,要学会联系上下文。说明小之同学正在用你的那个破玩意儿。
赶快睡觉,赶快睡觉啊。
to cuteant:
你身为2星,叫我“同学”,太说不过去了吧-_-#CSDN论坛浏览器:http://CoolSlob.ys168.com/