vb内存映射文件的使用 我用vb内存映射文件类建立了内存映射文件,并知道了首地址。也就是说文件已经在内存中了。如何运行这个文件呢?---这个文件类型是不确定的,有可能是exe,有可能是txt或doc或jpg...,我想在程序用shell方式调用这个内存中的文件,该如何操作? 请教高手了!如果有答案请发[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 意向天开~~除非自己在ring0层拦截PE的加载过程,这个过程非常复杂相当于自己实现PE Load再简单的方法就是自己写个EXE解析相关的文件格式 虽然PE文件是以内存影射的方式读入并执行的,但以前我说过,系统在调入PE时,要做几次重定位,同时,该地址是属于独立的2G地址(另外2G由系统使用了,这就可我们常说的32位内存地址空间)。举例说吧,假如现在PE文件中有一个静态变量(或函数入口)地址为0x000ff000,调入内存时不需要重定位,但在自己的进程中读入时,由于进程已占用了一些地址,内存影射根本无法保证这个变量或函数地址仍然为0x000ff000,那么在CALL或JMP或LEA或MOV等操作时,显然会出现地址错误。就算你使用虚拟内存强制指定了正确的地址,但由于你的进程有完全不同的栈顶,直接CAL或JMP时,根本就转不到0x000ff000这个地址,就算碰巧可以正确寻址,也由于无法正确平栈而导致栈溢出。尤其某些资源需要重定位时,更增加了地址确定的难度。所以,直接使用同存影射方式在自己的空间里执行另一个PE,是一项根本实现不了的任务。如果真的需要,只能使用远程线程注入的方式调入另一个PE到自己进程的空间执行。或者,如果你懂得反编译,可以使用虚拟内存调入PE后,自己重定位所有需要重定位的地址,同时实现栈平衡就可以了。不过,这些都应该不是VB编程者所关心或需要掌握的内容。 可以自己写个壳,加到exe上。PELoder加载壳部分,壳控制你的EXE。 原先没看清楚LZ的问题,原来是想SHELL内存中的文件,这好办,下载一个虚拟磁盘软件就可以了。 listview如何用代码定位到某一行,并且让那一行显示出来呢?(比如让第80行成为当前行,并显示在界面上,即滚动条下移) 找合伙人 本人精通 vb asp sql 关于vb打包问题?(多谢了) 寻找强人,帮改一下程序!!很简单的 怎么判断一个文件是不是文本文件 哪有外观比较漂亮的日期输入控件 (在线等待...) vb窗体问题? VB中调Excel 我刚装上了activebar2,但是如何使用非英文文字呀? 到底哪个东西没有装啊? 如何对动态的图象进行局部放大或缩小? 强制关闭气泡后,想再次显示气泡则不能正常显示,寻求高手指点。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货