使用INT3进行HOOK处理
2013-03-21 17:25
78 查看
原理:设置异常捕获,然后将需要HOOK的代码直接修改成INT3即可
用的一个关键的API:SetUnhandledExceptionFilter
执行 SetUnhandledExceptionFilter(@MyInt3);
为了防止DELPHI自身捕获到异常,先要对其进行清除
用的一个关键的API:SetUnhandledExceptionFilter
//异常处理函数 function MyInt3(CONST P:EXCEPTION_POINTERS):Integer;cdecl; var add:Pointer; begin OutputDebugString(PChar(inttohex(P.ExceptionRecord.ExceptionCode,2))); Add:=p.ExceptionRecord.ExceptionAddress; OutputDebugString(PChar(Format('Address:%x ',[Cardinal(Add)]))); inc(p.ContextRecord.Eip); result:=-1; end;
执行 SetUnhandledExceptionFilter(@MyInt3);
为了防止DELPHI自身捕获到异常,先要对其进行清除
asm @Loop: mov eax,fs:[0] cmp dword ptr [eax],$FFFFFFFF je @SEHCleared mov eax,[eax] mov fs:[0],eax jmp @Loop @SEHCleared: end;
相关文章推荐
- 使用 GStreamer 进行多用途的多媒体处理
- SQL SERVER2000教程-第五章 处理数据 第二十一节 使用CASE语句、SUM函数、AVG函数进行综合数据统计
- 使用 ColorMatrix 对图片进行风格处理
- "现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作"的处理
- 使用AngularJS对路由进行安全性处理的方法
- 使用 getopt() 进行命令行处理
- android开发在jni中使用Opencv进行图像处理,环境搭建篇
- Hibernate 使用session 进行事务处理
- Scala中使用Future进行并发处理
- 使用JAVA如何对图片进行格式检查以及安全检查处理
- JAVA使用EPoll来进行NIO处理的方法
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- Filter过滤器-使用Filter进行中文问题处理
- java 使用URLDecoder和URLEncoder对中文进行处理
- Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理
- Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
- JAVA使用jxl.jar对excel表格进行操作处理
- 大数据采集、清洗、处理:使用MapReduce进行离线数据分析完整案例
- 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理
- 使用pandas对矢量化数据进行替换处理的方法