[旧文存档]Introduction to Remote Run Library

Remote Run Library是一个提供远程代码执行环境的工具,允许在不同进程间运行代码或exe,支持隐式API调用、字符串常量、全局变量等。文章介绍了其原理、限制、API使用、编译步骤和技术细节,适用于Windows NT/2000的32位PE格式exe,不适用于带.tls section的exe。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

也是2001年在vchelp发表的一篇相关文章。原文在这里。代码可以在vchelp下,不过比较旧。也可以直接向我要。做做这个library的原因是当时正热衷于玩代码远程注入。远程注入的代码编写的时候有很多限制,比如说必须关掉/GZ编译选项,不能使用全局/静态变量,远程运行的代码由于没有调试符号只能做汇编级调试,等等。因此做了这么一个可以把整个EXE模块远程注入到其他进程的东西。

再次提醒,不要再给文章最后的email地址写信。

更新:Remote Run Library的最新代码可以在这里下载

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

一:简介:

Remote Run Library是一个为部分代码提供完整的远程(这里的远程指不同于本进程的其他进程空间)运行环境(包括在代码中使用隐式API调用、字符串常量、全局 /静态变量、异常保护)的工具。它允许你在任意进程(只要你有足够的权限)运行一段代码甚至一个exe,从而可以让两个或多个可执行文件在同一个进程空间运行。

二:使用Remote Run Library的限制:

1) Remote Run Library只能工作于windows NT/2000 for intel 386 series

2) 目标exe必须是32位pe格式的exe

3) 目标exe必须支持重定位(即存在.reloc section)。对于Visual C++ complier,debug版本exe都有;release版本默认设置会剥离.reloc section,但你可以通过

4) 目标exe不能存在.tls section。这意味着你不能在程序中使用_declspec(thread) int i = 0;这样的东东

三:Remote Run Library导出的API:

    BOOL WINAPI RemoteRunA( DWORD processId, LPCSTR lpszAppPath, LPCSTR lpszCmdLine, int nCmdShow );
BOOL WINAPI RemoteRunW( DWORD processId, LPCWSTR lpszAppPath, LPCWSTR lpszCmdLine, int nCmdShow );
BOOL WINAPI RemoteCall( DWORD processId, PVOID pfnAddr, PVOID pParam, DWORD cbParamSize, BOOL fSyncronize );
BOOL WINAPI RemoteRunExA( DWORD processId, LPCSTR lpszAppPath, LPCSTR lpszCmdLine, int nCmdShow, DWORD dwFlags );
BOOL WINAPI RemoteRunExW(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值