能力值:
( LV2,RANK:10 )
|
-
-
51 楼
为什么不能下载代码?
|
能力值:
( LV2,RANK:10 )
|
-
-
52 楼
这个方式只挂接地址在2GB内的DLL,如果是2G地址以上的DLL就无能为力了,希望楼主讲讲这些方面的。
|
能力值:
( LV2,RANK:10 )
|
-
-
53 楼
最初由 bookworm 发布 1。一般的方法使用CreateRemoteThread()在目标进程中创建一个thread,让该thread来LoadLibrary(你的DLL)。
到目前为止我在网上看到的该方法的实现代码都基本上雷同,一个共同的大前提是假定在你的process和目标process里,LoadLibrary(A/W)的entry point是一样的。因为LoadLibraryA/LoadLibraryW是kernel32.dll输出的,而该DLL一般而言在不同的进程的virtual memory space里是在同样的地方(不同的Windows版本倒是有可能不同),不太会被rebase。所以看看你自己的进程里LoadLibrary的起始地址,就可以假定目标进程的LoadLibrary也是同样的起始地址。
2。用GetProcAddress()可以得到API的起始地址。但kernel32.dll是可以被rebase的,如果你的进程或者目标进程里的该DLL ImageBase变了,你的代码插入程序不会有事情,创建的远程线程倒是会垮掉。 ........ 兄弟,你提供的微软的东西不错,感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
54 楼
最初由 bookworm 发布 1。一般的方法使用CreateRemoteThread()在目标进程中创建一个thread,让该thread来LoadLibrary(你的DLL)。
到目前为止我在网上看到的该方法的实现代码都基本上雷同,一个共同的大前提是假定在你的process和目标process里,LoadLibrary(A/W)的entry point是一样的。因为LoadLibraryA/LoadLibraryW是kernel32.dll输出的,而该DLL一般而言在不同的进程的virtual memory space里是在同样的地方(不同的Windows版本倒是有可能不同),不太会被rebase。所以看看你自己的进程里LoadLibrary的起始地址,就可以假定目标进程的LoadLibrary也是同样的起始地址。
2。用GetProcAddress()可以得到API的起始地址。但kernel32.dll是可以被rebase的,如果你的进程或者目标进程里的该DLL ImageBase变了,你的代码插入程序不会有事情,创建的远程线程倒是会垮掉。 ........
这位高手能不能详细讲讲怎么得到dll注入后的函数地址?我的dll注入explorer后调用系统的api全是错的。
谢谢。
|
能力值:
( LV2,RANK:10 )
|
-
-
55 楼
非常经典的文章,浅显易懂,比codeproject文章容易理解,感谢楼主,向楼主学习!
|
能力值:
( LV3,RANK:20 )
|
-
-
56 楼
顶啊........
|
能力值:
( LV2,RANK:10 )
|
-
-
57 楼
太多的好东西了!终于被我发现了。学习!学习
|
能力值:
( LV2,RANK:10 )
|
-
-
58 楼
非常感谢
绝对支持
每天回帖
|
能力值:
( LV2,RANK:10 )
|
-
-
59 楼
看到楼主的这篇文章及提供的源程序,真是感动,终于感觉到“学院”是名符其实的了。看完所有的回贴,感觉这里高手如云!49楼也是强中之强。很希望高手们都能写类似的文章:易懂,且最重要的是提供了源代码!因为看不懂的地方还可以再研究源代码!真是感谢!!!!
|
|
|