仿写一个磁盘分区序列号修改器
2019-07-24 16:33:02 Author: bbs.pediy.com(查看原文) 阅读量:143 收藏

[原创]仿写一个磁盘分区序列号修改器

21小时前 460

0x1:

网上有个磁盘分区修改器小工具


逆向一波学习看下这个软件的修改原理.

0x2:

祭出最新的pediy ida7.2


直接拖进去,定位到mfc的窗口初始化枚举磁盘的地方


先枚举所有本地的分区,然后获取信息。


先看获取系统分区序列号的代码


先直接CreateFile打开对应的盘符.然后使用ZwQueryVolumeInformationFile的FileFsVolumeInformation(0x1)查询卷的信息。


如果失败了,就用GetVolumeInformationW来获取卷的序列号,实际上GetVolumeInformationW内部也是用 ZwQueryVolumeInformationFile来获取的....

win2k代码:



接着看程序获取磁盘分区序列号:


这部分就比较简单了,也是先打开对应的分区,然后直接读取前面一个扇区大小的数据,然后返回buffer+0x48的一个DWORD就是了


0x3 修改序列号的实现:

找到点击确定按钮的地方


看下这个CALL内部代码:


还是先打开对应的分区,然后读取第一个扇区,把+0x48写入新的序列号,然后再写回去。


返回结果


程序分析完了,那么来仿写一个吧。

0x4:


编译完运行一下,可以看到已经生效了


重启一下, ZwQueryVolumeInformationFile查询的也会生效啦。

ps:

那如何不重启就生效呢:


过滤FileFsVolumeInformation即可。

win10下面会触发pg..ntfs的driver_object有保护~

[公告]LV6级以上的看雪会员可以免费获得《2019安全开发者峰会》门票一张!!

最后于 15小时前 被xiaofu编辑 ,原因:


文章来源: https://bbs.pediy.com/thread-252786.htm
如有侵权请联系:admin#unsafe.sh