技术1
经验10452
魅力3
人气85
分享19
原创6
注册时间2021-7-10
最后登录2026-2-20
阅读权限55
在线时间175 小时
主题16
回帖195

炉火纯青
  
- 积分
- 6176
- 人气
- 85
- 分享
- 19
|
发表于 2023-2-2 15:41:36
|
显示全部楼层
本帖最后由 小笑话233 于 2023-2-2 15:43 编辑
抱歉,我其实对编程不太懂,我学C++也是两年前的事情了,Java没学过。(过了这么长时间我好好思考了一下)
后来我去网上做了一下功课,发现class文件可能是java class文件,我又用反编译工具反编译了这两个文件,最后得到的就是.java文件。
所以这些文件都是启动后才能调用到的。
为了一探究竟,我用到了行为显微镜工具(病毒分析区经常用的)
而在我的电脑上,由于我事先安装了Java,所以HMCL会直接调用Java(貌似HMCL会在第一次启动后留下一些日志文件在系统里)
所以我安装了一个新系统来测试,系统是LTSC 2021,我打开后就出现了安装Java的提示,但在创建提示窗口之前,行为显微镜就已经提示它尝试去获取系统信息了,其中有一条貌似是去搜寻Java的,但它的衍生文件里并未出现一些其他的程序,只有一些显卡驱动或者着色器之类的文件。
那么我就想了,既然不是通过先解压出特定文件的方法,那么使用什么检测的呢。
由于我之前使用的是7-zip,7-zip如果用来看程序的话只会显示出里面符合压缩文件特征的项目,其他不会显示。
我就把眼光重点放在了那个自解压程序外壳上面,我把里面的压缩文件提取了出来,果然外面还有100多KB的数据碎片,那么这些应该就是用于检测Java的程序文件了,应该是用C++编译的。
最后我去了Gitee上看了一下HMCL的开源帖子,根据官方的说明,HMCL本体是完全用JavaFX编译的,那么基本就可以确定了,HMCL用来启动游戏的部分全是Java写的,只有那可怜的自解压外壳用了点C++。(个人猜测这可能是为了在Windows中的兼容性,防止连窗口都显示不出来)
|
|