首页
社区
课程
招聘
[译]The other ways to detect OllyDbg 检测OllyDbg的另类方法
发表于: 2004-8-17 15:16 22496

[译]The other ways to detect OllyDbg 检测OllyDbg的另类方法

RoBa 活跃值
16
2004-8-17 15:16
22496
收藏
免费 7
支持
分享
最新回复 (28)
雪    币: 97697
活跃值: (200819)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
26
最初由 blowjob 发布
RoBa老大,原文在哪里啊?


我的博客主页
2005-1-17 23:00
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
一个字:好!:)
2005-1-19 10:30
0
雪    币: 261
活跃值: (162)
能力值: ( LV13,RANK:320 )
在线值:
发帖
回帖
粉丝
28
第二种再加一个explorer路径检测就可以难对付一些,用delphi描述如下:
procedure CheckParentProc;
  var //检查自己的进程的父进程
  Pn: TProcesseNtry32;
  sHandle:THandle;
  H,ExplProc,ParentProc:Hwnd;
  Found:Boolean;
  Buffer:array[0..1023]of Char;
   Path:string;
  begin
  H:= 0;
  ExplProc:= 0;
  ParentProc:= 0;
  //得到Windows的目录
  SetString(Path,Buffer)
  GetWindowsDirectory(Buffer,Sizeof(Buffer)- 1));
  Path:= UpperCase(Path)+ '\EXPLORER.EXE';//得到Explorer的路径
  //得到所有进程的列表快照
  sHandle:= CreateToolHelp32Snap Shot(TH32CS_SNAPALL,0);
  Found:= Process32First(sHandle,Pn);//查找进程
  while Found do //遍历所有进程
  begin
  if Pn.szExeFile = ParamStr(0)then //自己的进程
  begin
  ParentProc:= Pn.th32ParentProcessID://得到父进程的进程ID
  //父进程的句柄
  H:= OpenProcess(PRO CESS_ALL_ACCESS,True,Pn.th32Parent ProcessID);
  end
  else if UpperCase(Pn.szExeFile)= Path then
  ExplProc:= Pn.th32ProcessID;//Explorer的PID
  Found:= Process32Next(sHandle,Pn);//查找下一个
  end;
  //父进程不是Explorer,是调试器……
  if ParentProc <> ExplProc then
  begin
  TerminateProcess(H,0);//杀之!除之而后快也!
   end?
  end?
2005-3-14 10:17
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
29
辛苦了!
2005-3-19 16:31
0
游客
登录 | 注册 方可回帖
返回
//