- 博客(85)
- 收藏
- 关注
原创 程序员跑路了,李老板要求把App换个图标和名称
由于apk修改起来太容易了,所以程序员gg们会在里面埋更多的坑。加壳 反调试 混淆 前面还有无数困难等着你。李老板决定还是招个程序员鼓励师比较靠谱。非真空不宜谈禅,非真旷不宜饮酒。
2025-06-03 10:24:54
566
原创 结合AI对WhatsApp的分析 (一)
再强调一遍,以后的程序员只会有一种,利用辅助AI工具的程序员。不会使用AI的程序员一定是要被淘汰的。早用早享受,不用担心AI会替代你,AI的出现只会让你的工作更加高效。以此为理由找李老板提加工资。1:ffshow这台机器不会取代我们任何一个人。
2025-03-14 10:04:46
314
原创 初试js反混淆
js反混淆基本上就是一次模版批量替换的套路,以前我们仅仅依赖查找替换,然后高级一点就是正则替换,现在有了AST解析,就更加灵活了。后面咱们在继续介绍一些高阶的用法。1:ffshow角弓玉剑,桃花马上春衫,犹忆少年侠气。
2024-11-14 17:38:06
1403
原创 安卓高版本安装系统证书 HTTPS 抓包 - 终极解决方案
有时候神奇的技术就是一层窗户纸,捅破了,你会惊叹,原来这么简单。掌握了新的方案之后,未来就可以举一反三了。参考1:ffshow着眼总是浮游 观化颇领幻趣。
2023-03-08 10:01:39
3630
原创 代码还原小试牛刀(一):魔改的MD5
首先要习惯看Arm汇编,一步一步单步调试,然后熟悉寄存器的变化。特别对一些关键数字要敏感。要掌握Unidbg的基础调试命令。常见的加密算法要熟悉一下,在开发环境里多调试几遍,熟悉它的算法流程。1:ffshow多方分别,是非之窦易开;一味圆融,人我之见不立。
2023-03-06 12:01:55
1870
原创 Unity IL2CPP 游戏分析入门
为了抵抗Il2CppDumper,敌人变狡猾了,所以作者推出了更帅的现在套路这么多,技能得不断更新才能跟的上,又要掉头发了。变来变去的都是外围,万变不离其宗的还是arm汇编,最后的定位还是需要你的汇编功底。网络游戏改存盘是没用的,一联服务器就把你覆盖了。富贵故如此,营营何所求。
2022-11-15 07:22:56
4856
1
原创 某小说App __sig3签名分析
刚拿到这个样本的时候我也疑惑了一下,虽然他绕了好几个圈子,但是很方便的可以定位到atlasSign。正以为大功告成的时候,才发现atlasSign的结果是48位,和抓包结果不符。这时候就得相信自己了,首先atlasSign被触发了,说明大概率做 __sig3 的时候被调用了。那么打印堆栈就是最好的解决方案了。营己良有极 过足非所钦。
2022-10-11 18:56:41
2130
原创 某车联网App 通讯协议加密分析(四) Trace Code
忙活了老半天,其实最后只做了一下修复so文件头。严格意义上只改了3个字节。改3个字节很简单,分析并知道如何改,再哪改,才是我们的重点。逐渐缩小范围来定位。还可以通过不同的入参来TraceCode,对比一下更有助于分析算法。1:ffshow纵浪大化中 不喜亦不惧 应尽便须尽 无复独多虑。
2022-09-21 12:03:40
1921
1
原创 某车联网App 通讯协议加密分析(三) Trace Block
何以解忧,唯有Trace。能下断点Debug的App,一定就逃不出手心了。所以现在App的关注点都是抵抗Debug,抵抗下断点。结果不对,就和正确的结果去对比流程,跑的和你一模一样,总没毛病吧?1:ffshow凡说之难 在知所说之心 可以吾说当之。
2022-09-13 09:12:37
1330
原创 某车联网App 通讯协议加密分析(二) Unidbg手把手跑通
unidbg补环境实际是考验你的Android编程能力。谷歌一下关键字 unidbg + 报错信息,一般都有同道趟过坑。什么?你打不开谷歌?我现在劝你改行还来得及吗?好味止园葵,大欢止稚子。平生不止酒,止酒情无喜。
2022-09-08 14:54:45
2334
原创 某车联网App 通讯协议加密分析
脱壳方法千千万,重点还是Dump Dex。加壳应用不要怕,大概率脱完壳之后就都是线索了。不加壳的App才是真的可怕。脚本没有任何输出,不一定是位置找错了,还有可能是脚本的报错你没有看到。App崩了,换手机是有效的,虽然这次打脸了。针对这个样本,IDA还告诉我们,so里面的函数入口的代码也被抽取了,要分析这个so,估计还得Dump so。只有去穿越和反思痛苦,才能得到更高的思想深度,没有捷径。...
2022-08-30 17:37:37
1028
原创 找回消失的密钥 --- DFA分析白盒AES算法
将密钥进行白盒化处理,融入到整个加密过程中,使密钥无法跟踪还原,保障密钥安全。简单的说,就是你可以明明白白的调试整个算法过程,怎么看都像是AES算法,但却是怎么也找不到密钥在哪里?...
2022-08-17 14:14:59
3239
1
原创 寻找消失的类名
为了抵抗分析,App能想的办法都想了。只能比谁藏的更深,找的更快了。总把平生入醉乡httpshttpshttpshttpshttpshttps。
2022-07-22 14:49:51
3122
1
原创 某问答社区App x-zse-96签名分析
今天我们的目标是某问答社区App的 x-zse-961:main版本: v8.21.1常规做法是jadx打开apk,然后搜索x-zse-96。神奇的是,居然没有结果,这就有点意思了,App给我们加戏了,把一些明显的字符串做了加密隐藏。观察一下,签名有两个共性1、 都是 1.0_ 开头2、 后面接着的很像Base64那就先从hook开头开始吧。继续用大海捞针法来捞开头。来跑一下。幸运的是,我们这次猜对了开头,也猜对了结果。下面的目标就是这个 com.zxxxu.android.net.d.i.e 了点这个e
2022-06-23 10:12:58
1049
原创 Frida Stalker 是什么?
李老板:奋飞呀,最近被隔离在小区里,没啥可干的呀。奋飞:看小说呀,量大管饱。我们今天的目标就是某小说App v2021_09_53App请求小说内容的时候没有加签名,但是返回的数据是加密的。那么我们先去jadx搜索一下这个url(novel-content),看看有没有发现。结果是没有收获。那么很有可能这个url不是在apk中写死的,而是某个请求返回的。Charles可以搜索数据包,我们从返回包里面找到了这个url。那就好办了,看看是哪块代码去解析了这个 content_url ,我们在jadx中搜索“co
2022-06-17 07:47:03
3203
2
原创 某小说App返回数据 解密分析
李老板:奋飞呀,最近被隔离在小区里,没啥可干的呀。奋飞:看小说呀,量大管饱。我们今天的目标就是某小说App v2021_09_53App请求小说内容的时候没有加签名,但是返回的数据是加密的。那么我们先去jadx搜索一下这个url(novel-content),看看有没有发现。结果是没有收获。那么很有可能这个url不是在apk中写死的,而是某个请求返回的。Charles可以搜索数据包,我们从返回包里面找到了这个url。那就好办了,看看是哪块代码去解析了这个 content_url ,我们在jadx中搜索“co
2022-06-13 12:42:17
2937
1
原创 appdbg: 一个伪装成调试器的虚拟机
一、目标现在的App都不安分,Java层去和Native挤眉弄眼,Native层又喜欢和Jave去暗通款曲。想安安静静的分析一个so太难了。有没有可能把App在Pc上都模拟执行起来,这样Native再去勾搭Jave层的时候就可以节省很多补环境的工作了。appdbg就是这样一个 伪装成调试器的虚拟机。https://github.com/asmjmp0/appdbg作者的介绍是:make it possible to run android dex file in original Java V
2022-05-30 16:53:08
987
原创 在Frida里面做http请求: 聊聊jar to dex
一、目标李老板: 奋飞呀,你hook这个App之后拿到token,然后上报给我的服务器好不好?奋飞: 木问题。二、步骤gumjs-http在frida里面做http请求,最根正苗红的必须是 gumjs-http ,大胡子出品,有保障https://github.com/frida/gumjs-http可惜的是我没有搞明白,李老板催的紧,木有时间去慢慢研究了。先搞个Server测试子曾经曰过: 人生苦短,快用Python。不过最近发现go更适合我们这些C/C++老江湖。先撸个测试的Http
2022-05-25 11:46:24
1983
原创 手把手教你搭个Frida + Sekiro Rpc框架
一、目标联手机签名是个比较取巧的方案,之前我们介绍过android连真机签名公网ip更新方案http://91fans.com.cn/post/androidipsend/Sekiro + Xposed 签名解决方案http://91fans.com.cn/post/sekiroone/现在frida用的比较多,并且Sekiro也升级了新版本,我们今天就来手把手教你搭个 Frida + Sekiro Rpc框架。二、步骤我们以这个手机号加密算法为例http://91fans.com.cn/
2022-05-22 16:00:32
2279
3
原创 某小视频App v10.x 手机号加密算法分析
一、目标今天的目标是 手机号加密,app变化太快,以前都是明文的。TIP: 某小视频App v10.2.30.24518二、步骤字符串匹配也许是手机号都是1xx开头,也许是这个加密字符串有个特征头。 反正经过我们观察,发现它大概率是 3sCt 开头。而这种加密算法大概率是在Native层去做的。所以我们首选是去 hook_libart 里面的 GetStringUTFChars 和 NewStringUTF。结果木有结果。Base64这个 3sCt 开头的字符串,很像Base64的结果
2022-05-09 10:19:23
1061
原创 浅谈加密算法 aes
一、目标搞了这么多期签名和加密解密,今天我们聊聊高大上的东西: 加密算法。加密算法我们整体可以分为:不可逆加密算法和可逆加密算法。不可逆加密算法常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512。他们的特点是,不能从加密后的结果解密出原文,主要用于校检数据的一致性,防止篡改数据,我们之前分析的大部分sign签名都是不可逆算法。也叫散列算法或者哈希算法。可逆加密算法可逆加密算法就是加密之后的密文可以解密出原文。又可以分为:非对称加密和
2022-04-07 18:50:39
10858
1
原创 手把手教你从Apk中取出算法
一、目标李老板: 奋飞呀,我最近从Apk里面跟踪到一个算法,代码清晰,但是我不会java,把他翻译成python貌似挺费劲的,有没有轻松省力的方法呀?奋飞: 有的呀,给我加工资,我来翻译。某电商App v10.4.5, 升级之后老有小伙伴说他的sign算法变了,其实他就是做了点小动作。sign参数没有动,uuid是明文去做签名,但是抓包请求里面找不到明文uuid,而是藏在ep参数里面,做了一次加密。今天我们就来手把手教大家扣出这个加密算法。java老艺术家就不用往下看了,你们都会。二、步骤编
2022-03-25 08:40:01
1501
原创 Trace大盘点
一、目标李老板: 奋飞呀,最近老听别人说Trace一下,啥是Trace呀?奋飞:老板,先把上次的加班费结算一下。Trace就是在更高抽象层次上去追踪程序的运行流程。二、JNI_Tracejnitrace在Android下混饭吃,首推的就是jnitracehttps://github.com/chame1eon/jnitrace老牌,经典,信息全,携带方便jnitrace -l libnative-lib.so com.example.myapplicationTIP: -l 是监控的s
2022-03-16 12:09:27
9525
原创 不能Hook的人生不值得 jsHook和模拟执行
一、目标李老板: 奋飞呀,上次分析的那个App http://91fans.com.cn/post/bankdataone/ 光能Debug还不够呀, 网页中的js也用不了Frida,我还想 Hook它的函数 ,咋搞呀? 再有App可以RPC去执行签名,这个js我如何去利用呀?总不能代码都改成js去做请求吧?奋飞:老板呀,你一下提这么多要求,不是明摆着要我们加班吗?这次加班费可得加倍。二、步骤最简单易行的js Hook - console.log我们的目的是Hook这个 encryptSm4EC
2022-02-28 09:08:37
1321
原创 某神奇App data加密算法解析(一)
一、目标李老板:奋飞呀,我遇到一个超级牛掰的App,它请求的时候有个data参数加密,用尽了你介绍的所有的方法,都找不到它是如何加密的。奋飞:子曾经曰过,老板的嘴,骗人的鬼。有这么牛掰的App,那么我们这帮兄弟早就失业了。某神奇App v10.1.0点 社区-> 随便打开一篇有评论的文章今天的目标就是这个 data二、步骤搜索特征字符串目标是data,所以我们第一个搜索 "data"一共有130多个结果,开始一个一个点开分析了,逆向木有那么酷,有很大一部分是苦力活。比如这种 ba
2022-02-21 09:39:00
929
原创 某新闻App sign签名算法解析(一)
一、目标李老板:奋飞呀,过完年了,该收心了,开始搬砖了。你看看我,前两天就开始学习这个app的调试,为啥人家视频里可以ida调试? 而我ida一挂上就卡死呢?奋飞:这个app加壳了,直接上ida肯定被壳发现了。最起码也得刷个反调试的rom或者搞点反调试的手段吧。今天我们先搞点简单的。分析某新闻App的通讯协议,RPC调用sign签名。某新闻App版本 v8.3.0BlackDex脱壳frida rpc调用二、步骤抓个包先掰着手指头数了数,32位。我去,高度怀疑是传说中的M
2022-02-09 09:18:11
1158
原创 OkHttp 通用抓包方式分析,以某小视频App为例
一、目标太难了,这年头抓包越来越难了,某小视频更新频发,我们之前屏蔽 QUIC 的方案貌似也失效了。幸好我们还有 OkHttpLogger-FridaTIP: v9.10.10.22596着急的同学可以直接拉到后面,加入 知识星球 取js吧。有理想的同学建议好好研究下原理,下次就可以自己适配了。二、步骤原理分析在 某小视频App v8.x 签名计算方法(一) 先从抓包说起 这篇文章里面我们分析了 v8.0 使用 OkHttpLogger-Frida 抓包的方法。那么什么类型的App适合用 O
2022-01-24 09:53:38
3530
原创 某电商App sign签名算法解析(六)
一、目标sign的入参是加密的,不过带有很明显的两个特征,一个是 == 结尾,再一个就是 R4iSK 开头。有这两个特征,我们就可以入手了。二、步骤先从Base64入手== 结尾的数据大概率是Base64,我们先Hook下// Base64var Base64Class = Java.use("android.util.Base64");Base64Class.encodeToString.overload("[B", "int").implementation = function(a,
2022-01-14 08:08:11
3625
2
原创 某电商App sign签名算法解析(五)
一、目标李老板: 奋飞呀,据说某电商App升级了,搞出了一个64位的sign。更牛的是入参都加密了!奋飞:这么拉风,拉出来咱们盘盘。v10.3.2二、步骤32位和64位我们掌握了那么多方法,先搜字符串呢?还是先Hook呢?子曾经曰过:看到32位签名就要想起MD5和HmacSHA1,看到64位签名就要想起HmacSHA256。那就先搞搞java的密码学相关函数:var secretKeySpec = Java.use('javax.crypto.spec.SecretKeySpec');
2022-01-10 09:39:33
1299
原创 某电商App 返回数据加密解密分析(四)
一、目标最近在抓包某电商App的时候发现一个加密数据,它在做通讯地址请求的时候,请求数据做了加密。返回数据中的地址信息也是密文。今天我们的目标就是这个数据的加密解密。App版本: v10.3.0二、步骤分析一下1、数据的结尾是"==",说明是Base64编码,那么我们可以尝试去Hook Base64相关函数,然后打印堆栈。2、返回数据格式是 json,那么我们可以尝试去Hook json相关的解析函数。3、还一个方法就是尝试去搜索 CityName 、CountryName 和 Where
2021-12-29 08:45:13
3077
原创 某A系电商App doCommandNative浅析
一、目标李老板: 奋飞呀,x-sign你都水了好几篇了,一直在Apk里面打转,咱们啥时候分析分析它的so?奋飞: 循序渐进嘛,我们上次刚定位了它的so,今天我们来分析分析。App版本: v4.15.1二、步骤Native层的入口先回忆下这个堆栈[NewStringUTF] bytes:x-signRc Full call stack:dalvik.system.VMStack.getThreadStackTrace(Native Method) tt: java.lang.Thread.g
2021-12-22 16:18:23
5972
3
原创 某A系电商App x-sign签名分析
一、目标前不久(我去,都大半年了)分析过 某二手电商App x-sign签名分析 类成员变量的分析 我们找到了几个伪装成so的jar包。虽然rpc调用ok了,但是它的实际运算过程还是在so里面的。今天我们从它们同族的App来入手,利用Native层字符串定位的方式来定位下在哪个so中去做的运算。App版本: v4.15.1二、步骤特征字符串定位一开始选择的特征字符串是 x- ,后来发现没有 x-sign 好使Interceptor.attach(addrGetStringUTFChars,
2021-12-14 08:57:14
5546
2
原创 某汽车社区App 签名和加解密分析 (二) : Frida Dump so
一、目标App安全的主战场在Native层,分析Native层的so,最趁手的兵器就是Frida和Unidbg了。今天我们的目标是 某汽车社区App v8.0.1 so 的分析。二、步骤特征字符串定位我们在上一篇教程 某汽车社区App 签名和加解密分析 已经定位了,数据加密和解密函数再java层的位置。按照常理来说,这个java类文件中,应该有个 System.loadLibrary(“libxxx”) 来方便我们定位对应的so。可惜的是,这个样本里找不到。原因大概率是脱壳不完整。既然没这
2021-12-08 09:56:47
7215
3
原创 某婚恋App _t 签名分析
一、目标最近也不让加班了,李老板每天早早的就回家,小视频也刷的没意思了。还是好好找个mm正经聊聊吧。今天我们的目标是 某婚恋App的 v11.3.2。二、步骤抓个包_t 参数,看上去像是时间戳加上一个md5(掰指头数了数,一共32位)。jadx搜一搜 _t , 我去,10几万条结果。一时激动,都忘了我的独门秘籍了。这种签名一般会以字符串的方式存入一个map。所以我们应该搜索 "_t"嗯,真香。代码就很清晰了,字符串加上个salt和当前时间,然后做md5。找接口从抓包数据可以看到
2021-11-22 14:23:53
453
原创 某汽车社区App 签名和加解密分析
一、目标稼轩长短句有云:宝马雕车香满路。从此香车美女就成了标配。这不李老板还没聊几个mm,又开始准备换车了。今天我们的目标是 某汽车社区App v8.0.1。二、步骤脱个壳李老板说这个App很拽,貌似是某个企业版的壳,连 Xcube都不好使,调试不了。我们先不管他拽不拽,先用 BlackDex 把壳脱了先。BlackDex提示脱壳成功,但是对应的目录下只有一个dex文件,明显不对还好我们有备用方案,据说 FDex2 脱壳也不错,搞起来。忧伤的是,FDex2说不支持我的手机。 原因是我的系
2021-11-22 14:23:20
2534
原创 如何保护你的代码 - Ollvm(一)
一、目标李老板:奋飞呀,最近的so都混淆的很厉害呀,也没有啥通用的反混淆方法。一点都不好玩,之前你说的 D810 也不是很好使。奋飞:我传你六字真言,打不过就加入。搞不定反混淆,我们搞搞代码混淆,好处多多。可以很好的保护自己的代码搞明白混淆的原理,可以增强反混淆的思路二、步骤下载代码先OLLVM(Obfuscator-LLVM的老家在这里 https://github.com/obfuscator-llvm/obfuscator ,只不过官方仅更新到llvm的4.0。我们使用大神修改的
2021-11-04 08:18:30
922
5
原创 另一个生鲜App 抓包和mfsig签名分析(二) 针对flutter抓包
一、目标拿到App之后,抓不到包是件很令人抓狂的事情。今天我们通过排除法来分析抓包失败的原因,并提供一个通用的 针对flutter抓包 的方案。抓包工具和环境介绍抓包失败的几种原因和对应的解决方案针对flutter抓包今天我们分析的还是 某生鲜App v9.9.59二、步骤抓包工具和环境介绍飞哥手头有两个不同的抓包环境,一台手机是通过手工设置代理到pc上,通过 mitmproxy 来抓包,另一台手机是不需要手工设置代理,通过手机上的 Drony 启动一个vpn,然后PC上用 Charle
2021-10-11 09:06:52
955
原创 另一个生鲜App 抓包和mfsig签名分析(一)
一、目标市面上生鲜App一大堆,买菜也确实是高频次的刚需,这些生鲜App还都有一些有意思的共性:大都加壳了大都不好抓包今天我们分析的是 某生鲜App v9.9.59 的 mfsig 签名。二、步骤上jadx看看这么少的包名和类名,基本可以断定是加壳了。那就先复习下 某酒店App sign、appcode签名解析(二) 脱壳分析BlackDex脱壳脱完壳的结果拖到PC上,赶紧jadx一下,搜一搜 "mfsig"我去,一个结果都没有。二种可能,一是 App有别的道道,mfsig签名
2021-09-30 09:29:08
417
原创 某音乐App 抓包和signature签名分析
一、目标李老板:奋飞呀,最近我想下个歌,现在听歌软件都这么顽固了,包都抓不到?奋飞:抓不到包的原因太多了,咱们得用排除法分析下。某音乐App 10.8.4二、步骤排查协议李老板也跟我们混了这么多期,所以基本排除抓包环境的问题。那么另一个可能就是像某手使用的 quic协议 或者某鱼使用的 spdy协议 了。上jadx搜一下 “quic”,如果搜不到还可以直接试试 quic有6个结果,看来我们的猜测是对的,一个一个结果看过来,第三个结果应该有点猫腻。看上去像是传个协议名称进来。上O
2021-09-24 10:32:02
581
原创 某内容电商App sign签名分析 复习下之前的技巧
一、目标现在内容电商,社交电商,直播电商等等概念多的眼花缭乱,终极目的就一条,卖货给你。正如我们分析他的sign签名一样,套路就一条, jadx + frida这个sign数了数,正好32位,难道是 md5 ?二、步骤上jadx先搜索下 “sign” 记得带上引号。结果只有40多个,而且第二个开上去就有眼缘,点进去看看String a = m7166a(b, map);if (TextUtils.isEmpty(a)) { return null;}map.put("sign",
2021-09-18 09:07:37
728
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人