请求体主要是一个时间戳,和密文,猜测猜测一下是将时间戳做某种运算然后作为加密的key
然后通过simplHook工具定位一下,发现没有com.legym.security.NativeLib这个类,所以这个类可能是动态加载的,所以脱一下壳,就能看到了
根据调用栈大概率就是getDykey生成的密钥
写个frida hook一下
然后看一下JNI_OnLoad
看一下getDynamicKey
很简单的一个算法,并且hook一下看看结果,能对上
signDigital参数定位,点进去交叉引用


是一个native的函数,看到上面vmp调用特挺感慨的

看一下so,发现加密了,dump修一下

修好之后看一下静态函数
定位返回地址,可以看到是一个sha1符号都没有去
看到这一行很可能是进行一下加盐的操作,然后代码点进去发现还是加密的,所以直接hook SHA1 *__fastcall SHA1::finalize(SHA1 *this)
然后在内存中看见了明文,账号+密码+“1”+”itauVfnexHiRigZ6“,然后sha1

请求一下,成功获得数据,而且后面也带了一个时间戳,猜一下加密和解密一样的逻辑,并且也进行了验证

先看请求体
signTime定位,太久了忘了,不过基本操作应该都是hook跑步数据的构造函数,和set函数,以前一层一层跟的,这里直接给出答案了
直接还原,大概就是这样了
看下效果,非常的nice

[内核课程]《Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。