A1anSong / jd_unidbg

某电商平台逆向记录

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

jd_unidbg

这是对某电商平台逆向的一个记录

平台地址:aHR0cHM6Ly93d3cuamQuY29tLw==

本项目基于unidbg修改而来,感谢原作者的无私奉献

jdk版本要求:1.8,否则会报sun.security.pkcs.PKCS7的相关错误

前提条件:先通过反编译apk拿到源码,这样的工具一大堆,我这用的是jadx,然后通过源码找到加密sign的方法并进行hook, hook脚本在另一个项目里hook

本项目起因就是由一次hook引起的,hook的是一个native方法

但是这个方法的实现是在so里面的(libjdbitmapkit.so), 所以需要先加载so,然后再调用其中的方法,做了以下尝试:

  1. 使用IDA生成伪代码来理解逻辑,发现这个so文件牵涉到的方方面面调用太多了,短时间内理解逻辑并不靠谱,大大提高了研究成本,故而寻找其他方法
  2. 突发奇想直接新建一个android项目,想直接通过JNI调用这个加密的方法,然后通过socket通讯来传递加密信息,android能够成功运行,但是10秒左右会崩溃退出,所以肯定是还有一些其他的检测没有通过 (android项目很简单,随便写写就行了,源码不做探讨)
  3. 也尝试过AndroidNativeEmu,但是这个项目已经很久没有更新了,而且也没有找到合适的使用方法,故而放弃
  4. 无意中发现了unidbg ,一次次调试下,终于成功了,直接给项目jdsecskill进行调用即可

使用方法

9998端口是用来接收需要加密的数据并返回加密结果的,可以自行修改

考虑到可能涉及的法律问题,故部分核心源码不放出,有需要延续这个思路继续扩展即可

之前发布的release也已删除,技术探讨及交流可点击

License

联系

交流方式

About

某电商平台逆向记录

License:Apache License 2.0


Languages

Language:Java 83.2%Language:C 8.2%Language:Objective-C 4.0%Language:C++ 1.7%Language:Objective-C++ 1.3%Language:Kaitai Struct 1.1%Language:Shell 0.5%Language:Makefile 0.0%Language:Swift 0.0%Language:Batchfile 0.0%