使用 GetStartupInfo 检查自己是否被调试(转自看雪论坛)
原文地址:http://bbs.pediy.com/showthread.php?t=31447
在使用?CreateProcess?創建進程時,需要傳遞?
STARTUPINFO?的結構的指針,
而常常我們并不會一個一個設置其結構的值,
連把其他不用的值清0都會忽略,
而?ollydbg?也這樣做了,
我們可以使用?GetStartupInfo?檢查啟動信息,
如果很多值為"不可理解"的,那么就說明自己不是由?explorer?來創建的.(explorer.exe?使用?shell32?中?ShellExecute?的來運行程序,?ShellExecute?會清不用的值)
還有一點?ollydbg?會向?STARTUPINFO?中的???dwFlags?設置?STARTF_FORCEOFFFEEDBACK,而?explorer?不會
?
自己在VC里實驗了一下,果然能用
于是忽然想到,把它放在DllMain里,如果檢測到有調試信息就return FALSE,使得程序不能正常初始化。實驗了一下,果然好使,代碼就不往上貼了,復制一下就是。
想在匯編下實現同樣的功能,但是出了點問題,水平太次了,這么簡單的功能,調了一下午也沒調出來
最后發郵件詢問大神,大神直接問,如果對方附加,你怎么辦?
頓時心里涼了一截……
就是啊,人家等你啟動后用OD附加,那就真的沒辦法了。唉,不灰心,權當玩了吧,至少也是一個思路不是~
?
另外,匯編寫的程序真不知道怎么調試。放IDA里一點毛病也沒發現,放OD里結果是出現了不能處理的異常……
難道只能一遍一遍看源碼么!!!
轉載于:https://www.cnblogs.com/02xiaoma/archive/2012/07/13/2590227.html
總結
以上是生活随笔為你收集整理的使用 GetStartupInfo 检查自己是否被调试(转自看雪论坛)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据挖掘从业人员的愿景
- 下一篇: 提前实现盈利的快手还有多少成长空间?