(三)通过IDA获取加密的key

(三)通过IDA获取加密的key
==========================

通过导图查找
————

首先找到php\_screw.so文件,然后通过IDA分析(幸好之前跟基友要了份IDA)。加密过程是在pm9screw\_ext\_fopen函数中实现的,所以只需要到这个函数中去找加密部分即可。![3.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId22.png)

找到pm9screw\_ext\_fopen函数,双击,如下图所示:

![4.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId23.png)

然后右边的窗口就会如下图所示:

![1.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId24.png)

很明显,我标黄的就是加密密钥了,双击跳转至其指针保存处:

![2.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId25.png)

再次双击,跟踪变量,见下图,打码处就是密钥了。

![3.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId26.png)

如下图,右键,将十六进制的密钥转成十进制的,然后打开screwdecode.c,见下图9,将密钥替换掉,即可使用screw\_decode解密。

![4.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId27.png)

![5.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId28.png)

通过伪代码查找
————–

再找到目标函数之后,使用F5,查看伪代码,双击黄标也可以跳转到之前找到的位置。

![6.pngimg](/static/yougar/Web安全/Php/Php screw加密与破解/resource/(三)通过IDA获取加密的key/media/rId30.png)

参考链接
——–

> https://www.cnblogs.com/StudyCat/p/11268399.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容