文章总结: 文章记录安服人员测试某金融APK的完整过程:初始抓包遇SM2+SM4动态加密,通过获取debug包并利用AI工具辅助逆向分析,使用jadx+MCP+Trae+Kimi/Gemini组合定位加密逻辑并生成Frida脚本。过程中遭遇Frida反检测、脚本报错、Json转Map异常、spawn模式导致登录态丢失等问题,最终通过attach模式、强化URL获取机制及多层反检测绕过(Java层清理、Native混淆、内存重定向、线程伪装等)成功hook明文参数并篡改请求,完整绕过金融级防护体系。 综合评分: 72 文章分类: 移动安全,漏洞分析,安全工具,实战经验,AI安全
安服web崽白嫖AI硬刚金融级APK,原地封神移动安全砖家
原创
kingOfDuck kingOfDuck
千寻安服
2026年2月11日 09:00 四川
(拍桌狂吼)兄弟们!今天必须把这破事唠透了!甲方爸爸前天甩过来个“金融级安全”的apk,微信甩句“兄弟帮忙测下”,我当场笑出声——呵,又一个觉得加固=安全的憨憨?结果打开yakit抓包三分钟,我直接瞳孔地震!🤯
抓包抓到想删库跑路
yakit挂上!代理开整!好家伙,流量全是乱码!不是Base64那种装模作样的,是真·天书级加密!SM2非对称套SM4动态密钥。
跪求开发の卑微实录
我焯!金融级加密是吧?纯纯恶心人!一眼就瞅出来是非对称+对称的动态密钥,抓包抓了个寂寞,全是乱码鬼画符(放张抓包乱码图你们自己看)。但爷是谁?逆向界泥石流、Hook界战神!
反手就是一个
没招了,脸?早TM扔进垃圾桶了!直接五体投地、膝盖磨穿地板,跪求开发老哥赏口饭吃——给个 debug 包!好说歹说,总算给扔过来一个没加固的包,算是留了条活路,不然真得在 OLLVM 和 Dex2C 的炼狱里原地升天。结果我小心翼翼试探一句:“那个……测试期间能不能把流量加密临时关一下?”开发老哥眼皮都不抬,嘴比 ARM TrustZone 还硬:“包给你了,解密?自己悟。”行啊!你狠!
不过爷干的就是“从字节码里抠逻辑”的活儿——
没有文档?反编译就是文档!
没有注释?交叉引用+调用链追踪就是注释本注!
你不给密钥生成流程?那我就从 Cipher.getInstance() 一路往上扒到 Application.onCreate()!
祭出赛博菩萨——AI全家桶
jadx打开!mcp插件拉满!Trae里塞满Kimi+Gemin
重点来了!都TM给我支棱起来——mcp.json 配置直接焊死在工作流里!咱用的是 stdio 模式,说人话就是:MCP 客户端 和 jadx_mcp_server 俩货通过标准输入输出(stdin/stdout)直接“嘴对嘴”传话;然后 jadx_mcp_server 再转头用 REST API 跟 Jadx 本体勾搭,把反编译数据实时喂出来。这架构一吃透,你就懂了 MCP 的底层逻辑——中间层解耦 + 协议桥接,根本不是玄学!
以后甭管是 Ghidra-MCP、Frida-MCP 还是啥新玩意儿,只要套这个范式,爷闭着眼都能配!不会?抄!别问!问就是“基础不牢,地动山摇”,老子没空带幼儿园!
源码扒了,配置也弄好了,下一步干啥?当然是白嫖AI啊!咱安服崽主打一个不花一分钱,办最大的事!trae里装个codebuddy,左手开Kimi,右手挂Gemini,Gemini排队就嫖Kimi,反正总有一个能薅到,老子直接左右开弓!让这俩人工智障给爷爷分析加密逻辑,一个劲儿地问:”小爱同学,这APP咋加密的?快给爷爬出来!”
真不是吹,这AI有时候是真他娘的灵性!爷刚连上 jadx-mcp-server,它立马就开整——先一把梭哈把所有类列表薅出来,接着“加密”“cipher”“AES”关键词哐哐一顿扫,比老子熬夜翻代码快十倍!
等它把加密逻辑扒得明明白白,爷直接拍桌下令:“给老子写个 Frida 脚本!要能 hook 出明文参数那种!”
话音刚落,脚本唰一下就甩脸上——这哪是AI?这分明是赛博义父啊!(附图:AI操作猛如虎,建议各位老弟直接膜拜)
大型翻车现场:脚本报错+Frida被检测,边骂边修!
脚本写出来了,跑起来试试——嘿,明文参数是hook出来了,但没法直接改包,这不扯犊子吗?看得见摸不着,跟甲方画的饼一样香但噎死人!
更离谱的还在后头:Frida刚注入不到三秒,APP直接弹窗警告:“检测到高危行为!” 风险评分直接拉爆到100%,红得跟过年挂灯笼似的!
没招了,只能把AI按回键盘上继续当牛做马!
“给老子加反检测!现在就加!加到它亲妈都认不出这是Frida!”
一开始那傻AI改得跟筛子似的,一跑就崩,检测照样爆红——气得爷直接开骂:你这写的叫反检测?这特么叫“高举双手走进风控雷达正中心”!
Hook 点没隐藏、so 名称带 frida 字样、线程名还是默认的 “FridaWorkerThread”,内存里还留着一堆特征字符串——
不是在绕过检测,是在给对方的威胁情报库免费投稿!
一顿狂喷+疯狂调教之后,总算开窍了!
直接梭哈全套隐身套餐:
Java层?Hook抹干净!
Native层?符号全混淆!
内存映射?重定向安排上!
网络层?流量伪装成正常用户!
包管理?签名、证书、安装来源统统伪造!
Debug检测?绕!
Root检测?骗!
Xposed/EdXposed/LSPosed?统统假装不存在!
系统调用?拦截+伪造双管齐下!
连线程名都改成“com.android.systemui”这种正经名字,藏得比地下党还深!
现在这脚本跑起来,静如老狗,稳如泰山——甲方的风控系统怕是做梦都想不到,它眼皮底下早被爷插了根天线!
反检测刚焊死,新问题立马拍脸:怎么高效改包?参数能看不能改,跟隔着玻璃看自助餐一样——饿死!没辙,只能把脸皮叠三层,硬着头皮去蹭团队里那位二进制战神的成品 Frida 脚本。人家那脚本,native inline hook + 内存 patch + 请求篡改一条龙,稳得一批。拿回来让 AI “照着改改”AI 一顿操作猛如虎,改完直接—报错堆栈长得比老子双十一剁手后的花呗账单还吓人!草,这哪是改脚本,这是给原版脚本办了场葬礼!
草!Json 转 Map 直接炸了——这写的什么💩代码?格式对不上?字段缺失?还是类型乱成一锅粥?气得我反手把锅甩给 AI:“快!给爷查哪儿崩了!”
结果人家三秒定位两个致命问题:
decryptResponse() 返回值类型写错了——你当 Java 是 JavaScript 啊?Object 当 Map 用?JVM 直接给你表演一个 ClassCastException 空中转体三周半!
转发服务器压根没启动!本地代理端口监听都没开,还指望流量自动飞过去?梦里啥都有!
一顿狂改,改完再跑——终于不报错了!
虽然过程像在屎山里挖金子,但至少现在,数据流能稳稳从解密 → 转换 → 转发 走通了。
还有个坑!Frida 默认用 spawn 模式?草!每次 hook 都直接 kill + restart 应用——登录态清空、设备重新绑定测个加密逻辑跟跑马拉松似的。但咱好歹是吃过 OLLVM、喝过 Dex2C、在 mTLS 里泡过澡的老油条,这点细节还能踩不透?
立马切到 attach 模式,直接挂到已运行的目标进程上,内存状态原封不动,token 稳如泰山,Hook 一打,数据就来!虽然咱翻车频率高得像自动打卡机……但至少这次,没再被 spawn 模式送进 ICU
终于能hook到明文参数了!但是…URL还是拿不全?!气得老子把AI按在键盘上摩擦:”你好好反思!URL都拿不全你算什么安全专家?”查来查去,原来是类名硬编码、线程映射失效,还有没hook OkHttp3原生类底层,一顿修改,增强URL获取机制,终于搞定了!
封神时刻:完美跑通,全程骚操作不藏私!
所有坑都踩烂了,所有雷都排干净了——再来一发终极测试!我焯!!!成了!!!POST 请求稳稳落入 Yakit 代理,响应体毫秒级回显;
报文结构自动解析,JSON 层级清晰得像 API 文档;
查询结果直接甩脸上——明文、签名、时间戳、会话 token,一个不落
全程丝滑如德芙,零重启、零报错、零风控弹窗,——甲方那套“金融级防护”?在爷这套组合拳面前,脆得跟超市五毛一包的薯片一样——一捏就碎!
监制丨铁子
策划丨Cupid
美工丨molin
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:千寻安服 kingOfDuck kingOfDuck《安服web崽白嫖AI硬刚金融级APK,原地封神移动安全砖家》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论