Android逆向:smali编码实践(四)—— 给某HS小说APP加上日志打印

 

目录

 

1.准备工作

2.反编译APK

3.修改smali文件

4.打包签名

5.安装运行

 

6.总结


1.准备工作

1.1下载好apktool的jar这里使用apktool-2.5.0.jar  (PS: 执行命令为 java -jar apktool_2.5.0.jar d lsp.apk 与 java -jar apktool_2.5.0.jar b lsp)

1.2 手机或者模拟器

1.3 安装好JaDex方便自己看看大概写出来的东西是个什么样子,用其它工具也行,不过这个很方便。

1.4自己的keystore文件以及签名工具
 

2.反编译APK

执行命令 java -jar apktool_2.5.0.jar d xxx.apk

反编译成功,如下:

打开反编译后生成的文件夹,在里面找到smali文件夹这里面就是可以用来修改的了。

 

3.修改smali文件

由于这个应用没有加固所以实践起来比较友好,很容易便找到了日志打印类:.class public Lio/dcloud/common/adapter/util/Logger;

然后习惯性搜索i(Ljava/lang/String; 查到了如下内容,根据smali代码发现是使用了一个static修饰的boolean类型的字段isOpen来作为日志打印的开关。

那么下一步就比较好办了只要把这个值修改为true即可或者是直接删掉这个判断,这里采用修改值的方法。文件类查询isOpen字段,找到了一个setOpen的方法。然后对其修改,如下:

这里一面应该也是和C语言一样非0为true ,所以我这里给寄存器v0的值为0x1,因为多了一个v0寄存器,所以 .locals的值修改成1

 

4.打包签名

使用apktool对改好的文件进行打包,编译命令 java -jar apktool_2.5.0 b 要编译的项目的文件夹

编译成功后进入该文件下的dist目录看到已经编译成功的apk文件

然后对APK签名之后就可以安装了,这里使用乐固提供的工具一键运行。

 

5.安装运行

将签名后的文件安装到手机,使用AS查看logcat发现日志开关已经被成功打开了。

 

6.总结

6.1 一般逆向实践可能优先一些不可描述的app入手会方便点,因为这类app可能团队不是很大,所以有时候没那么严谨。很容易找到容易入门的apk,如果找到一个加固了的,那就只能望洋兴叹了。

6.2 没有加固的apk结合jadx-gui查看代码逻辑会快捷非常之多。

6.3 添加寄存器之后一定要修改.locals的值。否则会出现一些奇奇怪怪的问题。

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值