我正在编写一个gdb脚本来分析一个核心文件。其目的如下:
1]我正在寻找分散在64Mb空间中的数据包。该数据包具有4个字节的幻数。因此,我必须一次读取4个字节。
2]我必须从给定地址开始读取总共64Mb的数据。
3]一旦找到数据包,我应该打印数据包的deatils并继续查找其他数据包。
4]因此,在我的脚本中,主循环在最坏情况下运行64 * 1024 * 1024/4 = 16777216次。
问题:
脚本需要约3小时或更长时间,这是完全不切实际的。
我假设这是因为它的解释性语言,也是循环数量非常大。
欢迎任何建议/改进。请在这里帮助我。GDB脚本太慢,需要帮助/建议
0
A
回答
2
如果您认为gdb速度较慢,您可以使用“dump binary memory”转储您感兴趣的内存区域,然后使用您认为能够更快速地分析转储的小程序。
2
find命令应该做你想要的一切, 而无需环路每4个字节左右, 它存储在$最后发现包_ 的地址(未经测试,而应是东西的效果)
(gdb) python x = list()
(gdb) set $start_addr = 0x....
(gdb) set $last_end = $start_addr
(gdb) set $_ = $start_addr+1
(gdb) while $_ != $last_end
>find $last_end, $start_addr + 64*1024*1024, 0x42
>set $last_end = $_
>python x.append(gdb.parse_and_eval("$_"))
>end
(gdb) python print map(lambda(y): str(y), x)
如果你没有Python中可以使用集日志覆盖掉,设置登录,打印,设置注销
相关问题
- 1. 脚本帮助需要
- 2. Bash脚本帮助需要
- 3. 需要帮助脚本
- 4. MySQL:需要脚本帮助
- 5. BASH需要脚本帮助
- 6. 组脚本帮助需要
- 7. 超慢MySQL - 需要帮助!
- 8. aspx。需要帮助和建议c#
- 9. Mysql查询建议/需要帮助
- 10. 需要脚本建议!
- 11. 需要与登录脚本帮助
- 12. 需要帮助PHP头像脚本
- 13. 需要帮助调试greasemonkey脚本
- 14. 我需要以下脚本的帮助
- 15. 需要帮助TAR shell脚本
- 16. 需要帮助的SSH脚本
- 17. 需要帮助的ROBLOX脚本(LUA)
- 18. 需要帮助的这个脚本
- 19. 需要脚本的Office卸载帮助
- 20. 简单的Perl脚本帮助需要
- 21. 在Java脚本需要一个帮助
- 22. 我需要帮助与asp.net脚本
- 23. 在bash脚本中需要帮助
- 24. 执行Bash脚本需要的帮助
- 25. 需要我的bash脚本帮助
- 26. 需要帮助的PHP代理脚本
- 27. 需要帮助笑着bash脚本
- 28. 需要一些帮助或建议编写SoapUI测试的一些groovy脚本
- 29. 运行PHP脚本需要的建议
- 30. 需要帮助构建php
我想这一点,但对我来说,如果我倾倒的记忆,我不会有权访问数据包结构。 :( – Pkp
但是这是一个好主意,我不知道内存转储,这将有助于解决我的其他问题。 – Pkp