gal2xy's blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友链
  •   
  •   

从案例中学习unidbg的使用(三)

一、引言目标 APK:right573.apk 目标方法:com.izuiyou.network.NetCrypto.sign 目标方法实现:libnet_crypto.so 本篇将开始讨论补环境。 二、任务描述jadx反编译apk,得到目标函数 sign 代码如下。 12345678910111213141516package com.izuiyou.network;...public cla
2024-12-05
Unidbg
#Unidbg

从案例中学习unidbg的使用(二)

一、引言目标 APK:sinaInternational.apk 目标方法:com.sina.weibo.security.calculateS 目标方法实现:libutility.so 二、任务描述jadx反编译apk,得到目标函数 calculateS 代码如下。 1234567891011121314151617181920212223242526272829303132333435363
2024-12-05
Unidbg
#Unidbg

从案例中学习unidbg的使用(一)

一、引言目标 APK:lvzhou.apk 目标方法声明所处的 Dex:target.dex(见参考链接)。样本在 JAVA 层做了加壳。 目标方法:com.weibo.xvideo.NativeApi.s 目标方法实现:liboasiscore.so 二、任务描述使用 JADX 反编译 target.dex,找到 NativeApi 类,其中的s方法就是本篇的目标。 12345678910111
2024-12-05
Unidbg
#Unidbg

Unidbg入门介绍

一、unidbg介绍1.1 unidbgunidbg 是一个基于 unicorn 的逆向工具,可以黑盒调用安卓和 iOS 中的 so 文件。这使得逆向人员可以在无需了解 so 内部算法原理的情况下,主动调用 so 中的函数,让其中的算法“为我所用”,只需要传入所需的参数、补全运行所需的环境,即可运行出所需要的结果。及由此衍生的辅助分析、算法还原、SO 调试与逆向等等功能。 对于Android逆向来
2024-12-05
Unidbg
#Unidbg

Frida特征检测

frida检测与防护端口检测检测 frida-server 默认端口 27042 是否开放。 12345678910111213bool detectByDefaultPort(){ struct sockaddr_in sa; int sock = socket(AF_INET , SOCK_STREAM , 0); memset(&sa, 0, sizeof
2024-07-29
Frida
#Frida

Frida Native层Hook学习笔记

Native层的hook如何hook知道函数地址就可以hook和主动调用 如何获取函数地址 利用函数名,通过Module.findExportByName函数获取函数地址。 通过Module.findBaseAddress函数获取所在库函数地址,然后加上函数偏移量即为函数地址。 hook示例12345678910111213141516171819const libName = 'li
2024-07-29
Frida
#Frida

Xposed插件开发

一、Xposed介绍1.1 引言frida 和 objection 对于App 的修改仅仅只是单次性的,App重启之后,我们就又需要手动使用 frida 或 objection 对 App 进行注入。不过我们有 Xposed 框架,基于此框架开发插件,则可以对 App 实现永久性修改。 1.2 Xposed原理Xposed 本质上是通过替换 Android 系统中的 zygote (或者说是 zy
2024-07-29
Xposed
#Xposed

去除反混淆后程序中的冗余汇编代码

一、前言在之前去混淆的过程中,发现去混淆的程序中,伪代码与原程序伪代码相差无几,然而如果仔细观察汇编代码的话,可以发现存在较多的冗余代码,即混淆过程中产生的垃圾代码。那么如何去除这些冗余汇编指令呢? 二、基于Liveness Analysis的想法先给出我们需要解决一个例子(这是一个虚假控制流混淆中的部分代码,其中标*的为冗余汇编指令): 12345678910111213141516171819
2024-07-07
LLVM and OLLVM
#Liveness Analysis

ollvm反混淆

一、前言此篇文章只讲思路,具体代码实现见https://github.com/gal2xy/AngrDeobfuscator。 二、去混淆2.1 去指令替换混淆指令替换一般可以使用llvm的pass进行优化,使用llvm-dis反汇编再使用opt的-o3等级优化。或者使用Miasm框架进行匹配,然后优化处理即可。 2.2 去字符串混淆没怎么了解字符串混淆这一块,就贴一下随风而行aa大佬的文章内容。
2024-06-25
LLVM and OLLVM
#OLLVM #去混淆 #angr

ROP入门

ROPROP(Return Oriented Programming)即返回导向编程,其主要思想是在 栈缓冲区溢出的基础上,利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程。 gadgets 通常是以 ret 结尾的指令序列,通过这样的指令序列,我们可以多次劫持程序控制流,从而运行特定的指令序列,以完成攻击的目的。 返回导向编程这一名称的由来是因为其
2024-06-16
Reverse
#ROP
1234…14

搜索

Hexo Fluid
总访问量 次 总访客数 人