免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 软件破解 > Windows7注册表之SAM文件取证分析(3)

Windows7注册表之SAM文件取证分析(3)

时间:2012-04-18 17:29来源:未知 整理:寂涯网络 点击:


dwNTHashLen = VBlock[0xAC] + 0x100*VBlock[0xAD] -4;
//获取用户名长度
dwUserNameLen = VBlock[0x10] + 0x100*VBlock[0x1a];
for (i = 0; i < dwNTHashLen; i++){ //获取NT hash密文
    nthash[i] = VBlock[VBlock[0xa8] + VBlock[0xa9]*0x100 + 4 + 0xcc + i];
}
for (i = 0; i < dwUserNameLen/2; i++){ //获取用户名
    UserNameA[i] = VBlock[VBlock[0xc] + VBlock[0xd]*0x100 + 0xcc + 2*i];
}
前面我们也讲到了如何获取Syskey值,它由四个不同的键码值信息组成,每个信息均存
放在键值的class属性内。
#define REGISTRY_LSAJD "SYSTEM\\CurrentControlSet\\Control\\Lsa\\JD"
#define REGISTRY_LSASKEW
"SYSTEM\\CurrentControlSet\\Control\\Lsa\\Skew1"
#define REGISTRY_LSAGBG "SYSTEM\\CurrentControlSet\\Control\\Lsa\\GBG"
#define REGISTRY_LSADATA "SYSTEM\\CurrentControlSet\\Control\\Lsa\\Data"
//获取这些键值对应的class属性内容
dwError = RegQueryInfoKey(hKey, Class, &dwcClass,
        NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
for (i = 0; i < 4; i++){
    temp[0] = Class[2*i];
temp[1] = Class[2*i + 1]; //将ASCII转换为16进制数
    RegistryKeyValue[i] = strtol(temp, &stop, 16);
}
for (i = 0; i < 4; i++){
    /*依次从JD,Skew1,GBG,Data开始,分别获取bootkey[0-3],bootkey[4-7], 
     bootkey[8-11],bootkey[12-15]值*/
    bootkey[i] = RegistryKeyValue[i];
}
//对bootkey进行P置换得到syskey
for (i = 0; i < 16; i++)  syskey[i] = bootkey[p[i]];
至此,我们已经获取到了syskey值。下面就是繁琐的解密过程了,代码就不在给出了。
按着前面分析的解密流程,即可实现。
4.小结
Windows 注册表容纳了所有应用程序和计算机系统的全部配置信息、系统和应用程序
的初始化信息、应用程序和文档文件的关联关系、硬件设备的说明、状态和属性以及各种
状态信息和数据。对于计算机取证分析员而言,注册表的分析是至关重要一环。

本页地址 http://www.jybase.net/ruanjianpojie/20120418829.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com