python dll注入监听_注入方式,劫持dll注入的实现

基础的东西不想多讲,简单的提一句,具体请问度娘。

Windows的PE加载器会从执行文件目录下寻找DLL,如果找不到再去其他地方找。

把我们特定的DLL伪装成系统DLL,然后放在执行文件目录下,就能实现DLL劫持。

劫持来干嘛?

 肯定是要在被干程序体内有一席之地,然后想干什么就干什么。比如劫持ws2_32.dll可以实现抓包,改包,转向等。

如何伪造?

当然是伪造导出表啦,导出表是一个DLL最总要的部分。

LPK.dll。

#pragma comment(linker, "/EXPORT:LpkInitialize=_gamehacker_LpkInitialize,@1")

#pragma comment(linker, "/EXPORT:LpkTabbedTextOut=_gamehacker_LpkTabbedTextOut,@2")

#pragma comment(linker, "/EXPORT:LpkDllInitialize=_gamehacker_LpkDllInitialize,@3")

#pragma comment(linker, "/EXPORT:LpkDrawTextEx=_gamehacker_LpkDrawTextEx,@4")

#pragma comment(linker, "/EXPORT:LpkExtTextOut=_gamehacker_LpkExtTextOut,@6")

#pragma comment(linker, "/EXPORT:LpkGetCharacterPlacement=_gamehacker_LpkGetCharacterPlacement,@7")

#pragma comment(linker, "/EXPORT:LpkGetTextExtentExPoint=_gamehacker_LpkGetTextExtentExPoint,@8")

#pragma comment(linker, "/EXPORT:LpkPSMTextOut=_gamehacker_LpkPSMTextOut,@9")

#pragma comment(linker, "/EXPORT:LpkUseGDIWidthCache=_gamehacker_LpkUseGDIWidthCache,@10")

#pragma comment(linker, "/EXPORT:ftsWordBreak=_gamehacker_ftsWordBreak,@11")

复制代码

是的,纯手写伪造很麻烦,一会儿还得写转发代码~~~。 如果某DLL的导出函数比较多,那真是一个累人的活儿。

在这里我介绍一款比较好用的自动生成工具:

aheadlib

功能:根据输入DLL的导出表生成劫持源码。

把生成的源码载入vc编译器是可以正常编译的。

选项很简单,自己摸索,一般默认即可。

在生成的代码中,你能找到:

AheadLib_ + 原始DLL导出函数名 ()

这样的函数

比如:

ALCDECL AheadLib_gethostbyname(void)

{

GetAddress("gethostbyname");

__asm JMP EAX;

}

你可以在这个函数中添加你自己的响应代码。 拦截就直接retn +参数长度。孩子,知道抓包工具该怎么写了吧?

下面介绍一个好玩的拦截例子。可以注入到大部分的企鹅网络游戏客户端。

在system32目录下有一个 rasadhlp.dll。

企鹅游戏在启动的时候会加载rasadhlp.dll,而且还是在保护机制开启之前。

所以劫持rasadhlp.dll就能过保护轻松注入腾讯游戏。【今天的LOL至少还能注入 2015.7.12】

使用工具,生成一份rasadhlp.dll的劫持代码。

然后在DllMain中添加一些代码。

 

添加的代码:

注意Load() 函数时工具生成的。这个函数用来加载原始DLL。

HMODULE hLoad;char *v;

hLoad=LoadLibrary("zr.dll");if (hLoad==NULL)

{

MessageBoxA(NULL,"无法载入 zr.dll",NULL,MB_OK);gotoloading;

}

v=(char *)GetProcAddress(hModule,"TxEntry");if(!v)

{

MessageBoxA(NULL,"无法找到 TXEntry 函数",NULL,MB_OK);gotoloading;

}

CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)v,0,0,NULL);

loading:return Load();

这段代码的目的是加载zr.dll然后调用TxEntry函数。

注入进去后就可以随心所欲的干一些不和谐的事情。 比如搜索内存/修改内存。

到了现在,就可以去易语言论坛找一些最新的 无限视距DLL 注入进去试试啦。

 

当按下确认按钮后 TP保护才开始加载。

相关工具已经打包。

Python中进行DLL注入的方法有多种。一种常见的方法是使用ctypes库来实现。ctypes库提供了一种与C语言兼容的数据类型和函数调用方式,可以方便地与动态链接库进行交互。通过ctypes库,我们可以加载DLL文件并调用其中的函数。 在DLL注入过程中,可以使用以下步骤来进行操作: 1. 使用ctypes库加载所需的DLL文件。可以使用`ctypes.WinDLL`来加载Windows平台上的DLL文件。 2. 根据DLL文件中的函数原型,使用`ctypes`库定义与之匹配的函数接口。可以使用`ctypes.WINFUNCTYPE`来定义函数接口。 3. 使用定义的函数接口,调用DLL文件中的函数。 示例代码如下: ``` import ctypes # 加载DLL文件 my_dll = ctypes.WinDLL("my_dll.dll") # 定义函数原型 my_function = my_dll.my_function my_function.restype = ctypes.c_void_p my_function.argtypes = [ctypes.c_int, ctypes.c_char_p] # 调用DLL函数 result = my_function(10, b"hello") ``` 在上述示例代码中,我们首先使用`ctypes.WinDLL`加载了名为`my_dll.dll`的DLL文件。然后,我们使用`ctypes.WINFUNCTYPE`定义了与DLL文件中的`my_function`函数匹配的函数接口。最后,我们调用了`my_function`函数,并传递了参数10和字符串"hello"。 需要注意的是,DLL注入是一种高级技术,需要谨慎处理。在进行DLL注入时,请确保你有合法的使用权,并遵守相关法律和规定。另外,DLL注入也可能存在一些风险和安全问题,因此在实际应用中请谨慎使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python3实现DLL注入问题解决](https://blog.csdn.net/wuhaibin12/article/details/115806207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [python语言编写的DLL注入工具](https://blog.csdn.net/storm_spirit/article/details/89765659)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值