能力值:
( LV2,RANK:10 )
|
-
-
2 楼
通用性如何?支持X64么?
|
能力值:
( LV7,RANK:110 )
|
-
-
3 楼
喜欢这个。。。直接用上试试
|
能力值:
( LV8,RANK:120 )
|
-
-
4 楼
肯定不支持64位
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
i下载收一份
|
能力值:
( LV8,RANK:140 )
|
-
-
6 楼
不支持x64,指针长度不一样 shellcode没办法写,有需要我改个x64的
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
留个脚印,收藏一个。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
需要支持x64的
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
谢谢分享!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
留下脚印。谢谢分享
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
多线程环境下 不把所有线程暂停hook的话会有概率崩溃
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
对
真正稳定的代码是更复杂的
我后来才理解detours为啥那么多代码
|
能力值:
( LV3,RANK:30 )
|
-
-
13 楼
恕小生愚昧,LPVOID _declspec(naked) WINAPI TestFun(LPVOID UnKnow1, LPVOID UnKnow2)这个函数是两个参数的, 而ExitProcess是一个参数的,这样InlineHook 栈会平衡吗?
|
能力值:
( LV8,RANK:140 )
|
-
-
14 楼
我当初是简单测试过的,而且这个也不是很完美,比如没有写一个取指令长度的引擎。
不过在裸函数中,也就随意了。
可以使用任意引擎改进下代码,比如我的。
标 题: 【原创】国庆时完工的反汇编引擎源码
作 者: BinGzL
时 间: 2015-11-26,10:22:12
链 接: http://bbs.pediy.com/showthread.php?t=206071
或者可以使用下面这个我朋友封装好的
通用hook代码模板
http://www.jmpoep.com/thread-34-1-1.html
|
能力值:
( LV7,RANK:110 )
|
-
-
15 楼
楼主,我直接指出你的错误吧!第一,这个不支持X64位,从你的回答中也看到你知道这个问题了。
第二有一个问题,就是,这个HOOK没有注意多线程安全,HOOK是要强调多线程安全的,你的HOOK函数在执行时,你没有保证HOOK不会被别的线程打断,在单线程程序,也就是只有一个主线程的程序里,你的HOOK函数在执行时是可以保证不会被打断的,因为,只有一个主线程,没有别的线程打断你的HOOK了,但是,如果是在一个多线程程序中,并且是频繁调用被HOOK的函数的程序中,问题就出来了,首先,你的HOOK函数,并没有暂停别的线程,这样就有可能导致,别的线程在执行原来的指令时,有几率会被你写入的新的指令覆盖,这会导致不可预估的错误!
不注意多线程安全,是大多数HOOK的通病啊!毕竟,我们在写程序的时候,一直是在单线程中的main函数中编写的,可是要是到了,多线程环境,或者是内核的APC回调函数中,那可就惨了,因为你不知道这些不属于main函数调用的东西是什么时候去调用你正在HOOK的函数,要是在这些函数被别的线程或者内核回调APC中调用你正在HOOK的函数的话,你惨了,HOOK这时候还没完成,指令早就不知道被你写飞到哪里去了!
|
能力值:
( LV8,RANK:140 )
|
-
-
16 楼
感谢指出,我写hook还真是没注意过这个问题,也没有触发过。tks
|
能力值:
( LV7,RANK:110 )
|
-
-
17 楼
你编程的时候,或者说,你自己开发的时候是在main函数下的,一般情况下这个函数是单线程的,就不会遇到我说的打断hook的问题,但是一旦在别的机器上运行或者是用别的库函数,或者是需要多线程处理的函数,还有内核回调函数的情况下,就有一定的几率遇到这个问题!这个几率是很低的,所以你很可能不会遇到过,但是代表你不会遇到!只是遇到的几率很低而已!
|
|
|