od

od [OPTION]... [FILE]...
od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]

[功能]
把文件用8进制或者其他的格式显示出来。通常用于查看特殊格式文件的内容。

[描述]
这个命令默认把文件的内容用八进制的形式清晰地写在标准输出上。如果是多个文件,那么会把文件合并显示,如果没有指定文件名称,那么就选择标准输入作为默认的输入。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。
常用的选项:
- A 指定地址(文件offset)用什么基数打印,包括:
d 十进制
o 八进制(系统默认值)
x 十六进制
n 不打印位移值(也就是不打印地址偏移部分)

-j Bytes 首先跳过Bytes的输入。

-S [Bytes] 输出至少Bytes的图形字符串,这里的缩减形式等价于--strings[=Bytes]。

-w [Bytes] 指定每行的输出字节数目。

-N Bytes 指定显示的输入限定为Bytes字节。

- t 指定数据的显示格式,主要的参数有:
c ASCII字符或反斜杠序列
d[SIZE] 有符号十进制数,每个整数SIZE字节。
f[SIZE] 浮点数,每个整数SIZE字节。
o[SIZE] 八进制(系统默认值为02),每个整数SIZE字节。
u[SIZE] 无符号十进制数,每个整数SIZE字节。
x[SIZE] 十六进制数,每个整数SIZE字节。
除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。实际有一些简写形式,例如-t c等价于-c,具体参见man手册。

更详细的信息参见man手册。
说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。


[举例]
*用od查看file1内容:
$od file1
输入之后,输出如下:
0000000 005141
0000002
这里,file1使用"echo a >file1"生成的,己file1中只有一个字符a。

*用od查看file1和file2的内容:
$od file1 file2
输入之后,输出如下:
0000000 005141 005142
0000004
这里,file1的内容是a,file2的内容是b,将两个文件作为输入的时候,就把两个文件合并起来了。

*用od查看test内容,地址基数用十进制显示:
$od -Ad test
输入之后,输出如下:
0000000 062550 062562 066440 065541 020145 020141 062564 072163
0000016 000012
0000017
这里,地址基数就是输入中的第一列。

*用字符来显示文件test:
$od -t c test
或$od -tc test
输入之后,输出如下:
0000000 h e r e m a k e a t e s t
0000020 \n
0000021
这里,文件的内容实际就是"here make a test"这一行内容,如果是中文的字符就会显示相应的编码了。

*每行只用2个字节显示:
$od -w2 test
输入之后,输出如下:
0000000 062550
0000002 062562
0000004 066440
0000006 065541
0000010 020145
0000012 020141
0000014 062564
0000016 072163
0000020 000012
0000021
这里,最少就是两个字节宽度了,如果指定一个字节,那么也自动变成两个字节的了。

*每行只用4个字节显示:
$od -w4 test
输入之后,输出如下:
0000000 062550 062562
0000004 066440 065541
0000010 020145 020141
0000014 062564 072163
0000020 000012
0000021

*字符方式输出test内容,跳过两个字节:
$ od -tc -j 2 test
输入之后,输出如下:
0000002 r e m a k e a t e s t \n
0000021

*只显示两个字节,用字符方式显示:
$ od -tc -N2 test
输入之后,输出如下:
0000000 h e
0000002
这里,为了便于读取,使用了字符的方式进行打印。如果同时指定了-j跳过的选项,那么就会从-j指定的相应位置打印2个字节。

[其他]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OD injector是指一种在软件运行时注入代码或者动态链接库(DLL)的工具,用于修改、扩展或者监控软件的行为。在引用中的代码中,import my_debugger和debugger.attach(int(pid))的部分可以看出是一个OD injector的使用示例。OD injector常用于软件逆向工程和软件调试过程中,可以帮助分析软件运行时的行为并进行相关的修改。使用OD injector可以在软件运行时将代码或者DLL注入到目标进程中,从而实现对目标进程的操控和监控。在引用中的代码是一个DLL示例,通过在DLL的入口函数中实现不同的操作,可以在注入或者撤回时弹出不同的消息框。有关OD injector的更多信息和使用方法可以参考相关的技术文档和工具说明。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python灰帽子--黑客与逆向工程师的Python编程之道 笔记,过程问题解决](https://blog.csdn.net/u012763794/article/details/52174275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Angular 理解module和injector,即依赖注入](https://download.csdn.net/download/weixin_38690275/13137600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值