Android裸聊诈骗软件逆向分析
Android裸聊诈骗软件逆向分析前言好久没写博客,打算更新一波,刚好冲浪的时候经常看到一些乱起八糟的机器人号,于是好奇去查了查(绝对不是因为我想要裸聊!绝对不是!
联系之后还是经典的话术。
于是我就拿到了恶意网站的链接进去之后是这个样子,明显就是仿照马斯克的x(话说这么明显的招数真的会有人上钩吗
安装后图标是这样的:
这个系统打开之后是这个样子,注意,这是我在完全受控环境中安装测试的,不要自己尝试
可以看到就是一个界面,点击立刻登陆后会跳出正在连接服务器,但是实际上可没有那么简单
解包分析入口 Activity 是 DCloud 的 io.dcloud.PandoraEntry,说明它使用 uni-app 打包。继续翻应用配置,只找到三个页面:
123pages/index/indexpages/upload-progress/indexpages/home/index
登录页负责索要手机号和 6 位邀请码;进度页会轮流展示“连接服务器”“开启加密通信”“验证用户身份”“匹配用户”“进入房间”;主页则简单得近乎敷衍。
真正应该属于聊天软件的东西一个也没有:没有联系人列表,没有 ...
某气骑士 libtprt.so 反 Frida 机制分析与绕过
某气骑士 libtprt.so 反 Frida 机制分析与绕过好久没写博客了,今天打算更新一下,记录一下之前写过的东西,在GitHub上也写了一些小软件,顺便分享一下
本文核心问题:libtprt.so 是通过哪些特征检测 Frida?
方法:对比 frida-server 与 florida-server 差异
一、工具准备最近写了一些小工具,感觉还是挺好用的,所以分享出来:
EasyHookhttps://github.com/RytterMohn/EasyHook
EasyHook 是一个运行在 Windows 桌面端的 Android Frida 脚本 IDE,支持脚本管理、代码编辑、Android 设备 连接、进程选择、Attach/Spawn 注入、运行控制和日志输出,让 Frida 脚本无需手写 Python 启动器即可快速执行。
UsbDetectionBypasshttps://github.com/RytterMohn/UsbDetectionBypass
隐藏 Android 应用内 USB 连接与 USB 调试检测信号的 LSPosed/Xposed 模块。
E ...
Android逆向学习(十一) IDA动态调试Android so文件
Android逆向学习(十一) IDA动态调试Android so文件一、 写在前面这是吾爱破解论坛正己大大的第12个教程,并且发现一个神奇的事情,正己大大的教程竟然没有第11个,感觉很奇怪
写这个博客的主要原因是希望提供一种新的解法,并且记录自己android逆向学习的过程,所以本博客会有很多实际操作的方法,喜欢的话可以点个免费的赞
我的操作系统还是用的linux,windows也可以,流程也基本是一样的
二、课程目标了解so加载流程,IDA开启动态调试,SO的防护手段。
三、课程内容1. android中so文件的加载直接看源代码:https://android.googlesource.com/platform/libcore/+/15d8280/luni/src/main/java/java/lang/System.java
可以简单了解调用so文件的流程:
Java 层 → System.loadLibrary → Runtime → VM ClassLoader → linker(android_dlopen_ext) → mmap so → 解析 ELF → JNI_O ...
最新版某气骑士分析记录-绕过某讯的防御dump内存并解密存档
最新版某气骑士分析记录-绕过某讯的防御dump内存并解密存档前段时间想找一个能简单打发时间的小游戏,于是就想到了元气骑士,但是元气骑士的旧账号在另一个手机上,那个手机不在身边,但是我又不想重头开始玩,作为网安学生,于是有了自己逆向的想法。
逆向分析首先逆向一下元气骑士的apk包,一眼看到这是一个unity开发的游戏,然后同时看到的还有libijiami的so文件,说明这是一个使用爱加密的壳,这个il2cpp也必要逆向了,必然是加了密的:
如果想要拿到未加密的libil2cpp,一个可行的方法就是去内存找,因为代码加载的时候,必然是从内存中加载出去的:
通过万能的github,我找到可以扒内存的apk,并且还能自动fix ELF:
然后通过这个方法可以扒出来libil2cpp.so,but,等俺使用il2cpp dump的时候,发现解析不出来
完蛋,发现global-metadata.dat是加密的,所以需要用点其他手段,想办法解出来,使用frida对应用先attach一下看看:
MD,炸了,说明有frida检测,还能怎么办,接着搞呗,先看看加载了哪些so库:
因为我用的frid ...
Android逆向学习(十) IDA逆向编辑Android so文件
Android逆向学习(十) IDA逆向编辑Android so文件一、 写在前面这是吾爱破解论坛正己大大的第10个教程
native code在我之前的博客中讲到过,所以这里就不讲了
简单来说,native code就是在android中使用c++或c语言进行开发
这样的话会给逆向带来一定的难度,所以本博客就是介绍如何解决这个问题
使用到的工具有:
vscode
IDA pro 9.0
二、 任务目标打开挑战7,可以看到这次的任务是要打开这个大门,但是我们是不知道密钥的,所以可以明确我们的任务就是想办法获得这个密钥。
三、 实现方法首先分析第七关的代码:
可以发现调用了lib中so文件,然后我测试用的手机是红米k30su,架构是arm64,所以就选择arm64-v8a文件夹下面的so文件
之后通过ida打开这个文件,查找名称为check的函数
大概就可以判断出check是进行判断的函数,只要对这个进行修改就可以了:
然后观察代码的样子,(这是我做完题目后又回过头写博客的,所以跟原版有点不一样,就是v7=strcmp(v6,v5) == 0可能本来是1来着)
我的第一个想法就是 ...
Android逆向学习(九) Xposed快速上手(下)
Android逆向学习(九) Xposed快速上手(下)一、写在前面这是吾爱破解正己大大教程的第九个作业,然后我的系统还是ubuntu,android测试机器用的是已经root的Redmi K30su。
上个博客介绍了xposed的配置方法和简单举例,本博客主要讲解关于xposed的其他用法。
二、任务目标实现学习使用xposed常用API,并上手尝试,查看效果,了解xposed基本功能
本次博客量大管饱
三、实现方法Xposed常用API这些hook的实例来自于正己大大给出的apk中的com.zj.wuaipojie.Demo文件,可以通过APKLab逆向得到具体信息,APKLab的使用方法可以自行google或者看我的第一篇博客。
APKlab解码之后的代码是:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283packa ...
Android逆向学习(八)Xposed快速上手(上)
Android逆向学习(八)Xposed快速上手(上)前言xposed是一个用来hook的工具,简而言之,通过替换/system/bin/app_process程序控制zygote进程,这样的话,app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程以及创建的Dalvik虚拟机的劫持。
看起来有点烧脑是不是,没关系,会用就行!
之前的博客中我们讲解了frida这个框架(个人比较喜欢用这个来分析),但是一个问题是frida框架需要通过电脑端进行控制,也就是我们需要在电脑端运行python程序,然后通过这个程序进行hook。
如果说我们想要长久的使用一个hook程序,也就是不使用电脑也能hook,frida是很难实现的,但是xposed可以实现,只需要编写好插件,xposed就能根据这个插件长久的执行hook操作,不需要再使用电脑连接。
不过xposed现在已经不再支持最新的系统,所以本章节在手机端主要用到的是Lsposed框架。
原理首先讲解一下xposed原理,这就要涉及到android的基本的原理。
Dalvik 是 Andr ...
Android逆向学习(七)绕过root检测与smali修改学习
Android逆向学习(七)绕过root检测与smali修改学习一、写在前面这是吾爱破解正己大大教程的第五个作业,然后我的系统还是ubuntu, 这个是剩下作业的完成步骤。
二、任务目标现在我们已经解决了一些问题,现在剩下的问题有
hash校验需要解决
关于root检测的
关于与smali学习的
1.解决hash校验的问题老样子,我们先查看hash校验的代码,看一下这个代码的逻辑
直接把java代码给粘贴过来
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859public final boolean check_Hash(Context context) { String apkPath = getApkPath((Context) this); FileInputStream fileInputStream = null; try { ...
Android逆向学习(六)绕过app签名校验(上)
Android逆向学习(六)绕过app签名校验(上)一、写在前面这是吾爱破解正己大大教程的第五个作业,然后我的系统还是ubuntu,建议先看一下上一个博客,关于动态调试的,因为我这才发现动态调试是真的有很大用处,然后我们开始今天的教程(拖更很久了,刚保研完就被老师拉着开始做项目,抽空出一期博客,这一节博客问题其实挺多的,如果有不对的地方请指出,不胜感激)
二、任务目标
破解签名,使程序可以正常运行
三、实现方法1. 破解签名防止闪退我们先简单看一下这个反编译之后的java文件
这里有个check,以及system终结的一个代码
解决方法具体有两种,一种简单的方法就是直接更改函数的返回值,让他只返回true
我们分析一下checkSign的代码
最主要就是修改这个地方,把false改成true
我们发现areEqual调用后有一个分支,就说明改变这个分支就可以了
我们直接修改smali代码后就是这样的
然后我们就可以看到这个页面是什么样子的了
然后还有一种方式就是我们动态调试一下,然后我们直接改变这个hash值
就是这个hash值,这个就是这个软件原来的hash,因为我们对 ...
Android逆向学习(五)app进行动态调试
Android逆向学习(五)app进行动态调试一、写在前面非常抱歉鸽了那么久,前一段时间一直在忙研究生保送的事情,现在终于结束了,可以继续更新android逆向系列的,这个系列我会尽力做下去,然后如果可以的话我看看能不能开其他的系列,当然这就要看我以后忙不忙了,废话少说我们开始今天的学习,动态调试
对了,关于之前smali2java插件的bug,已经和开发者联系后修复了这个bug,感谢开发者大大的重视
二、任务目标进行动态调试,获得对应的密钥
三、动态调试我们进行动态调试的话首先要添加上这个权限
添加上这个权限后我们才可以进行动态的调试
然后进行打包后得到apk,之后将apk移动到jeb中去(直接拖动就可以)
先开启开发者模式,就是对着版本号点击10下,就可以开启开发者模式了
之后使用adb进行调试
因为在上一期中我是改名成为了东北往事,所以命令是这样的
adb shell am start -D -n com.zj.dongbeiwangshi/.ui.MainActivity
但是!这样运行是有问题的,我改了好久才发现这个问题,就是通过adb启动的话是会连接失败的,所以我选 ...

