逆向工具之unidbg(在pc端模拟执行so文件中的函数)

本文介绍了如何使用unidbg在PC上直接调用Android的.so文件中的函数,避免了逆向工程的复杂过程。通过下载项目、导入IDEA、配置并运行,展示了如何调用.so文件的函数,以及使用工具分析.so文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  昨天在逆向某App的时候,发现有个加密工具类中的native方法是用C语言编写的,隐藏在so文件中。某大佬推荐逆向工具unidbg,能在pc端直接调用so文件中的函数,最终成功解决了问题。

一、unidbg引入

  逆向某App,反编译dex得到Java代码,但是有两个加密工具类中的方法放到so文件中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  方法的实现用的C语言编写的,放在了so文件中。在Java中,动态加载so文件,使用native方法的形式隐藏了方法的方法体。难道伟大的逆向工程就此放弃?这显然不符合我们技术人的性格,肯定要想方设法弄出来。

二、unidbg概述

  unidbg 是一个基于 unicorn 的逆向工具,可以直接调用AndroidiOS中的 so 文件。项目的GitHub地址为https://github.com/zhkl0228/unidbg
  我使用unidbg,直接调用libbaseEncryptLib.solibencryptLib.so中的方法,这样就不用想破脑袋去逆向so文件了。

备 注 : \color{red}备注: :so文件是unix系统中的动态连接库,属于二进制文件,作用相当于windows系统中的.dll文件。在Android中也可调用动态库文件(*.so),一般会将加密算法、密码等重要的方法、信息使用C语言编写,然后编译成so文件,增强了软件的安全性

三、unidbg使用姿势

1、下载unidbg项目

  下载地址:https://github.com/zhkl0228/unidbg
在这里插入图片描述

2、导入到IDEA中

  unidbg项目用Java编写,并且上面下载的是一个标准的maven项目。我这里演示导入到IDEA中,如果你熟悉其它的IDE,也可以自己去弄。(顺带一提,如果你之前没接触过Java语言,要确保电脑安装好JDKmaven

①、解压压缩包

在这里插入图片描述

②、打开IDEA,导入解压的项目

在这里插入图片描述
  浏览到刚刚解压好的文件夹
在这里插入图片描述
在这里插入图片描述
  后面一路无脑next即可。。。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  第一次导入此项目会自动下载一些jar包,和网速、maven服务器有关,耐心等待吧。
在这里插入图片描述

3、测试unidbg

  项目中的src/test/java/com/xxxx/frameworks/core/encrypt路径中有一个TTEncrypt测试用例,直接执行其中的main方法。
在这里插入图片描述

  控制台打印相关调用信息,说明项目导入成功。
在这里插入图片描述

4、运行自己的so文件

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值