当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: [译]The other ways to detect OllyDbg 检测OllyDbg的另类方法 这是linhanshi兄放在他的网站上的,我觉得不错就翻译了下,水平很烂,多多包涵!TheotherwaystodetectOllyDbg检测OllyDbg的另类方法Pumqara作/RoB...
 

 

 ·using的另一種用法    »显示摘要«
    摘要:mail: zsc771120@yahoo.com.cn先看下面的代碼: using( form_arg arg=new form_arg(this.ip,this.port,this.limit) ) { arg.left = this.left + 30; arg.top = this.top + 25; arg.showdialog(); arg.get(out this.ip, out t......
 ·c#下用p2p技术实现点对点聊天    »显示摘要«
    摘要:以前在使用vb来实现多线程的时候,发现有一定的难度。虽然也有这样那样的方法,但都不尽人意,但在c#中,要编写多线程应用程序却相当的简单。这篇文章将作简要的介绍,以起到抛砖引玉的作用! .net将关于多线程的功能定义在system.threading名字空间中。因此,要使用多线程,必须先声明引用此名字空间(using system.threading;)。 即使你没有编写多线程应用程序的经验,也可能......


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

这是linhanshi兄放在他的网站上的,我觉得不错就翻译了下,水平很烂,多多包涵!

【程序编程相关:HTML教程(8)-播放音乐

【推荐阅读:HTML教程(7)-插入图形

the other ways to detect ollydbg 检测ollydbg的另类方法 【扩展信息:HTML教程(9)-播放视频

pumqara作/roba[tt]译

前言

现在是2004年了,ring-3级调试器被越来越多地使用,因为它们有图形界面并且比ring-0级调试器(比如softice)更加方便.在这篇文章中我将讲述如何检测最好的ring-3调试器之一——ollydbg.许多人都听说过isdebugerpresent与fs:[20]检测手段,但是有没有其他的新方法呢?下面我向你介绍我自己的一些检测手段.我会给出详细的解释,因此你可以用你自己的想象力来完善它们.

方法一:findwindow

这个方法是基于findwindow函数.像所有的对话框一样,ollydbg的主对话框(窗口?)也有它的标题与类名.使用这个api函数我们可以判断ollydbg的主窗口是否打开.microsoft这样写道:

------------------------------------------------------------------------------------------------

findwindow函数能够获得窗口类名或标题为特定字符串的顶层窗口的句柄.该函数不搜索子窗口.

hwnd findwindow(

lpctstr lpclassname, //窗口类名的地址

lpctstr lpwindowname //窗口标题的地址

);

参数说明

lpclassname

指向一个以null结尾的表示窗口类名的字符串的指针,或者是一个标识窗口类名字符串的atom.如果该参数是一个atom,它必须是被函数globaladdatom预先建立的一个全局atom.这个16位的atom必须放在lpclassname的低8位,lpclassname的高8位必须为0.

lpwindowname

指向一个以null结尾的表示窗口名称(即标题)的字符串的指针.如果这个参数为null,所有的窗口都被认为是符合条件的.

返回值

如果搜索成功,返回找到的符合条件的窗口句柄.

如果搜索失败,返回值为null.要得到详细的错误信息可以调用getlasterror.

------------------------------------------------------------------------------------------------

我的程序片断:

代码: .data strollyclsname db "ollydbg",0 .code invoke findwindow, addr strollyclsname, null cmp eax, 00000000h jne olly_detected/

方法二:createtoolhelp32snapshot, process32first/next

这是一个有趣的方法.它基于四个api函数(createtoolhelp32snapshot, process32first, process32next, getcurrentprocessid)与一个结构( processentry32 ).先看看msdn怎么说:


...   下一页
 ·掌握 c#    »显示摘要«
    摘要:应该说,从 c/c++ 发展到 c#,进而到 microsoft .net framework,对于习惯使用 c/c++ 的程序员来说是一次小小的打击。换句话说,c# 编程将带来翻天覆地的变化,不仅要完成范例转换,还要完成程序模型的重建以及其他各种令人难以捉摸的词组转变。但是,随着新一年的到来,不正是学习新编程语言的好时机吗? 我现在实在是抽不出时间教您如何使用 c# 进行编程。至于您打算如何......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE