从堆里抢救丢失的博客
来源:互联网 发布:淘宝卖家店铺动态设置 编辑:程序博客网 时间:2024/04/20 14:26
实验环境
- 实验环境
- 操作机:
Windows XP
- 操作机:
- 实验工具:
WinDbg
桌面
WinHex
C:\Tools\WinHex
- 实验文件:
C:\gedu\labs\blog\ieblog.dmp
掌握使用工具提取回复文字数据。
实验步骤
第一步 实验提示
快速查找实验工具
- 打开桌面
Everything
搜索工具,输入实验工具名称,右击选择“打开路径”,跳转实验工具所在位置。 - 以查找
BURP
为例为大家演示。
小i提示:
- 在本次实验中,请注意实验工具、实验文件存放路径,不同的文件路径可能会出现不一样的实验结果。
- 在实验环境中无法连接互联网,请使用您本地的网络环境。
- 在本次实验中因为不同的操作环境,将Hex editor替换成同样功能的Winhex,一样的简单实用。
- 在本次实验环境中没有E盘,在导出博文时,请注意保存路径!
第二步 打开目标文件
我们首先打开WinDbg
,然后选择File菜单下的Open Crash Dump
,载入我们这次所研究的文件ieblog.dmp。可见WinDbg已经为我们打开了文件,并且已经停下来了:
虽然说作者是在网上写的博客文章,但是事实上这篇文章的本体依旧是存在于本地计算机内存中的某个区域中的。由于作者很清楚自己的博客中有哪些内容,因此我们可以在内存中检索博文中相应的字符串。这里可以输入如下指令:
0:011>s –u 0 L800 “当年在交大”
上述命令的意思是,以Unicode
的形式在内存中查找“当年在交大”这几个字,查找范围是从0到800。回车后发现WinDbg并没有返回结果,那么说明我们这里所指定的800这个范围太小了,这里修改一下,将上述语句中的800改成8000000,然后再次尝试查找:
可以看到这次检索出了很多个结果。之所以能够在内存中搜索到这么多的结果,有可能是作者在写作的过程中对文章进行了多次保存,或者说是系统自动进行了保存,于是就在内存中留下了痕迹。那么我们下一步的操作就是确认究竟是哪个位置保存的是完整的博文。当然这里我们依旧可以使用s -u
命令来查找博文中最后的几个字符,从而定位博文的范围。或者可以使用如下命令:
0:001>du 001b5942 L1000
上述命令的意思是从内存地址为0x001b5942
的位置开始,以Unicode的形式显示内存中的内容,一共显示800个结果。WinDbg输出如下:
第三步 提取内存中文章
可以发现,这个地址正是博文真实存放的地址。既然已经在内存中找到了这篇文章,那么下一步就是 将其从内存中提取出来。可以使用如下命令:
0:001>.writemem e:\blog_1.txt 001b5942 L1458
这行命令的意思是,将内存起始位置为0x001b5942
处的内容读取出来,一共读取1458个字符,并命名为blog_1.txt,保存在E盘根目录下:
然后来到E盘根目录下,打开blog_1.txt文件:
可见虽然我们已经把博文提取出来了,但是却是以乱码的形式显示的。而且虽然说是乱码,但是可以发现这些文字已经很接近于我们的中文字了。其实之所以会出现这样的结果,就是因为我们的系统没能有效地识别这些编码。为了解决这个问题,这里可以利用十六进制编辑工具,比如WinHex
打开blog_1.txt文件,然后在文件开头加上Unicode
的标识符FFFE,这样系统就能够以Unicode字符的形式进行解析了:
然后再次打开blog_1.txt文件:
可以看到此时已经能够正确显示出汉字了。但是现在还有两个问题没有解决。一个是第一句话中的第一个字,也就是“当”字没有了,因为刚才为了添加Unicode的标识,将当字的编码给覆盖掉了。第二个问题是由于作者在网上写的博文是以HTML形式编写的,它对于段落是以<P>
以及</P>
进行识别的,第一段开头的<P>
也没能显示出来。所以下面的操作就是解决这两个问题。
通过截图可以发现,这个程序有可能是一个HTTP
的后门程序,并且还可能连接到一个网站。而诸如-cc、-re以及-in这几个字符,有可能是与配置相关。比如-in有可能是insall也就是安装的意思。至此,静态分析部分就到这里。
可以在WinDbg
中输入如下命令:
0:001>db 001b5942-8
这个命令的意思是在内存地址为0x001b5942
减去8的位置,以字节的形式显示内存中的内容,这里之所以要减去8,是因为我们想看一下在“当年在交大”前面有些什么内容:
可以看到这里出现了3c0050003e
,转换成字符就是<P>
,也就是段落的开始标志。而最开始的两个字节正好是00,那么就可以将Unicode的标识符写入这个位置,就不会影响其它的位置了。当然这里依旧可以利用 Hex Editor进行编辑,或者利用如下WinDbg命令进行编辑:
0:001>eb 001b593a ff fe
这句命令的意思是,以字节为单位,在内存位置0x001b593a
写入fffe。写入成功后,再将博文提取出来,那么就获得了完整的博文了
- 从堆里抢救丢失的博客
- (转)调试之剑:从堆里抢救丢失的博客文章
- 调试之剑:从堆里抢救丢失的博客文章
- 调试之剑:从堆里抢救丢失的博客文章
- 调试之剑:从堆里抢救丢失的博客文章
- 《格蠹汇编》读后笔记1-从堆里抢救丢失的博客
- 教你如何抢救丢失的文稿
- 从被置疑的数据库中抢救数据[SQL2005]
- 丢失的迷你博客
- 抢救我的ANYP
- 从破烂堆里发现生的希望
- 抢救
- 从别人博客里看来的一道题,暂存
- 关于从Excel导入到SQL Server 2000里表头及数字丢失的解决办法
- 过放电锂电池的抢救
- 如何最大程度抢救数据(数据文件丢失-非归档)
- JAVA里浮点数从字符串解析丢失精度问题
- 可同时从多堆石子里取石子的取石子问题
- Arduino学习(七)中断
- [LeetCode] 198. House Robber
- sql 几种分页方法
- 约会问题
- iOS UIViewd的Content Modes属性 调整 ImageView 图片自适应模式 展示样式 UIViewContentMode各类型效果
- 从堆里抢救丢失的博客
- BAT脚本编写教程
- Arduino学习(八) 数码管
- SSD盘的sector size是可以用SSD厂商提供的工具来修改的
- Cocoa
- 日本的高管赚多少钱?
- 使用AIDL实现进程间的通信之复杂类型传递
- STK应用不识别电信卡
- 微信应用号开发知识贮备之altjs官方实例初探