有没办法检查出一个程序(exe文件)是不是用java写的? 如何检查? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给作者发电子邮件接分,Oh Yeah~ 反编译一下看看可以考虑用OD或者IDA,C32ASM等等 等待高人指点,不知peid能否查到 这个如果生成时不给标明,基本 上是没法实现的,给作者发电子邮件接分,Oh Yeah~这个的建议可行 改后缀为.jar 用解压软件看是否可以打开。一般的java的exe加壳工具打包的都可以用解压软件打开 改后缀为.jar 用解压软件看是否可以打开。一般的java的exe加壳工具打包的都可以用解压软件打开-------------------------------------------改成zip行吗?直接双击就打开了,哇咔咔咔咔~ 简单,你把你机器上的jre 卸掉 ,然后看还能执行不! java虽然能专成exe 但是内部还是用脚本掉用jar,没有jar 是不能运行的! java是不能生成exe的 他使用的是winrar生成的exe 执行jar的脚本而已你直接拿winrar看能不能打开,如果能打开再看里面就是java的了我倒看看csdn倒还有没有人只问问题不散分了 我觉得应该很简单吧,你不装JAVA运行环境,如果还可以运行,肯定不是JAVA的 还是这个方法好,哈哈---------------------给作者发电子邮件接分,Oh Yeah~ 执行之后会启动java(w).exe进程 > 我觉得应该很简单吧,你不装JAVA运行环境,如果还可以运行,肯定不是JAVA的> 执行之后会启动java(w).exe进程这两个都不是彻底的办法。我自己做个程序包,把 JRE 里必要的东西都带进去,然后做个 EXE 通过 JVM.DLL 加载虚拟机。这样的话,既不需要目标机器预先安装 JRE,也不会看到 java.exe 进程。总之,不会有什么“彻底”的办法。 删除环境变量中的JAVA_HOME试试。 shine333(enihs)说的方法最简单^_^如果是纯exe脱离了jre的,除非文件中有属性标记(比如delphi的程序,如果用UE打开,都会有一句:This program cannot be run in DOS mode),否则基本考猜测了。如果是封装的exe,就用解压法或者运行法,呵呵。 不知道楼上各位是否知道jar2exe (这个生成的exe程序不能解压且无javaw进程)所以我觉得把JRE卸了看看可不可以运行比较保守 真TMD简单的办法,你把Java虚拟机卸载了它还能运行就不是Java的,否则就是。 也有可能不是纯EXE文件,比如Eclipse中的EXE只是一个加载程序 如果能用winrar解压缩,就说明是jar转的 exe文件是给windows处理的可执行文件,与什么语言写的无关吧 java的exe文件大多数的都能用解压缩工具解开,如果不能解开就是楼上那些方法,卸载虚拟机等。不过也可能打包时就把虚拟机打到里面了,可能需要看是否有JAVAW进程了不知道有什么完美的方案 查看文件的字符串,看是否包括JAVA字符串 没见过用java生成exe,只见过java通过jni生成exe,但那已经是C/C++的code了。呵呵。 > 如果能用winrar解压缩,就说明是jar转的这位兄台混淆了充分条件和必要调价,“Jar转的”=>“能用winrar解压缩”,“能用winrar解压缩”=>“Jar转的”RAR,LZH,ISO都可以用WinRAR解压反正Java程序无法脱离JVM,即使原先是Java程序的,但是经过工具转化,不再需要JVM了的程序,我们也不认为它是Java程序了。 侦壳。还可以运行看任务管理器,看有没有java进程。 调试之!看运行的过程!如果都是win api,肯定是非java 反编译,然后观察是不是.JAVA或.CLASS的后缀名。 没装java虚拟机不能运行, 那就自然是java写的喽反正我没见几台机器上装java虚拟机了 如果这个exe有图形界面,随便搂一眼也知道它是用awt,swing 还是swt写的。 stonegump(龙飞虎) ( ) 信誉:100 Blog 2006-09-26 11:43:00 得分: 0 如果这个exe有图形界面,随便搂一眼也知道它是用awt,swing 还是swt写的。 ---------------------这倒未必 改后缀为.jar 用解压软件看是否可以打开。一般的java的exe加壳工具打包的都可以用解压软件打开 运行速度特别慢的就是java写的了:) joke 没装java虚拟机不能运行, 那就自然是java写的喽反正我没见几台机器上装java虚拟机了------------------------------- 大哥,你不知道jre也可以绑在一起的阿?可以把jre跟软件放在一起打包的 运行软件后,看看你的进程是否增加了一个javaw maquan('ma:kju) ( ) 信誉:100 Blog 2006-9-25 11:51:42 得分: 0 > 我觉得应该很简单吧,你不装JAVA运行环境,如果还可以运行,肯定不是JAVA的> 执行之后会启动java(w).exe进程这两个都不是彻底的办法。我自己做个程序包,把 JRE 里必要的东西都带进去,然后做个 EXE 通过 JVM.DLL 加载虚拟机。这样的话,既不需要目标机器预先安装 JRE,也不会看到 java.exe 进程。总之,不会有什么“彻底”的办法。学习中。 Java的界面风格跟标准Windows风格很不同,基本上一看就能分辨出来。很同意kwanhong的观点。 最简单的做法,在一个没有装 JRE 的机器上运行,能成功则表示这个程序不依赖于 Java 运行环境。 其实不难,楼主你检查一下这个可执行文件的头4个字节是不是"c","a","f","e"如果是的话, 就说明它是一个java可执行文件请参考<<Linux内核源代码情景分析>>第4章对exec函数讲解的那一段 见这么热闹,我来说两句,上面有的朋友所说的,看看能不能用winrar解压,及不装jre是否能运行,这两种作法都不是严瑾的,有一个软件,叫NativeJ, 这个软件做成的exe是不能被WinRar解压的,而且,可以把jre合并进最后生成的exe文件中,那么就算目标机子不装jre,也一样能运行。 其实,java做的程序,光从界面及菜单的弹出速度就能感受出来了。而且也有绝对点的判断方法,你运行exe后,在进程管理器中,看看是否多了个javaw.exe进程就行了。 可能真的需要靠感觉来判断了...补楼上, 前面有位老兄说, 可以怎么弄个什么虚拟机DLL, 以避免出现javaw.exe进程... 哈哈~~~~~一般用JAVA做的软件的界面肯其他软件做的界面有区别~~~可以看出来的~~ 答案在这里:如果是java做的exe文件;使用任何一个文本编辑器打开,在exe文件的末尾都包含有该exe文件使用的class名字 看在没有JAVA环境的电脑上能不能运行.JAVA编的程序要在JAVA环境下才能运行. 学习了。我还是比较常用的是看启动的进程。先把会引起歧义的kill掉,启动程序后看一下就可以了。 请说明一下java.awt.Toolkit;的作用和解释。通俗点的 请问JProgressBar怎么用 java3D (鼠标双击后获得3维坐标遇到问题.......) java传参到底是按值还是按引用?最好学过C/C++的人来回答一下 请大家帮忙, 程序出现ClassCastException 我要学java,给介绍一个编译器吧! Java 多线程 关于IceStorm? jdbc 关于添加数据的问题 小白求教!返回数组 class.forName()问题,高手帮忙解决,或给出解释 网页上如何实现用javacomm20读取客户端串口???
接分,Oh Yeah~
可以考虑用OD或者IDA,C32ASM等等
接分,Oh Yeah~这个的建议可行
-------------------------------------------
改成zip行吗?直接双击就打开了,哇咔咔咔咔~
你直接拿winrar看能不能打开,如果能打开再看里面就是java的了我倒看看csdn倒还有没有人只问问题不散分了
给作者发电子邮件
接分,Oh Yeah~
如果是纯exe脱离了jre的,除非文件中有属性标记(比如delphi的程序,如果用UE打开,都会有一句:This program cannot be run in DOS mode),否则基本考猜测了。如果是封装的exe,就用解压法或者运行法,呵呵。
jar2exe (这个生成的exe程序不能解压且无javaw进程)
所以我觉得把JRE卸了看看可不可以运行比较保守
如果不能解开就是楼上那些方法,卸载虚拟机等。
不过也可能打包时就把虚拟机打到里面了,可能需要看是否有JAVAW进程了不知道有什么完美的方案
这位兄台混淆了充分条件和必要调价,“Jar转的”=>“能用winrar解压缩”,“能用winrar解压缩”=>“Jar转的”
RAR,LZH,ISO都可以用WinRAR解压反正Java程序无法脱离JVM,即使原先是Java程序的,但是经过工具转化,不再需要JVM了的程序,我们也不认为它是Java程序了。
反正我没见几台机器上装java虚拟机了
如果这个exe有图形界面,随便搂一眼也知道它是用awt,swing 还是swt写的。
---------------------
这倒未必
:) joke
反正我没见几台机器上装java虚拟机了-------------------------------
大哥,你不知道jre也可以绑在一起的阿?可以把jre跟软件放在一起打包的
> 我觉得应该很简单吧,你不装JAVA运行环境,如果还可以运行,肯定不是JAVA的> 执行之后会启动java(w).exe进程这两个都不是彻底的办法。我自己做个程序包,把 JRE 里必要的东西都带进去,然后做个 EXE 通过 JVM.DLL 加载虚拟机。这样的话,既不需要目标机器预先安装 JRE,也不会看到 java.exe 进程。总之,不会有什么“彻底”的办法。学习中。
很同意kwanhong的观点。
其实,java做的程序,光从界面及菜单的弹出速度就能感受出来了。而且也有绝对点的判断方法,你运行exe后,在进程管理器中,看看是否多了个javaw.exe进程就行了。
如果是java做的exe文件;使用任何一个文本编辑器打开,在exe文件的末尾都包含有该exe文件使用的class名字
JAVA编的程序要在JAVA环境下才能运行.
我还是比较常用的是看启动的进程。先把会引起歧义的kill掉,启动程序后看一下就可以了。