📅  最后修改于: 2023-12-03 15:38:38.808000             🧑  作者: Mango
bin sh
的地址 - Shell-Bash在Shell-Bash编程中,有时候需要在内存中搜索特定的二进制数据,比如bin sh
的地址。这篇文章将介绍如何在Shell-Bash中完成这个任务。
grep
命令使用grep命令可以在内存中搜索特定的二进制数据。具体方法如下:
grep -oba 'bin/sh' /proc/*/mem | cut -d '/' -f 3 | sort -u
其中:
-o
参数表示只输出匹配到的字符串,不输出整行。-b
参数表示输出匹配到的字符串在输入文件中的位置。这个参数将输出一个字符串的偏移量,也就是一个数字,表示这个字符串在文件中的位置。-a
参数表示grep命令会将输入文件当成文本文件处理。在Linux系统中,内存也可以当成一个文件来处理,所以这个参数可以让grep命令正确地处理内存。利用/proc/*/mem
代表所有进程的内存映射文件。cut -d '/' -f 3
是选取PID。
pmap
命令pmap
命令可以列出进程的内存映射情况。具体方法如下:
pmap $(pidof -s bash) | grep ' r-xp ' | awk '{print $1}'
其中:
pidof -s bash
返回当前bash shell进程的PID。pmap
命令将显示当前bash shell进程的内存映射情况。grep ' r-xp '
命令用于过滤出可执行段的内存映射区域。awk '{print $1}'
命令用于只输出第一列的内容,也就是可执行段的内存地址。本文介绍了在Shell-Bash编程中如何在内存中搜索特定的二进制数据,包括使用grep
和pmap
两个命令。这些技巧可以在需要逆向分析Shell-Bash脚本时,方便快捷地获取有用的信息。