vb内存映射文件的使用

TFZM_DB 2008-10-12 10:56:49
我用vb内存映射文件类建立了内存映射文件,并知道了首地址。也就是说文件已经在内存中了。如何运行这个文件呢?---这个文件类型是不确定的,有可能是exe,有可能是txt或doc或jpg...,我想在程序用shell方式调用这个内存中的文件,该如何操作?


请教高手了!如果有答案请发tfzm@yeah.net
...全文
785 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyserver 2008-10-13
  • 打赏
  • 举报
回复
原先没看清楚LZ的问题,原来是想SHELL内存中的文件,这好办,下载一个虚拟磁盘软件就可以了。
ewang11 2008-10-13
  • 打赏
  • 举报
回复
顶, 我也有同样的问题
alan001 2008-10-13
  • 打赏
  • 举报
回复
是不是想做单文件
chenhui530 2008-10-12
  • 打赏
  • 举报
回复
意向天开~~除非自己在ring0层拦截PE的加载过程,这个过程非常复杂相当于自己实现PE Load再简单的方法就是自己写个EXE解析相关的文件格式
ZengHD 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 TFZM_DB 的帖子:]
我想在程序用shell方式调用这个内存中的文件,该如何操作?
[/Quote]
这样也行?我还真没试过,楼下的回答
迈克揉索芙特 2008-10-12
  • 打赏
  • 举报
回复
可以自己写个壳,加到exe上。PELoder加载壳部分,壳控制你的EXE。
IORI915189 2008-10-12
  • 打赏
  • 举报
回复
说 异想天开 一点不为过 呵呵
SYSSZ 2008-10-12
  • 打赏
  • 举报
回复
学习学习,顺便顶一下贴
嗷嗷叫的老马 2008-10-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 TFZM_DB 的帖子:]
我用vb内存映射文件类建立了内存映射文件,并知道了首地址。也就是说文件已经在内存中了。如何运行这个文件呢?---这个文件类型是不确定的,有可能是exe,有可能是txt或doc或jpg...,我想在程序用shell方式调用这个内存中的文件,该如何操作?


请教高手了!如果有答案请发tfzm@yeah.net
[/Quote]

从哪里映射过来的?硬盘?那干嘛不直接运行.......?为了保密?
lyserver 2008-10-12
  • 打赏
  • 举报
回复
虽然PE文件是以内存影射的方式读入并执行的,但以前我说过,系统在调入PE时,要做几次重定位,同时,该地址是属于独立的2G地址(另外2G由系统使用了,这就可我们常说的32位内存地址空间)。举例说吧,假如现在PE文件中有一个静态变量(或函数入口)地址为0x000ff000,调入内存时不需要重定位,但在自己的进程中读入时,由于进程已占用了一些地址,内存影射根本无法保证这个变量或函数地址仍然为0x000ff000,那么在CALL或JMP或LEA或MOV等操作时,显然会出现地址错误。就算你使用虚拟内存强制指定了正确的地址,但由于你的进程有完全不同的栈顶,直接CAL或JMP时,根本就转不到0x000ff000这个地址,就算碰巧可以正确寻址,也由于无法正确平栈而导致栈溢出。尤其某些资源需要重定位时,更增加了地址确定的难度。所以,直接使用同存影射方式在自己的空间里执行另一个PE,是一项根本实现不了的任务。如果真的需要,只能使用远程线程注入的方式调入另一个PE到自己进程的空间执行。或者,如果你懂得反编译,可以使用虚拟内存调入PE后,自己重定位所有需要重定位的地址,同时实现栈平衡就可以了。不过,这些都应该不是VB编程者所关心或需要掌握的内容。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧