Shell脚本------解析elf文件及awk基本使用

原创 2013年12月05日 22:43:34

1.读elf文件


arm-eabi-nm *.elf



2.awk字符判断 及 if语句


运算符 描述
赋值运算符
= += -= *= /= %= ^= **= 赋值语句
逻辑运算符
|| 逻辑或
&& 逻辑与
正则运算符
~ ~! 匹配正则表达式和不匹配正则表达式
关系运算符
< <= > >= != == 关系运算符
算术运算符
+ - 加,减
* / & 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ -- 增加或减少,作为前缀或后缀
其它运算符
$ 字段引用
空格 字符串连接符
?: C条件表达式
in 数组中是否存在某键值

awk -F " " '
	{
		if(""$2""~/T/)
			printf("%x, %s, %s\n", ""$1"", ""$2"", ""$3"");
	}

'



3.awk打印16补齐空位


#!bin/sh
arm-eabi-nm 1.test.axf |

awk -F " " '
	{
		if(""$2""~/T/)
			printf("0x%08x, %s, %s\n", ""$1"", ""$2"", ""$3"");
	}

'




4.awk实现16进制加法


#!bin/sh
arm-eabi-nm 1.test.axf |

awk -F " " '
	{
		if(""$2""~/T/)
			printf("%d, %s, %s\n", ""$1+1"", ""$2"", ""$3"");
		else
			printf("%d, %s, %s\n", ""$1"", ""$2"", ""$3"");
	}

'



5.awk 计数


#!bin/sh
arm-eabi-nm 1.test.axf |

awk -F " " '
	{
		if(""$2""~/T/)
			printf("%d %s %s\n", ""$1+1"", ""$2"", ""$3"");
		else
			printf("%d %s %s\n", ""$1"", ""$2"", ""$3"");
	}

'|

awk -F " " '
	BEGIN{i=0;}
	{
		i++;
		printf("{0x%08x, %s},\n", ""$1"", ""$3"");
	}
	END{printf("i=%d\n",i)}

'





补充:


%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,其中hh是1到2个16进制数


awk 的链接指向不同,可能需要:


echo a36b | gawk ' { printf "input is :%s\n",strtonum("0x" $0)}'


ELF文件逆向IDA的使用

下载一个ElfCrackMe1文件 使用IDA打开 shift+F2打开字符串面板
  • ShellDawn
  • ShellDawn
  • 2017年04月02日 00:08
  • 1550

Shell脚本------解析elf文件及awk基本使用

1.读elf文件 arm-eabi-nm *.elf 2.awk字符判断 及 if语句 运算符 描述 赋值运算符 = += -= *= /= %= ^= ...
  • Chinamming
  • Chinamming
  • 2013年12月07日 01:25
  • 855

[python] 转换python脚本程序为二进制ELF

方法1: freeze.py 来自python源码树. 安装pythonbrew,可安装定制化的独立python环境(略) python trunk/Tools/freeze/freeze.py ...
  • lieberstraum
  • lieberstraum
  • 2016年05月31日 15:52
  • 1606

看开源代码如何解析ELF文件

工具ROPgadget 在ROPgadget中有识别并分析多种文件结构,这次主要用这个功能来分析ELF文件格式。 分析的文件为libc.so 上代码 class Binary: def __i...
  • protoss_penguin
  • protoss_penguin
  • 2016年06月19日 00:54
  • 1416

shell脚本-----按行读取文件

按行读取文件 #!/bin/bash echo "##### 方法 1 #####" while read line1 do echo $line1 done < $1 echo "#####...
  • yf210yf
  • yf210yf
  • 2013年06月30日 20:26
  • 23965

IAR的介绍

IAR的介绍  《IAR EWARM V5 嵌入式系统应用编程与开发》[ 2010-8-17 3:03:00 | By: 32446975 ]    《IAR EWARM V...
  • linuxheik
  • linuxheik
  • 2013年01月30日 14:27
  • 2760

ELF文件和BIN文件

原微博链接:http://blog.chinaunix.net/uid-24148050-id-362928.html          分类: LINUX 文件的内容: 1. ...
  • u013251992
  • u013251992
  • 2016年08月22日 11:08
  • 565

Linux ELF文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] elf格式 ELF(Executable and Linking Format)是一种对象文件的格式,用于定义不...
  • xiaohuima_dong
  • xiaohuima_dong
  • 2016年10月01日 11:20
  • 999

用awk编写Shell脚本

一、概述 1. 产品概述: awk是一种编程语言,用于在linux/unix下对文本和数据进行扫描与处理。数据可以来自标准输入、文件、管道。 awk分别代表其作者姓氏的第一个字母。因...
  • imxiangzi
  • imxiangzi
  • 2015年11月10日 16:58
  • 472

TinyOS07:elf文件格式及分析工具objdump

objdump是GUN中专门用于将二进制目标代码从一种格式转换成另一种格式的二进制工具(对象文件格式分析工具),并且在转存过程需可以对二进制代码进行相关操作;ELF简单来说就是一种跨平台的二进制文件。...
  • a362523
  • a362523
  • 2015年12月27日 11:37
  • 1241
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Shell脚本------解析elf文件及awk基本使用
举报原因:
原因补充:

(最多只允许输入30个字)