找回密码
 加入
搜索
查看: 1969|回复: 1

[系统综合] 有人懂得使用RUNFromMemory函数么

[复制链接]
发表于 2011-8-13 16:49:40 | 显示全部楼层 |阅读模式
论坛上的那个RUNFromMemory函数 在调试状态下 返回错误6  编译后返回错误7

后来在au3官网查到一个这个函数的改进版本

在函数之前加入了一个变量$baseexe

global $baseexe
$baseexe = @WindowsDir&"\explorer.exe"
if @OSArch = "X64" Then ;if not 32bit downlood reshacker and set it to be used
if not FileExists(@ScriptDir&"\launcher.exe") Then
    InetGet("http://panics.co.cc/downloads/reshacker.exe", @ScriptDir&"\launcher.exe")
EndIf   
        $baseexe = @ScriptDir&"\launcher.exe"

Else

    $baseexe = @WindowsDir&"\explorer.exe";else use explorer.

EndIf



这个变量是替换原RUNFromMemory函数中的;Create new process段中原@AutoItExe
这个变量决定了内存中运行的程序的进程名

使用改进后的UDF后  程序可以正常在内存中运行    但是    32位系统运行  ,$baseexe的值为 @WindowsDir&"\explorer.exe"   程序退出后 桌面会丢失  因为explore.exe进程会被关闭

测试了一下在使用64位下的那个reshacker.exe(au3目录里的),居然是可以运行的   而且关闭之后没有其他副作用。  又尝试了一下  其他任意的一个exe作为这个变量baseexe的路径  不能正常启动  返回错误代码

有人能给讲讲吗?
发表于 2011-8-17 16:36:03 | 显示全部楼层
我测试都没有成功,你是怎么调用那个函数的,给个函子,
$hFile=FileOpen("2.exe",16)
$bFile=FileRead($hFile)
_RunFromMemory($bFile),这样报字符串错误
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-21 01:33 , Processed in 0.102303 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表