# 源码的反编译及搭建
我这里使用的是 jadx 进行的反编译,因此后面会有一些代码上的坑需要注意一下。
新建如下图的目录结构,并将原始的 CSjar 包放进 cs_bin 即可。
使用 jadx 反编译完后导出为 graddle 项目至 cs_src 目录中即可获取源码即下图两个文件夹。
然后打开 IDEA 新建一个空项目并新建一个 decompiled_src 目录,并将 source 目录复制入 decompiled_src 即可,后续操作参考这篇二开搭建的文章。
在这里主要讲下可能是 jadx 反编译的问题导致的反编译后的源代码有些地方会出错需要手动更正一下,这里举几个例子:
这里报错的原型是这段代码:
1 | for (Map.Entry entry : this.hooks.entrySet()){ |
这里只需要跟进
this.hooks.entrySet()
观察一下返回的类型是什么即可,比如这里跟进之后发现是个 Set 集合,在外面用 Set 集合封装一下在替换即可解决报错,需要注意的是泛型要对齐,再比如下图也是这样。
还有一种报错就是属性报错,跟进那个类里看一下最接近的属性是什么改成什么就行了,还有包括一些明显的逻辑上的错误比如从外面接了参数却使用另一个赋值为空的参数去比较:
错误原型为第二行多加了 String text2 = ""
,并在 sum += text.charAt(x)
这段代码变成了 sum += text2.charAt(x)
修正过来即可,反正这类逻辑上的代码问题还是稍微注意一下就行。
至此环境基本搭建完成,可以启动 Agressor 端进行相关例如 UI 的修改以及相关功能的二开了