首先以一个粒子来详细说,之前做题的apk( 大概流程是,解包,分析(修改),打包,签名。分析修改这个流程也很多种,一般是先用jadx看关键代码函数在哪,确定大概方向,简单的直接修改smali,复杂的可在解包过后,用vs等软件打开对应的smali修改,要想大量修改就需要在andriod studio里重新编译。当然简单的比如一些小验证也可以直接在手机端mt里修改class。对于一些复杂的修改可通过动态调试,frida注入代码来详细修改,比如脱壳(脱壳最后会讲)。签名也可通过几种方式,第一apksigner/jarsigner,前者是SDK(安卓专用工具),后者是JDK(java工具,有jdk则自带签名的),后者更传统一点,这篇文章都用的SDK。第二种通过andriod studio里生成apk自动签名,更简单更好操作。第三种则是手机端,比如mt管理器就能生成签名。那么接下来就演示一下
解包

apktool d easy.apk

修改的过程省略(因为详细流程走完后会有分析千恋万花的环节)
打包

apktool b easy -o easy1.apk

这里后面的apk名字随便取了,只要不和原始的重复
签名环节首先要生成密钥

keytool -genkeypair -v -keystore my-release-key.jks -alias mykey -keyalg RSA -keysize 2048 -validity 10000

口令可以理解为密码,随便输点什么,下面的也是随便填点什么,有了密钥后正式签名。因为我没有把签名的设为环境变量,所以要先cd进sdk的路径下,我的sdk路径可以参考

cd /d D:\develop\as\sdk_home\build-tools\36.1.0

然后

apksigner sign --ks 刚刚生成的密钥库路径 --ks-pass pass:你的密码 --out D:\1\Documents\signed_easy1.apk D:\1\Documents\easy1.apk

然后会出现两个文件,一个是signed-apk,一个是后缀为idsig的文件,这个idsig文件就是v4签名的文件。v1v2v3就不会有这种文件,他们直接附在apk里,位于特定位置。v1就是传统jarsign签名,位于META-INF目录下,v3比较高级,可支持密钥轮换。以下代码可看apk用了哪些签名,当然mt管理器也能看

apksigner verify --verbose xxx.apk

总之,签完名后的apk就能下载在我们的手机上了。

千恋万花分析修改

解包,放入jadx或者as

可以看到还开了允许调试,可改,青桔有心了,,游戏主要的功能,人物,图像什么的,都被封装进了xp3和dll和csb,(视觉小说所特有的,悲)那么我们用hacksource打开一个dll

就是一些设置选项,下面的图标组是芳乃的表情包,可以更改,然后在lib-arm64-v8a文件夹中会有一些.so文件,这是很多apk所共有的,里面就是app的原生模块,六十四位ARM架构的原生二进制文件和第三方依赖比如游戏引擎,音视频库的文件。没有什么好分析的,当然要分析的话可使用ida。然后随即打开一个csb文件

可大概看到里面存了图像资源,当然xp3,csb文件要想分析需要用专门的软件,比如前者可用吉利吉利引擎或者XP3ExtractorVisualNovelTinker等,后者用cocostudio。

上图是基本上每个直装都会有的,对应了游戏中下面的长方形框以及里面的按钮的png,可改

最“何意味”的就是上图了,千恋万花资源里出现死馆的照片……

这就是在释放资源过程中的小字部分(可改),还有res目录下存放的封面也可改。
其实能改的没有多少,过完瘾过后就是打包签名,

加固

市面上常见的加固壳就是360,爱加固,梆梆加固什么的,类似于360这种企业壳,原理大概就是把so文件拷贝在沙盒中并在native层加密,然后不允许安卓调试并开启反调试等,已经有了一键脱壳的方法,那就是和刷机相关的lsp框架或者狐狸面具什么的,当然通过frida注入脱壳模板也能一键脱壳。当然传统的调试脱壳挺复杂,慢慢学习……
看了一下手机里其他软件,下次再分析过后期待能有什么真正改变的东西吧

分类: study

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注