国语视界

 找回密码
 立即注册
12
返回列表 发新帖
楼主: filmfans

[技术交流] 关于重编译混淆过的class

[复制链接]

104

主题

733

帖子

1848

积分

营长

大洋
54284
阅读权限
50
 楼主| 发表于 20-5-14 08:43 | 显示全部楼层
nnezyj 发表于 20-5-13 23:53
先给出结论:不能编译过去!

因为你的大前提:“在不改变任何代码的情况下”,结果是不能编译过去!

你是不是装了多个 java 版本?

必须装多个版本,因为要运行的java程序要求更多,但环境变量已正确设置1.5
回复 支持 反对

使用道具 举报

9

主题

492

帖子

562

积分

连长

大洋
2991
阅读权限
40
发表于 20-5-14 12:07 | 显示全部楼层
filmfans 发表于 20-5-14 08:41
可能您理解有误,我表达的是不改变任何代码逻辑的情况去编译,为了避让混淆带来的问题,让代码顺利编译, ...

你去JAVA开发论坛提问吧,此站不适合你这种大佬
回复 支持 反对

使用道具 举报

13

主题

1748

帖子

7026

积分

旅长

大洋
15954
阅读权限
70

灌水之王

发表于 20-5-14 12:20 | 显示全部楼层
1,我所有的东西都懂的,但就是编译不过去
2,有些工具我不想用,不好用,字节码太麻烦,也不用
3,不改任何代码的情况下你们试试
4,那是你理解有误
回复 支持 反对

使用道具 举报

104

主题

733

帖子

1848

积分

营长

大洋
54284
阅读权限
50
 楼主| 发表于 20-5-14 12:59 | 显示全部楼层
对各位前辈的批评虚心接受,感谢各位的指导,我会继续努力学习,多为论坛贡献
回复 支持 反对

使用道具 举报

46

主题

1475

帖子

3001

积分

版主

大洋
21045
阅读权限
140
发表于 20-5-14 17:53 | 显示全部楼层
我看到根目录下的class根本没有package设定,这样,根据java编译要求,其他目录下的要想引用这些class根本不可能,因为没有包名,我现在就是用javac命令行编译无论如何都编译不过去,怎么办?


javac 命令行编译,这一块,我的确不知道该怎么操作!
编译位于 package 下的类,出现调用无 package 的类的 import 语句无效问题!
这个我的确不知道该怎么弄!

这个问题,建议还是到搞 java 编程的专业论坛问吧,我是搞不定,百度也没搜索到!
回复 支持 反对

使用道具 举报

104

主题

733

帖子

1848

积分

营长

大洋
54284
阅读权限
50
 楼主| 发表于 20-5-14 20:22 | 显示全部楼层
nnezyj 发表于 20-5-14 17:53
javac 命令行编译,这一块,我的确不知道该怎么操作!
编译位于 package 下的类,出现调用无 package 的 ...

感谢您一直对我的无私帮助,我觉得根目录下的class包名的缺失可能是混淆的结果,综合前面的讨论,等时间充裕我试着用字节码的方式来试着改改
回复 支持 反对

使用道具 举报

46

主题

1475

帖子

3001

积分

版主

大洋
21045
阅读权限
140
发表于 20-5-14 21:44 | 显示全部楼层
本帖最后由 nnezyj 于 20-5-14 22:33 编辑
filmfans 发表于 20-5-14 20:22
感谢您一直对我的无私帮助,我觉得根目录下的class包名的缺失可能是混淆的结果,综合前面的讨论,等时间 ...


和混淆没有关系!
这是命令行编译的问题!

用 Eclipse 吧,用它倒是可以编译!
回复 支持 反对

使用道具 举报

104

主题

733

帖子

1848

积分

营长

大洋
54284
阅读权限
50
 楼主| 发表于 20-5-14 22:30 | 显示全部楼层
等我再试试 如果还有问题到时候麻烦您再帮我看看
回复 支持 反对

使用道具 举报

46

主题

1475

帖子

3001

积分

版主

大洋
21045
阅读权限
140
发表于 20-5-14 22:34 | 显示全部楼层
本帖最后由 nnezyj 于 20-5-14 22:57 编辑
filmfans 发表于 20-5-14 22:30
等我再试试 如果还有问题到时候麻烦您再帮我看看


javac.exe 的命令行编译模式,真的是太难了,有 Eclipse IDE 为啥不用呢?
小白我投降了!用过命令行模式以后,太打击人,完全不给活路,怎么操作都搞不定,同样的代码文件,在 Eclipse IDE 下就能出来了!

大佬自己研究吧!
我又不是程序员,搞命令行这种操作太高端了!不想为难自己了!我放弃!


-------------- 分割线 ----------------------
谈点个人看法:

使用 javac.exe 命令行,应该就意味着代码的编写要严格遵守 java 规范,毕竟使用了 jdk 来编译,jdk 是 java 的官方工具,不遵守官方规则,怎么能编译成功呢!
这应该就是,一直编译报错的缘故吧。

然后反编译出来的文件,我们也看到了,没有 package 的,位于根目录下的大批文件!
不符合命名规则的开头小写字母类名等等。
甚至有 if 、 do 这样的,和关键字冲突的变量名、类名等等!
如果按照 java 规则来说,这都是死死的报错!

根据网上百度到的说明,class 文件是 java 机器码文件,机器码模式下,是没有 if 、do 等问题的,它只要符合机器码的运行规则,它就能运行!

所以,使用 jdk 官方工具 javac.exe 来编译文件,我觉得一开始就是错误的选择!
把自己扔到死胡同里!

本来就是非标操作,IDE 工具能解决问题,为什么不用呢?

以上纯属小白用户我的个人牢骚!

也期待大佬找到命令行下编译通过的方法,并分享之!

以上,完毕!
回复 支持 反对

使用道具 举报

104

主题

733

帖子

1848

积分

营长

大洋
54284
阅读权限
50
 楼主| 发表于 20-5-14 23:10 | 显示全部楼层
nnezyj 发表于 20-5-14 22:34
javac.exe 的命令行编译模式,真的是太难了,有 Eclipse IDE 为啥不用呢?
小白我投降了!用过命令行模式 ...

跟您比我真是差太远了,当初的想法只是想从本质上搞懂这个,摸索过程中肯定会有很多挫折,我觉得这个问题可以暂时放置一段时间,随着其他辅助知识的慢慢丰富,我想自然会迎刃而解
回复 支持 反对

使用道具 举报

8

主题

254

帖子

1939

积分

论坛贵宾

大洋
85975
阅读权限
130
发表于 20-5-16 01:34 | 显示全部楼层
加油~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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