duangsuse::Echo
718 subscribers
4.26K photos
130 videos
583 files
6.48K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
( 虚拟机再次 Segfault(
This media is not supported in your browser
VIEW IN TELEGRAM
垃圾 VBox(
接下来直接开始收集到一定信息后的静态分析好了
以上所有调试都在这个配置可怜的虚拟机上完成(
总结一下之前的调试经历, 和签名验证有关的:

libcore.so!Java_com_drakeet_purewriter_Ww_www
libcore.so!checkSignature
libcore.so!loadSignature

com.drakeet.purewriter.tn
com.drakeet.purewriter.ts
com.drakeet.purewriter.to (possible)
com.drakeet.purewriter.aiw (possible)
com.drakeet.purewriter.agm (possible)
com.drakeet.purewriter.aiy (possible)
com.drakeet.purewriter.alf (possible)
com.drakeet.purewriter.aix (possible)

com.drakeet.purewriter.Ww


额外收获是发现了 drakeet 的美化 Toast 类 com.drakeet.purewriter.arm
是在给 android.widget.Toast 下断点后发现的

> http://drakeet.me/android-advanced-proguard-and-security/

正所谓叶藏于林, 所以我们从叶子的营养来源 — libcore.so/Android API/Java API 来分析
叶子终于藏不住, 谁叫使用 Dalvik JDWP 调试起来很方便呢(逃跑 😆

结束了吗?几天过去依然没有结束
接下来对检出的几个类进行静态分析和修改, 将会使用大家最熟悉的 JaDX 和 smali 工具了
最后的最后,我们还需要做的就是防止反编译者重新打包,全方位绝人之路呀,能做的就是在代码中加入签名验证,并做双向依赖。关于此我写过一个类似阿里黑匣子的东西,能够在 native 检查签名和加解密内容,后续也有计划整理开源,这里暂且就不多说了。
duangsuse::Echo
最后的最后,我们还需要做的就是防止反编译者重新打包,全方位绝人之路呀,能做的就是在代码中加入签名验证,并做双向依赖。关于此我写过一个类似阿里黑匣子的东西,能够在 native 检查签名和加解密内容,后续也有计划整理开源,这里暂且就不多说了。
不得不承认为了部分解决重打包的问题我还吃了不少苦头(
甚至手动修改 Android 二进制 AXML 文件, 手工修复无 resources 解码的 apktool 项目
不过这对我来说也是一种提升, 调试 AXMLEditor 的过程中我又看了不少代码, 这正是我缺少的东西

使用 AndBug 调试 JVM 应用的时候我也提升了自己的调试技能
This media is not supported in your browser
VIEW IN TELEGRAM
接下来是 JaDX 时间
果不其然!
我们对这个 Base64 石更编码的字符串进行解码:(石更 广我的 MinBase64, 虽然代码质量几乎没有, 见笑了XD 毕竟一年前的东西)

(其实我使用 FooShell 对代码进行 eval)
new String(android.util.Base64.decode("5qOA5p+l5Yiw5L2g5q2j5Zyo5L2/55So56C06Kej54mI57qv57qv5YaZ5L2c77yaCue6r+e6r+WG\nmeS9nOmrmOe6p+eJiOS4gOasoeaAp+aUtui0uSAxMyDlhYPvvIzmsLjkuI3lho3mlLbotLnvvIzo\ngIzkuJTku7fmoLzmsLjov5zlj6rmtqjkuI3pmY3jgILmiYDosJPnmoTpq5jnuqfniYjlhoXlrrnm\nnInvvJroh6rlrprkuYnnqL/nurjog4zmma/lkowgTWFya2Rvd24g6aKE6KeI44CB5Y+m5a2Y5Li6\n44CC5LuF5q2k44CCCumZpOatpOS5i+Wklu+8jOe6r+e6r+WGmeS9nOS4jeWGjeiuvue9ruacieS7\nu+S9lemZkOWItu+8jOiAjOS4lOmrmOe6p+eJiOWGheWuueWQjue7reS5n+S4jeS8muWinuWKoO+8\njOS4jeaWreabtOaWsOeahOWKn+iDveS5n+mDveS8muaYr+WFjei0ueeahO+8jOS5i+aJgOS7pei/\nmeS5iOWBmuaYr+WboOS4uuaIkeS4jeWWnOasouWkhOWkhOmZkOWItueUqOaIt++8jOabtOW4jOac\nm+eUqOaIt+WboOS4uui/meS4qui9r+S7tuaVtOS9k+WBmuW+l+W+iOWlveiAjOi0reS5sOmrmOe6\np+eJiOWGheWuueS7peaUr+aMgee6r+e6r+WGmeS9nOeahOS4jeaWreabtOaWsOe7tOaKpOOAggoK\n54S26ICM5L2g5Y205Zyo56C05Z2P6L+Z5Liq5bqU55So77yM44CQ55uX54mI5bCG5LiN6IO95Y2z\n5pe26I635b6X5pu05paw77yM5b6I5Y+v6IO95a2Y5Zyo5paH56ug5Lii5aSx6aOO6Zmp44CR77yM\n6K+35oKo6LSt5Lmw5q2j54mI77yM6LCi6LCi77yB\n", 0))


同时,duangsuse 还学到了一个新分析方法:
trap android.util.Base64.decode(Ljava/lang/String)[B
rt
This media is not supported in your browser
VIEW IN TELEGRAM
接下来随便处理就行
我就不继续下去了,也快花了我整三天时间
这些我会发给 @drakeet 方便他处理其他问题 23333333(
This media is not supported in your browser
VIEW IN TELEGRAM
工程列表:
#reveng 相关
修改 AXMLEditor
修改 AndBug
自己写一 纯 Java AXML ser/deser 库
自己写一款纯 Kotlin 的 JDWP 库 (可能需要一段时间) (无疑的)
demangler 反混淆工具

#PL 相关
KtLime, 可能又放到
详细信息可以在 github 上项目页找到

#geekapk
GeekApk, 有可能完成最上面两个就会开始
刚才听歌的时候发现了一些不错的歌声合成引擎
http://www.sharpkey.net/
http://www.ai-muta.com/

做得不错, 开源与否我大概不清楚(90% 不开源, 且只支持 Windows)
如果好用的话, 这些还没出道的虚拟歌手创建亚种非常适合给 GeekApk 娘配音 😄
This media is not supported in your browser
VIEW IN TELEGRAM