首页
社区
课程
招聘
[求助]如何加载MachineType不正确的可执行文件
发表于: 2014-1-8 08:31 4995

[求助]如何加载MachineType不正确的可执行文件

2014-1-8 08:31
4995
我现在准备写一个在Windows RT(ARM平台)上运行传统x86程序的小工具,为此我需要想办法加载一个正常情况下会被系统拒绝加载的程序.
目前尝试了PsSetCreateProcessNotifyRoutineEx和PsSetLoadImageNotifyRoutine,想在系统判断PE头部之前先临时改写Machine,但系统会先提示不正确的程序.请问还有什么别的办法么?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
指令集都不一样,修改了MachineType执行起来也是没用的。估计十个指令都跑不了
2014-1-8 09:03
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
废话,要是光修改MachineType就能跑我还写这个干啥.而且你也不用估计了,别说十个,一个指令都跑不了
我需要先将程序加载起来,然后注入ARM代码做JIT.但我先要能加载起来
2014-1-8 09:55
0
雪    币: 1933
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不懂 ,帮顶下吧
2014-1-8 10:02
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
注啥注,都要jit了,
为什么不自己写个arm程序去读取x86的pe然后解释执行。至于你说的什么运行起来就用你的jit去解释,用的着Ps监控么,把x86PE的后缀改成你自己定的名字,然后这个类型文件的打开方式改成你自己的那个jit程序,不就够了,与.java的执行方式有啥区别。。。。
2014-1-8 13:16
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那样一些使用NULL表达主程序HMODULE的API就需要重定向,资源文件相关的API也要做重定向,获取进程名称的函数也要修改,也无法使用CreateProcess直接启动,等等等等

而且你改名字加载DLL怎么办

你说这些问题能不能解决吧也的确基本都有办法解决,但最好还是让Windows自己管理这些东西,我就负责执行代码就好了
2014-1-8 13:59
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
你以为java 虚拟机是那么好实现的么。。。。。简单就不需要人家那么大的团队来搞了
2014-1-8 14:12
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
也就是我说了两个解决方案,你要我选择难的那一种,然后告诉我难的那一种要别人很大团队来搞你一个人不行
你还是退散吧
2014-1-8 23:21
0
雪    币: 65
活跃值: (112)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
那是因为你的那些所谓方式,根本没有实现的可能。
实际上等价于,你要让windows给你把不是可执行文件的文件(对于ARM平台,x86的PE文件就等价于不可执行文件)加载起来,这个就和java虚拟机一样要求,简单的话,可以的话,人家java还不如就依照PE格式去存放他的字节码,然后像你说的一样,她只负责执行字节码就是了。。。。人家没这么搞,难道就是因为这个难度太小,不屑么。。。。
2014-1-9 12:57
0
游客
登录 | 注册 方可回帖
返回
//