[旧文存档]Introduction to Remote Run Library

也是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( DWORD processId, LPCWSTR lpszAppPath, LPCWSTR
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值