LINE是一款即时通讯软件。全球注册用户超过4亿。
   为此类似Whatsapp、Line、facebook这类平台成为中国流量从业者的主战场。应朋友要求反编译看了一下whatsapp、line的软件,发现相比国内的社交软件或者流量软件,这类国外的软件风控上相对来说薄弱很多。
   比如Line,通过接码注册出来的号,测试发现除了可以常规扫码加好友的方式,对方通过后发信息的操作外,还可以直接通过mid方式跳过加好友环节,直接实现发信息。
   一般来说依靠静态分析与动态调试相结合的逆向分析手段,找准关键点,然后一步一步的分析,最终找到加密的地方就可以处理大部分软件。比如Line这里,首先将Line的APK文件打开,将Line的三个dex文件解压出来后使用jadx对将dex文件打开,得到Line的反编译后的java层代码。使用Android Killer对APK进行反编译,得到samli代码。由于我们要分析对数据库的数据的加解密,所以我们可以全局搜索一些与加解密相关的关键字,然后一步一步的分析。也可以从对数据库的操作作为入口。在对数据写入数据库时必然要对写入的明文先加密,从数据库中读取数据时,必然要对读取的密文进行解密,所以可以全局搜索与数据库插入、更新、读取相关的操作的关键字,然后一步步的分析下去,找到核心的加解密方法。比如从对数据库的操作作为入口,可以看到Line的value值只有两种的,也就是说这里的这两个值应该就是true和false经过加密后的值。然后针对这两个值进行分析即可。
    当分析出数据库加密的原理后我们就可以直接编写出它的解密DEMO。在Android Studio中建一个Project,然后再建一个AESDecrypt类用于对密文进行解密。这样通过知道的密文即可得出明文。