菜单
个人主页
(当前)
写文章
浏览博文
    
搜索
登录
微信公众号
站点链接
半根蓝白个人主页
CSDN
Github
友情链接
摘繁华个人博客
博文目录
#custom-toc-container
关于Jadx和Jeb 的小问题
BGLB0324
2023年11月5日 03:00
最后发布:2023年11月5日 03:00
首发:2023年11月5日 02:19
25
0
博文分类:
报错记录
博文标签:
版权声明:本文为博主[BGLB0324]原创文章,遵循
CC 4.0 BY
版权协议,转载请附上原文出处链接和本声明。
本文链接:
http://blog.bglb.work/blog/blog-detail/7052
版权
# 关于JADX和JEB的小问题 > 很久没水过技术文啦,最近也刚好遇到点小问题,特此记录 ## 第一个问题 在处理app加密逻辑的时候一直拿不到正确的密文,反复看了反编译出来的代码(如下图)  ```java public static string n(String str, String str2, String str3, Context context){ int h2; // 是不是觉得这个int h2; 很奇怪?没有赋值。 try{ int h3 = h(str2) + 35; String str4 = ....... } ......... } ``` 我需要的是`str4`这个字符串,它是由`str2`切割得到的,按照代码的意思就是`str2`的 第`h2`个到第`h3`个 然后再加上一次字符串 但是 我复现出来之后按照这样去切割出来的数据中前面多了 `4` 个字符 尾巴又少了四个字符 当时就觉得应该是由于字节处理的问题,并没有重视 就直接写死 前后都加了4,就屁颠屁颠拿去测试接口了。 结果结果 接口测试一直通不过,我又去看了请求接口的代码 代码中有提交证书,我又去巴拉巴拉证书,结果搞半天,证书这个问题解决之后接口返回还是不在预期范围内(就很气愤)又重新整理从头开始整理了一下加密流程 确认算法没有问题。 第二天,我找java同事协助,把这段代码拿给他看,他说 这个h2 是不是有点问题,java 这样写是不对的 都没有赋值,我说反编译出来的可能会有点缺失,(第二次没重视这个问题)就让同事帮我跑了一下这个代码,结果和我跑出来的结果是一模一样 也是前面多了四位后面少了四位,我说这 莫非是java虚拟机出问题了,恰好开发人员利用了这个bug? 我遵从相信代码的心里,又去梳理了一边加密流程和证书问题,并且让同事去尝试加载证书去访问,结果依旧是验证不通过! 反复验证之后,我确定这个问题绝对是我没有处理好证书和加密流程,但是代码又不会骗人,开始挠头了,开始右键刷新桌面 看到一个没有图标的`jeb.bat`文件 抱着试一试的心态打开apk,找到这段代码 看到的一瞬间 我开始激动了。  ```java public static string n(String str, String str2, String str3, Context context){ int v1 = h(str2); int v2 = v1 +35; ........... } ``` 这么离谱的问题我都能遇到,我的心情激动有崩溃,两天时间就在这浪费了。 不过仔细想想也是 `运算级` 和 `值引用` 的问题确实在反编译过程中很难处理, 回顾了一下,之前在使用一个 `js` 反混淆的脚本时也遇到过这样的问题,因为优先级的问题,导致反编译出来的代码结果不对应,后面也和相应的作者提了`issue`. ## 第二个小问题 这个问题其实和这两个工具没有关系,报文中会携带设备ip地址 我为了方便 就直接取了`0.0.0.0`, 但是服务器就是验证不过,随手改成了 `192.168.1.1` 就通过了,怀疑是服务器做了校验,设备ip是 `0.0.0.0` 时,校验请求ip是否为`ipv6`, 因为我挂得代理ip肯定不是`ipv6`。
点赞
0
打赏
暂时没有评论
请
登录
后评论
暂时没有评论