QQ登录

只需一步,快速开始

[天文软件] Astro Pixel Processor 2.0.0-beta29 软件破解版 [附破解后软件&破解过程]

[复制链接]
duskxi 发表于 2024-11-1 17:16 | 显示全部楼层 |阅读模式 来自: 中国–上海–上海–闵行区 电信

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?加入牧夫(请注明天文爱好者,否则无法通过审核,请勿使用gmail/outlook/aol/icloud邮箱注册)

×
本帖最后由 duskxi 于 2024-11-2 16:56 编辑

破解APP的起因是,由于还没买C8HD的减焦镜,所以想着通过拼接的方式去获得一张较为全视的M42,但是看了一圈,pixinsight没找到破解版,Astro Pixel Processor也是,所以那就只好我亲自来破解咯(还好我是学计算机的)

破解好的Astro Pixel Processor在下面

先附上合成马赛克M42的效果图: M42-RGB-session_1-14.jpg 软件随便填写注册码后: 屏幕截图 2024-11-01 172709.png

直接下载破解后的软件: 链接: https://pan.baidu.com/s/12HMUGGaM-nF9uviHCGK5PA?pwd=v3im 提取码: v3im
这里下载是一个压缩包,打开直接运行就行了,不用看后面的教程(教程是给想要自己捣鼓破解的人看的)
注意: 注册码随便填,但是长度要超过15个字符  

接下来是破解过程[给喜欢捣鼓的人写的](理论上来说全平台通用,作者没必要为了切换平台更换License Code激活用的Class):

准备工作:
1. [APP软件本体] 去官网下载合适的版本,并且安装(我虽然只尝试过2.0beta29,但是理论上来说授权代码变化不会很大): https://www.astropixelprocessor.com/downloads/
2. [Java 字节码编辑器] 我使用的是Bytecode Viewer (https://github.com/Konloch/bytecode-viewer), 当然也可以用Recaf(https://github.com/Col-E/Recaf),选择很多
3. [Java 反编译器(可选,除非你想看代码)] 我使用的是Jadx(https://github.com/skylot/jadx) 如果只是想跟教程自己破解,而不是想玩点别的逆向工程,这个就对你没必要
4. [解压缩软件] 如7z bandizip
5. [jre/jdk环境(可选)] 其实可以直接用APP自带的jre环境,所以是可选

额外条件: 具有额外Linux环境,或者WSL(Windows 的 Linux子系统,想要亲自破解的多多少少应该有CS基础,这里就不过多解释),同时带有java 21环境,因为java包是分大小写的,而Windows的文件系统视大小写不同,但是字母相同的文件为同一个文件,因此打包过程需要在Linux进行。或自行尝试使用Java Agent修改启动命令覆写字节码

开始破解(Patch)
1. 找到可执行文件AstroPixelProcessor.exe所在目录,比如说我的就在"C:\Program Files\AstroPixelProcessor"。接下来所有操作都会基于这个目录
2. 使用解压缩软件直接打开AstroPixelProcessor.exe,因为AstroPixelProcessor.exe本质上就是个jar打包成exe的,而jar文件本质上就是个压缩包,因此解压缩软件可以直接打开。
3. 从中寻找到(注意!严格确认大小写)jv.class(最核心文件,为APP的授权处理类所在的文件) 与 gT.class(为编译jv.class反编译的代码所需的依赖文件,其中有类方法gT.a()需要执行)
4. 打开Bytecode Viewer,分别把gT.class和jv.class拖曳到Bytecode Viewer中:
屏幕截图 2024-11-01 174820.png
5. 点击顶部栏的显示->面板1->Fernflower 勾选Java和可编辑
屏幕截图 2024-11-01 174937.png
6. 展开jv.class 点击下面的jv.class,你会看到如下代码:
屏幕截图 2024-11-01 175056.png
7. 如图,这个函数是授权函数,是破解的核心, 只需要将图中函数内的逻辑代码全删了,改成 this.c = gT.a() (或者this.sc = gT.a() 因为后续的代码涉及到为了编译暂时修改部分成员类的名称)
屏幕截图 2024-11-01 180003.png

8. 这一步也很关键,涉及到是否能够顺利编译反编译后的代码,
类成员重命名:
     现在将低6,7行和public String[] a()方法与public String[][] a()中的类成员变量从a和b改为psa,psb。然后修改第九行的c改为sc(相应的授权函数中的this.c也应该变为this.sc)。以及将23行的 public boolean a() 改为public boolean ba();把public String[[ a()改为public String[[ aa();把public String a()改为public String sa()
参数覆写:
    将第二行第三行的a,b赋值从false改为true, 第五行的e添加默认值为true, 这三个参数分别是控制判断注册码是否激活,是否有效,注册码验证过程是否完成的参数。然后设置psa, psb, sc默认值为"114514 d abcdefgh g 191810 d abcdefgh g ikun d abcdefgh g 1919810"; 当然了,这里面的值随便填写,反正无所谓,唯独要确保至少有三个" d abcdefgh g "在其中, 然后前后都要有额外字符,不然会报错

最终,修改完成后文件应该如下:
  1. public class jv {
  2.    public static boolean a = true;
  3.    public static boolean b = true;
  4.    public static boolean c = false;
  5.    private static boolean e = true;
  6.    private static String psa = "114514 d abcdefgh g 191810 d abcdefgh g ikun d abcdefgh g 1919810";
  7.    private static String psb = "114514 d abcdefgh g 191810 d abcdefgh g ikun d abcdefgh g 1919810";
  8.    private boolean d;
  9.    private String sc = "114514 d abcdefgh g 191810 d abcdefgh g 191810 d abcdefgh g 191810";

  10.    public jv(String[] var1) {
  11.       this.a(var1);
  12.    }

  13.    public String a() {
  14.       return this.sc;
  15.    }

  16.    public void a(String[] var1) {
  17.       this.sc = gT.a();
  18.    }

  19.    public boolean ba() {
  20.       return e;
  21.    }

  22.    public String[] a() {
  23.       String[] var1 = psa.split(" d abcdefgh g ");
  24.       return new String[]{var1[1], var1[2]};
  25.    }

  26.    public String[][] aa() {
  27.       psb.split(" d abcdefgh g ");
  28.       String[][] var3 = new String[3][3];

  29.       for(int var1 = 0; var1 < 3; ++var1) {
  30.          for(int var2 = 0; var2 < 3; ++var2) {
  31.             var3[var1][var2] = "unlimited";
  32.          }
  33.       }

  34.       return var3;
  35.    }

  36.    public boolean b() {
  37.       return this.d;
  38.    }

  39.    public boolean c() {
  40.       return a;
  41.    }

  42.    public boolean d() {
  43.       return b;
  44.    }
  45. }
复制代码
9. 执行编译,点击左上角的文件->编译
屏幕截图 2024-11-01 181258.png
编译成功后理应显示这个: 屏幕截图 2024-11-01 181318.png
10. 关闭源码编辑,打开字节码编辑
还是之前的地方,关掉显示->面板1->Fernflower 里面的可编辑,然后选中 显示->面板2->smali, 同时打开里面的可编辑:
屏幕截图 2024-11-01 181443.png 屏幕截图 2024-11-01 181453.png
11. 用顶部栏的搜索工具,输入.method public
一个个去找里面高亮的后面,确保所有对应的函数的名字都是一个字母,都基本上是a/b/c, 总之就是回复其修改源码之前的名字,之所以要在字节码里面修改,是因为在编译器面前这些同名被认为是不正确的写法。
比如说:
屏幕截图 2024-11-01 182216.png 改为 屏幕截图 2024-11-01 182220.png
屏幕截图 2024-11-01 182204.png 改为 屏幕截图 2024-11-01 182210.png
12. 最后再按一次编译,然后使用快捷键Ctrl+S保存,随便哪里都行,你会看到一个jar文件

13. 还是用解压缩软件打开jar文件,然后我们只需要里面的jv.class,gT.class只是辅助用的,现在它没用了。把jv.class复制出来放到随便哪个文件夹里面备用
14. 执行命令,解包jar
先准备好目录,在AstroPixelProcessor.exe的安装目录中新建一个pack目录
然后切入wsl环境(或者复制这堆东西到你的Linux环境中)
然后执行如下命令:
  1. cp AstroPixelProcessor.exe pack/AstroPixelProcessor.jar
  2. cd pack/
  3. jar xf AstroPixelProcessor.jar
  4. rm AstroPixelProcessor.jar
  5. cd ..
复制代码
上述命令复制原先的APP可执行文件到pack目录中并且重命名后缀为jar, 然后调用jar命令解包jar,所有的文件都会在pack目录里面,然后删除临时文件AstroPixelProcessor.jar
现在,完成了对APP的解包,接下来就需要把刚才编译好的jv.class复制到pack目录里面,覆盖其中的jv.class文件
接下来继续执行如下命令:
  1. jar cmf ./pack/META-INF/MANIFEST.MF AstroPixelProcessor-Patch.jar -C ./pack/ .
复制代码
现在我们完成了打包
此时APP软件已经破解完成,只需要执行java -jar AstroPixelProcessor-Patch.jar就可以打开软件了
15. 最终打包为exe(可有可无,你也可以直接写个sh或者bat文件调用本地的jre去启动,一样是一键启动,只不过没有APP的ico没那么好看罢了)
用Launch4j打包为exe可执行文件,这里我就不过多赘述了,Launch4j的教程网上一抓一大把


至此,大功告成

M42 合成

M42 合成
nbfans 发表于 2024-11-6 14:29 | 显示全部楼层 来自: 中国–天津–天津 电信
终于过审了,太不易了。
大佬NewBee。
回复 顶~ 砸~

使用道具 举报

本版积分规则

APP下載|手机版|爱牧夫天文淘宝店|牧夫天文网 ( 公安备案号21021102000967 )|网站地图|辽ICP备19018387号

GMT+8, 2024-11-21 14:29 , Processed in 0.062090 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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