(三)通过IDA获取加密的key.md
1.5 KB / 2021-04-21 09:23:46
(三)通过IDA获取加密的key
==========================
通过导图查找
------------
首先找到php\_screw.so文件,然后通过IDA分析(幸好之前跟基友要了份IDA)。加密过程是在pm9screw\_ext\_fopen函数中实现的,所以只需要到这个函数中去找加密部分即可。![3.png](./resource/(三)通过IDA获取加密的key/media/rId22.png)
找到pm9screw\_ext\_fopen函数,双击,如下图所示:
![4.png](./resource/(三)通过IDA获取加密的key/media/rId23.png)
然后右边的窗口就会如下图所示:
![1.png](./resource/(三)通过IDA获取加密的key/media/rId24.png)
很明显,我标黄的就是加密密钥了,双击跳转至其指针保存处:
![2.png](./resource/(三)通过IDA获取加密的key/media/rId25.png)
再次双击,跟踪变量,见下图,打码处就是密钥了。
![3.png](./resource/(三)通过IDA获取加密的key/media/rId26.png)
如下图,右键,将十六进制的密钥转成十进制的,然后打开screwdecode.c,见下图9,将密钥替换掉,即可使用screw\_decode解密。
![4.png](./resource/(三)通过IDA获取加密的key/media/rId27.png)
![5.png](./resource/(三)通过IDA获取加密的key/media/rId28.png)
通过伪代码查找
--------------
再找到目标函数之后,使用F5,查看伪代码,双击黄标也可以跳转到之前找到的位置。
![6.png](./resource/(三)通过IDA获取加密的key/media/rId30.png)
参考链接
--------
> https://www.cnblogs.com/StudyCat/p/11268399.html