调试:格蠹汇编笔记 第一章,从堆里抢救丢失的博客

作者 是写过《软件调试》的张银奎,以例子的形式讲解调试的经验和知识,文字很鲜活比较有趣。

第一章,从堆里抢救丢失的博客

其实就是用调试器从内存里找到文字,搜索时搜索文字的头尾确定范围,再写入文件即可

0:035> s -u 10000 L8000000 "作者 是写过"
01d29ec0 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0235bdb6 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0671d328 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
081ce0fe 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0968e536 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a449014 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a449214 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a449514 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a449d14 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a449e14 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0a770840 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0acc8206 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0acc8914 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0acc8e14 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0d3dd014 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0d3ddf14 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0d445e60 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0da0f428 4f5c 8005 0020 662f 5199 8fc7 300a 8f6f O.. ./f.Q...0o.
0:035> s -u 10000 L8000000 "找到文字"
01d29f66 627e 5230 6587 5b57 0000 0000 0000 007c ~b0R.eW[......|.
0235be7e 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
0671d3f0 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
081ce1c6 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
0968e5fe 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
0a4490ae 627e 5230 6587 5b57 0000 0000 0000 004b ~b0R.eW[......K.
0a4491ae 627e 5230 6587 5b57 0000 0000 0000 0001 ~b0R.eW[........
0a4492ae 627e 5230 6587 5b57 0000 0000 0000 003a ~b0R.eW[......:.
0a4495ae 627e 5230 6587 5b57 0000 0000 0000 004f ~b0R.eW[......O.
0a4499ae 627e 5230 6587 5b57 0000 0000 0000 0037 ~b0R.eW[......7.
0a449dae 627e 5230 6587 5b57 0000 0000 0000 004d ~b0R.eW[......M.
0a449eae 627e 5230 6587 5b57 0000 0000 0000 004e ~b0R.eW[......N.
0a7708da 627e 5230 6587 5b57 0000 0000 0000 0000 ~b0R.eW[........
0a819646 627e 5230 6587 5b57 0000 6f22 226b 3c3e ~b0R.eW[.."ok"><
0acc82ce 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
0acc89ae 627e 5230 6587 5b57 0000 0000 0000 0003 ~b0R.eW[........
0acc8eae 627e 5230 6587 5b57 0000 0000 0000 0002 ~b0R.eW[........
0d3c928e 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.
0d3dd0ae 627e 5230 6587 5b57 0000 0000 0000 0000 ~b0R.eW[........
0d3ddfae 627e 5230 6587 5b57 0000 0000 0000 0051 ~b0R.eW[......Q.
0d445efa 627e 5230 6587 5b57 0000 7372 6f69 736e ~b0R.eW[..rsions
0da0f4f0 627e 5230 6587 5b57 003c 002f 0070 003e ~b0R.eW[<./.p.>.

0:034> !address 0x01d29ec0


Failed to map Heaps (error 80004005)
Usage: <unclassified>
Allocation Base: 01cc0000
Base Address: 01cc0000
End Address: 01d47000
Region Size: 00087000
Type: 00020000 MEM_PRIVATE
State: 00001000 MEM_COMMIT
Protect: 00000004 PAGE_READWRITE

0:035> .writemem c:log.txt 0x01d29ec0 L2000
Writing 2000 bytes....

这时打开写入的文件发现是乱码,因为是unicode编码,没按中文显示,有UE打开在最前面插入 0xff fe再打开即可。

s -u 10000 L8000000 "作者 是写过"

.writemem c:log.txt 0x01d29ec0 L2000

原文地址:https://www.cnblogs.com/xujinping/p/4507299.html