精华内容
下载资源
问答
  • 反汇编: 1. dexdump -d Neg.apk > neg-dexdump.txt (-d后面可以是.dex、.jar、.apk和.odex) 2. oatdump --oat-file=data@app@Neg.apk@classes.dex --output=neg-oatdump.txt --instruction-set=mips (--oat-...
    一. 反汇编:


    1. dexdump -d Neg.apk > neg-dexdump.txt (-d后面可以是.dex、.jar、.apk和.odex)
    2. oatdump --oat-file=data@app@Neg.apk@classes.dex --output=neg-oatdump.txt --instruction-set=mips (--oat-file参数只能是oat文件)
    3. cd prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9/bin
       ./mips64el-linux-android-objdump -S/-D ~/android-test/data@app@Neg.apk@classes.dex > ~/android-test/neg-objdump.txt (-S后面可以是可执行文件或目标文件)


    二. 生成oat文件


    boot.oat文件:(有错误)
    dex2oat --image=out/target/product/loongson3/data/dalvik-cache/mips/system@framework@boot.art --dex-file=out/target/product/loongson3/system/framework/core-libart.jar --dex-file=out/target/product/loongson3/system/framework/conscrypt.jar --dex-file=out/target/product/loongson3/system/framework/okhttp.jar --dex-file=out/target/product/loongson3/system/framework/core-junit.jar --dex-file=out/target/product/loongson3/system/framework/bouncycastle.jar --dex-file=out/target/product/loongson3/system/framework/ext.jar --dex-file=out/target/product/loongson3/system/framework/framework.jar --dex-file=out/target/product/loongson3/system/framework/telephony-common.jar --dex-file=out/target/product/loongson3/system/framework/voip-common.jar --dex-file=out/target/product/loongson3/system/framework/ims-common.jar --dex-file=out/target/product/loongson3/system/framework/mms-common.jar --dex-file=out/target/product/loongson3/system/framework/android.policy.jar --dex-file=out/target/product/loongson3/system/framework/apache-xml.jar --oat-file=system@framework@boot.oat --instruction-set=mips --instruction-set-features=smp,fpu32,-mips2 --base=0x30808000 --runtime-arg -Xms64m --runtime-arg -Xmx64m --compiler-filter=speed --android-root=out/host/linux-x86/bin --image-classes=out/target/product/loongson3/system/etc/preloaded-classes > e.log 2>&1


    应用程序:(有错误,文件runtime/utils.cc中函数GetDalvikCache(...)内没有权限创建data/dalivik-cahce/mips/)
    dex2oat --dex-file=out/target/product/loongson3/system/priv-app/Launcher2/Launcher2.apk --oat-file=system@priv-app@Launcher2@Launcher2.apk@classes.dex --instruction-set=mips --instruction-set-features=smp,fpu32,-mips2 --runtime-arg -Xms64m --runtime-arg -Xmx512m --compiler-filter=speed --android-root=out/host/linux-x86/bin


    ABI/EABI/OABI: http://blog.chinaunix.net/uid-25299072-id-3059614.html
    MIPS软件标准: http://blog.sina.com.cn/s/blog_a78208d301016jm3.html
    MIPS 架构上函数调用过程中的堆栈和栈帧: http://blog.csdn.net/do2jiang/article/details/5404566
    浅谈Android系统开发中LOG的使用: http://blog.csdn.net/luoshengyang/article/details/6581828
    android的Log输出: http://blog.csdn.net/alley_zhang/article/details/5713894
    dex2oat程序参数总结: http://www.th7.cn/Program/Android/201512/719494.shtml
    展开全文
  • objdump 反汇编

    千次阅读 2014-02-13 16:21:55
    2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间 3)使用nm -n out.elf > System.map 命令生成System.map文件 4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址. ...

    1)使用System.map文件查找函数的起始地址和结束地址

    2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间

    3)使用nm -n out.elf > System.map 命令生成System.map文件

    4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址.

    #!/bin/sh
    routine=memset
    start=`grep " "$routine"$" System.map | awk '{print "0x"$1}'`
    end=`grep -A 1 " "$routine"$" System.map | awk '{getline; print "0x"$1}'`

    echo "routine $routine, star address $start, end address $end"

    /opt/toolchain/arm-eabi-4.4.0/bin/arm-eabi-objdump -d u-boot --start-address=$start --stop-address=$end


    转载: http://blog.csdn.net/joans123/article/details/7477039



    展开全文
  • gcc objdump反汇编

    2020-05-29 08:29:45
    Linux 内核panic调试oops信息及栈回溯一、gcc编译反汇编 一、gcc编译 1、gcc编译过程:预处理->编译->汇编->链接 一步编译、连接 gcc无需加选项,直接生成可执行文件,如果是Linux内核中,可能要用交叉编译...

    Linux 内核panic调试oops信息及栈回溯

    一、gcc编译

    1、gcc编译过程:预处理->编译->汇编->链接

    一步编译、连接

    gcc无需加选项,直接生成可执行文件,如果是Linux内核中,可能要用交叉编译工具链的gcc。如/opt/toolchains/crosstools-arm-gcc-5.5-linux-4.1-glibc-2.26-binutils-2.28.1/usr/bin/arm-buildroot-linux-gnueabi-

    对应gcc代码:gcc hello.c –o hello
    1.1、预处理 -E

    -E作用:**对头文件和宏定义等进行处理

    对应gcc代码:gcc –E hello.c –o hello.i
    1.2、编译 -S

    -S作用:**检查代码是否有语法错误,并将其翻译成汇编语言

    对应gcc代码:gcc –S hello.i –o hello.s
    1.3、汇编 -c

    -c作用:**将编译阶段生产的汇编.s文件,处理为.o目标文件

    对应gcc代码:gcc –c hello.s -o hello.o
    1.4、链接

    **作用:**将多个.o目标文件组装成最后的可执行文件

    对应gcc代码:gcc hello.o -o hello
    1.5、运行 ./文件名

    对应代码:./文件名

    Ps:gcc编译多文件举例gcc -o main main.c sub_add.c unsgn_pow.c -I/include -L. -lmymath
    其中,-I ./include 告诉gcc在“./include”目录下搜寻头文件
    **-L. **表示要链接的库,库名为libmymath.a,链接时写为-lmymath
    ps:大致过程应该是没问题的,直接copy的,有时间在验证整理下。。。。。。。

    反汇编

    objdump 参数介绍

    -d: 将代码段反汇编 反汇编那些应该还有指令机器码的section
    -D :与 -d 类似,但反汇编所有section
    -S: 将代码段反汇编的同时,将反汇编代码和源代码交替显示,源码编译时需要加-g参数,即需要调试信息
    -C: 将C++符号名逆向解析
    -l: 反汇编代码中插入源代码的文件名和行号
    -j section: 仅反编译所指定的section,可以有多个-j参数来选择多个section
    

    具体用法示例如下:

    objdump -dS helloworld.ko > helloworld.s //需要注意,编译时需加-g参数,在Makefile EXTRA_CFLAS中添加
    vim hellowrold.s

    展开全文
  • objdump 反汇编一个函数的脚本

    千次阅读 2012-04-19 12:51:44
    2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间 3)使用nm -n out.elf > System.map 命令生成System.map文件 4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址. #!/...

    1)使用System.map文件查找函数的起始地址和结束地址

    2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间

    3)使用nm -n out.elf > System.map 命令生成System.map文件

    4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址.

    #!/bin/sh
    routine=memset
    start=`grep " "$routine"$" System.map | awk '{print "0x"$1}'`
    end=`grep -A 1 " "$routine"$" System.map | awk '{getline; print "0x"$1}'`

    echo "routine $routine, star address $start, end address $end"

    /opt/toolchain/arm-eabi-4.4.0/bin/arm-eabi-objdump -d u-boot --start-address=$start --stop-address=$end



    展开全文
  • 今天在网上看到有人在反汇编vmlinux时考虑到反汇编速度太慢,而且生成文件有很大,所以写了一个只反汇编想要的函数的脚本 objdump-function.sh: #!/bin/bash vmlinux=$1 symbol=$2 if [ -z "$...
  • --archive-headers -a 显示档案库的成员信息,类似ls -l将lib*.a的信息列出。 -b bfdname --target=bfdname 指定目标码格式。...显示fu.o的头部摘要信息,明确指出该文件是Vax系统下用Oasys编译器生成的目...
  • 实际上不可能采用已编译的二进制文件(例如ELF格式)并生成汇编为相同(或相似程度)二进制文件的源汇编程序。为了了解它们之间的差异,请将直接编译到汇编器(gcc-S)的GCC编译输出与可执行文件(objdump -D)上的objdump...
  • 内容: 上一篇记录了反汇编利器—objdump的使用方法,这一篇写写个简单的小程序测试实践一下这个命令吧! 准备好测试程序: 将.c文件生成a.out可执行文件: gcc obj.c 查看反汇编结果: objdump -d a.out 此时并...
  • ARM 反汇编的查看

    2013-08-02 11:18:58
    在X86架构下的电脑上生成ARM架构的汇编代码有两种方式: ...2、使用arm-linux-objdump反汇编arm二进制文件。   查看反汇编用arm-linux-objdump -S 查看,或者arm-linux-objdump -D 。查看的文件是.o结尾
  • 反汇编

    2013-09-09 18:48:04
    生成反汇编文件 objdump -d ***.o 查看文件属性 file
  • 变量_Linux 基础_JAVA架构师-创客学院 01 总览编译阶段nm 获取二进制文件包含的符号信息strings 获取二进制文件包含的字符串常量strip 去除二进制文件包含的符号readelf 显示目标文件详细信息objdump 尽可能反汇编出...
  • 汇编和反汇编的区别

    2017-11-27 14:02:00
    在linux系统下编写如下代码: 通过指令:gcc -S main.c 将生成main.s文件...再通过指令:objdump -d main.o生成反汇编 反汇编是基于机器代码的文件中的字节序列来确定汇编的代码。 左边为字节序列值,右边为反汇编...
  • 通常认为,产生异常的地址是lr...内核编译完成后,会在内核代码根目录下生成vmlinux文件,我们可以通过以下命令来反汇编:arm-none-eabi-objdump -Dz -S vmlinux >linux.dump值得注意的是,arm-none-eabi-objdump...
  • 有一个arm elf文件经过...进行反汇编: 指令1: arm_v5t_le-objdump-b binary -m armv5te -Du-boot.bin|head 指令2: arm-linux-objdump -D -b binary test.bin --architecture=arm > /tmp/raw.txt ...
  • 调用编译器产生汇编语言mstore.s: gcc -Og -S mstore.c ...反汇编objdump -d mstore.o 编译生成二进制可执行文件prog: gcc -Og -o prog main.c mstore.c 反汇编objdump -d prog mstore.c...
  • 命令格式: arm-linux-objdump -D -b binary -m arm file.bin > file.asm 描述: -D 指反编译文件所有内容 -b binary 源文件格式 是二进制的bin文件 -m 指machine的类型 ... file.bin 是你要反汇编的源bin文件
  • 查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 涌现Oops kernel panic后,要静下心来冷静分析,...将生成的无压缩的内核镜像反汇编objdump-Dvm...
  • 反汇编一个c程序

    千次阅读 2011-05-10 17:49:00
    方式一:使用gccgcc编译有四步走,预编译,编译,汇编,连接使用-S编译选项 gcc -S test.c会在当前目录下生成test.s的文件,该文件即是相应的汇编程序方式二:使用gdb首先编译时要是用-g编译选项 gcc -g ./test.c -o ...
  • objdump gcc gdb

    2016-12-02 23:23:27
    gcc: -c 编译后汇编,不连接 -S 编译后停止,不进行汇编 -o 编译,汇编,连接 -g 生成调试信息 -gstabs 标识符 maingdb break *标识符 :设置... 一般常用的是objdump -x 显示文件头信息objdump -d 反汇编代码
  • 留作备忘:gcc -S -masm=intel xxxx.c生成elf可执行文件:gcc -o xxx xxxx.s反汇编objdump xxx补充:在使用gcc 对C语言程序进行编译时,可细分为四个阶段:预处理(Pre-processing)、编译(Compiling)、汇编(Assembling...
  • 留作备忘: ... 反汇编 objdump xxx  补充:  在使用gcc 对C语言程序进行编译时,可细分为四个阶段:预处理(Pre-processing)、编译(Compiling)、汇编(Assembling)、链接(Linking)。用tes...
  • 编译后,用objdump对.o做反汇编,逐行解释汇编指令. 实验步骤: 1.写a+b程序,并且生成.o文件 2.用objdump进行反汇编 3.逐行解释汇编指令 00000000 <main>: ...
  • 将机器码的指令字,用文本文件保存,将指令字保存成.S文件,如下格式: .inst 0xf9440e11 ...(2)用objdump反汇编生成汇编语句。命令:objdump -d a.out   实践: [82#yuchen@ubuntu ~]# cat a.s...
  • 通过如下命令获得其反汇编代码: objdump -d -M intel main_32bit_exe ``` 08048094 <.text>: 8048094: 55 push ebp 8048095: 89 e5 mov ebp,esp 8048097: e8 5b 00 00 00 call 0x80480f7 **; 调用...
  • .o文件内容 使用命令: objdump -h xxxx.o 打印主要段的信息 objdump -x xxxx.o 打印更多的详细信息 ...将所有包含指令的段反汇编 objdump -t xxx.o 查看所有的符号以及他们所在段 readelf -h...
  • 程序的机器级表示 gcc -o1 -s code.c 产生对应...objdump -d code.o 反汇编查看二进制文件 gcc -o1 -o prog code.o main.c 生成可执行文件 objdump -d prog 反汇编prog文件 转载于:https://www.cnblogs.com/wyg...

空空如也

空空如也

1 2 3 4
收藏数 76
精华内容 30
关键字:

objdump反汇编生成文件