国语视界

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

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

[复制链接]
  • TA的每日心情
    开心
    20-6-6 00:46
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    16

    主题

    193

    帖子

    277

    积分

    排长

    Rank: 3Rank: 3

    大洋
    1658
    矿工
    0
     楼主| 发表于 20-5-14 08:43 | 显示全部楼层
    nnezyj 发表于 20-5-13 23:53
    先给出结论:不能编译过去!

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

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

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

    使用道具 举报

  • TA的每日心情
    开心
    20-1-1 21:40
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    9

    主题

    421

    帖子

    543

    积分

    连长

    Rank: 4

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

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

    使用道具 举报

  • TA的每日心情
    开心
    20-6-6 00:22
  • 签到天数: 693 天

    [LV.9]以坛为家II

    7

    主题

    852

    帖子

    3008

    积分

    团长

    Rank: 6Rank: 6

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

    使用道具 举报

  • TA的每日心情
    开心
    20-6-6 00:46
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    16

    主题

    193

    帖子

    277

    积分

    排长

    Rank: 3Rank: 3

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

    使用道具 举报

  • TA的每日心情
    奋斗
    20-6-2 22:55
  • 签到天数: 859 天

    [LV.10]以坛为家III

    32

    主题

    1138

    帖子

    2260

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

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


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

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

    使用道具 举报

  • TA的每日心情
    开心
    20-6-6 00:46
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    16

    主题

    193

    帖子

    277

    积分

    排长

    Rank: 3Rank: 3

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

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

    使用道具 举报

  • TA的每日心情
    奋斗
    20-6-2 22:55
  • 签到天数: 859 天

    [LV.10]以坛为家III

    32

    主题

    1138

    帖子

    2260

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

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


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

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

    使用道具 举报

  • TA的每日心情
    开心
    20-6-6 00:46
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    16

    主题

    193

    帖子

    277

    积分

    排长

    Rank: 3Rank: 3

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

    使用道具 举报

  • TA的每日心情
    奋斗
    20-6-2 22:55
  • 签到天数: 859 天

    [LV.10]以坛为家III

    32

    主题

    1138

    帖子

    2260

    积分

    版主

    Rank: 16Rank: 16Rank: 16Rank: 16

    大洋
    9779
    矿工
    9
    发表于 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 工具能解决问题,为什么不用呢?

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

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

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

    使用道具 举报

  • TA的每日心情
    开心
    20-6-6 00:46
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    16

    主题

    193

    帖子

    277

    积分

    排长

    Rank: 3Rank: 3

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

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

    使用道具 举报

  • TA的每日心情
    开心
    17-7-14 14:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    177

    帖子

    1738

    积分

    论坛贵宾

    Rank: 13Rank: 13Rank: 13Rank: 13

    大洋
    23861
    矿工
    30
    发表于 20-5-16 01:34 | 显示全部楼层
    加油~~~
    回复

    使用道具 举报

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

    本版积分规则

    Archiver|手机版|cnlang.org

    GMT+8, 20-6-6 05:11 , Processed in 0.018369 second(s), 11 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 2001-2018 Comsenz Inc.

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