曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2950|回复: 0
打印 上一主题 下一主题

批量制作十六进制数

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2012-10-5 08:47:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需要用多个十六进制整数初始化 C 程序中的字符数组(shellcode),但是现在从某个编辑器中复制到的十六进制数并没有前缀 0x 以及每个字节后的逗号:
00 00 00 00 00 01 00 12 4c 6f 67 69 6e 53 65 72
76 69 63 65 2e 6c 6f 67 69 6e 00 02 2f 31 00 00
00 15 0a 00 00 00 01 02 00 0d 36 30 31 36 35 31
2c 30 30 31 34 31 33

使用 sed 的正则表达式处理如下:
cat tmp.txt |sed -r 's/[0-9][0-9]/0x&,/g' | sed 's/[0-9][a-f]/0x&,/g' |sed 's/[a-f][0-9]/0x&,/g' |sed 's/[a-f][a-f]/0x&,/g'
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x12, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x00, 0x02, 0x2f, 0x31, 0x00, 0x00,
0x00, 0x15, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x0d, 0x36, 0x30, 0x31, 0x36, 0x35, 0x31,
0x2c, 0x30, 0x30, 0x31, 0x34, 0x31, 0x33,
命令中的 & 符号表示匹配部分,-r 选项表示使用正则表达式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-15 15:20 , Processed in 0.058660 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表