在网上看到了个一个关于截获程序封包的源代码,自己测试了下,可以截获程序的封包,但是他提供的源代码没有封包处理方面的内容,
源代码如下:
function MyRecv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
begin
//这儿进行接收的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Recv函数
WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);
Result := OldRecv(S, Buf, len, flags);
JmpCode.Address := @MyRecv;
WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);
LeaveCriticalSection(PD);
end;现在我知道BUF就是封包的内容,我应该怎么对比这个封包啊,比如说我想看看封包里面有没有包含‘DELPHI’这几个字符,我应该怎么作请高手们不要考虑的那么复杂,不要从什么还要解密封包啊之类的说起,就直接对比buf,应该怎么作,希望高手帮个忙含有一个问题就是len书上说是封包的长度啊,怎么我获取的长度在200000以上,可能吗?
源代码如下:
function MyRecv(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
begin
//这儿进行接收的数据处理
MessageBeep(1000); //简单的响一声
//调用直正的Recv函数
WriteProcessMemory(ProcessHandle, AddRecv, @OldProc[1], 8, dwSize);
Result := OldRecv(S, Buf, len, flags);
JmpCode.Address := @MyRecv;
WriteProcessMemory(ProcessHandle, AddRecv, @JmpCode, 8, dwSize);
LeaveCriticalSection(PD);
end;现在我知道BUF就是封包的内容,我应该怎么对比这个封包啊,比如说我想看看封包里面有没有包含‘DELPHI’这几个字符,我应该怎么作请高手们不要考虑的那么复杂,不要从什么还要解密封包啊之类的说起,就直接对比buf,应该怎么作,希望高手帮个忙含有一个问题就是len书上说是封包的长度啊,怎么我获取的长度在200000以上,可能吗?
解决方案 »
- Delphi2009升级到indy10后使用的问题
- FastReport3问题,急。。。。。。。。。 在线等!
- 有人知道delphi的qq群
- Except: 如何得到方法调用的入口地址?
- 引诱!引诱!!引诱!!!
- 怎样把jpg、gif图片存入数据库?
- 如何修改DBChart1的Serieslist的Series的Data Source的Bar值使统计图动态生成?
- 老问题,D6+ADO+SQL SERVER2000,客户端程序发布时需要那些库文件,注册表应如何写?
- D6的SP1有问题,到底出了SP2没有? 知道的吱个声。。。
- 怎么得到SQL语句的执行时间???
- 要自动打印出很多报表的页码目录,大家有些什么方法?
- 判断错误
要分析的话,必须要反汇编原来的程序,许多外挂都是利用这个原理做成的