来源:自学PHP网 时间:2015-04-17 12:00 作者: 阅读:次
[导读] 前不久拿到了这个系统的源代码,然后很好奇它的数据库连接字符串,如下图开始以为仅仅是base64编码而已,但是没法用base64解码,登陆界面需要调用数据库的地方没有发现有关的代码...
前不久拿到了这个系统的源代码,然后很好奇它的数据库连接字符串,如下图
开始以为仅仅是base64编码而已,但是没法用base64解码,登陆界面需要调用数据库的地方没有发现有关的代码,然后用reflector反编译DLL文件,发现它的数据库加密函数,如下图
可以看出,把需要加密的字符串pStr进行DES加密,DES加密的密钥buffer1通过getSN()函数获得,初始化向量buffer2是默认的值。
然后跟进getSN()函数,如下图
跟进getVol.GetVolOf()函数
getVol.GetVolumeInformation()函数的功能是获取指定磁盘分区的信息,调用这个函数传入的参数是c,可以知道是获取C盘的信息,返回值num1的值是卷序列号
知道了加密的密钥和初始向量,就可以对密文进行解密了,DLL里面也有解密的函数,稍微简化一下它原来的代码写了个解密程序。解密了刚刚加密字符串里面的数据库密码,C盘序列号通过dir c获得,需要把获得的16进制转换成10进制,如下图就可以成功解密
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com