NKCTF2024-Eznative

首先使用blutter解析,拿到如上的output文件

先看看asm

都被混淆了,真的是太可恶了。

查看libapp.so的内容

一点符号都不给,首先我们使用LoadScript File去添加一部分符号

加载之前解析的

恢复了一部分,但是没有什么乱用啊

这个时候我们导入old.ida64

按ctrl+6召唤bindiff(没有可能是没插件)

Diff Database加载一下

越绿代表越匹配

通过关键字搜索找到关键函数,这玩意的字符串,结合hint说是dart语法不难发现来自于

GitHub - xxtea/xxtea-dart: XXTEA encryption algorithm library for Dart.

既然算法已经知道了就开始分析

首先导入字符串

全选之后点击Import symbols/comments

就可以更好的查看了。

首先我们注意到blutter生成的frida脚本

在fn_addr处填入我们需要trace的地址我们就可以梭参数了,先梭encryptToString

这里有个巨jb坑的地方,我点了n次一直不触发,后面来脾气了,长按一下,结果

触发了,tnnd,后面发现应该是这个aaa与bbb的问题

短按是用来触发aaa的,当时hook过aaa,发现短按确实能触发

拿到了一段md5,继续往下走,干encrypt_355994()

还是md5

研究发现,如下函数存在xxtea

梭一下

这就拿到key了,后续发现这个key其实就是md5的前16位。

对encTstr交叉

看到上层函数,其实这个sub_27F2d4是有符号的,我这里写wp的时候没有导入全部,名字叫做dialog,那么写过安卓开发的就知道这玩意就是弹窗了

交叉他发现其实有两处引用。但是跟不过去

看看汇编

果然两个。一个正确一个错误,那么我们看看哪儿比较的

其实就是这里了

直接上hook

拿到一串base

其实不难发现我们的输入在如下函数也被加密成base了。在old中也是有符号的,很明显的base

那么这一串肯定就是密文了

然后在之前给出的GitHub项目中,发现其实他的enc出来的结果就是base64的,所以我们直接使用库就可以解密了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值