2013年9月10日

反汇编

摘要: 反汇编是把目标代码转为汇编代码的过程。 通常,编写程序是利用高级语言进行编程的,然后再经过编译程序生成可以被计算机系统直接执行的文件。反汇编即是指将这些二进制可执行文件反编译进而还原成汇编语言或其他高级语言。但通常反编译出来的程序与原程序会存在许多不同,虽然执行效果相同,但程序代码 会发生很大的变化,非编程高手很难读懂。 简单地讲,如果我们对反汇编出来的程序清单进行阅读,可了解软件的编程思路,可以破解部分资源,可以将软件汉化等,例如找到它是如何注册的,从而解出它的注册码。http://zqwt.012.blog.163.com/blog/static/12044684201011301... 阅读全文

posted @ 2013-09-10 09:22 屁屁侠 阅读(354) 评论(0) 推荐(0) 编辑

2013年9月5日

u-boot mkconfig文件分析

摘要: #!/bin/sh -e#遇到非0返回 就退出脚本# Script to create header files and links to configure# U-Boot for a specific board.## Parameters: Target Architecture CPU Board [VENDOR] [SOC]## (C) 2002-2006 DENX Software Engineering, Wolfgang Denk ##定义变量 APPEND=no # Default: Create new config fileBOARD_NAME="" 阅读全文

posted @ 2013-09-05 14:22 屁屁侠 阅读(481) 评论(0) 推荐(0) 编辑

2013年7月19日

uboot的lds文件分析

摘要: OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")/*指定输出可执行文件是elf格式,32位ARM指令,小端*/OUTPUT_ARCH(arm)/*指定输出可执行文件的平台为ARM*/ENTRY(_start)/*指定输出可执行文件的起始代码段为_start*/SECTIONS{/*指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。必须使编译器知道这个地址,通常都是修改此处来完成*/ . = 0x000000 阅读全文

posted @ 2013-07-19 14:27 屁屁侠 阅读(4435) 评论(0) 推荐(0) 编辑

2013年4月19日

ARM工作模式

摘要: ARM工作模式1. 工作状态从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:1)第一种为ARM状态,此时处理器执行32的字对齐ARM指令,绝大部分工作在此状态;2)第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。ARM微处理器有32位的ARM指令集和16位的Thumb指令集,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。2. 存储器格式ARM体系结构将存储器看作从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字(32位)数据,从第四个字节到第七个字节放置第二个存 阅读全文

posted @ 2013-04-19 15:44 屁屁侠 阅读(475) 评论(0) 推荐(0) 编辑

ARM伪指令

摘要: 伪指令在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在ARM的汇编程序中,有如下几种伪指令:1)符号定义伪指令、2)数据定义伪指令、3)汇编控制伪指令、4)宏指令5)其他伪指令。一、符号定义伪指令符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有如下几种:1)定义全局变量的GBLA、GBLL和GBLS2) 阅读全文

posted @ 2013-04-19 11:28 屁屁侠 阅读(976) 评论(0) 推荐(0) 编辑

2013年4月18日

ARM指令集

摘要: ARM指令的基本格式 ARM指令的基本格式为: <Opcode> {<Cond>} {S} <Rd>, <Rn> { , <Opcode2> } 其中,<>内的项是必需的,{}内的项是可选的。 1)Opcode项 Opcode是指令助记符,即操作码,说明指令需要执行的操作,在指令中是必需的。 2)Cond项(command) Cond项表明了指令的执行的条件,每一条ARM指令都可以在规定的条件下执行,每条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。 条件码共有16种,每种条件码用2个字符表示,这两个字符可 阅读全文

posted @ 2013-04-18 23:14 屁屁侠 阅读(4073) 评论(0) 推荐(0) 编辑

2013年4月16日

windows cmd 编码

摘要: ////////////////////////////////////////////////////////////////////////////////////用命令chcp: 功能:显示或设置活动代码页编号 CHCP[nnn] nnn指定代码页编号。 不加参数键入CHCP 显示活动代码页编号。 nnn指定一已有的系统字符集,该字符集在CONFIG.SYS文件中由COUNTRY命令定义。 在DOS下可以通过mode命令来设置代码页。 选定代码页: MODECON[:] CP SELECT=yyy 代码页状态: MODECON[:] CP [/STATUS] 按Windo... 阅读全文

posted @ 2013-04-16 18:37 屁屁侠 阅读(687) 评论(0) 推荐(0) 编辑

ARM寻址方式

摘要: 1.寻址方式:处理器根据指令中给出的地址信息来寻找物理地址的方式2.立即数寻址(立即寻址):操作数本身就在指令中给出,只要取出指令就取到了操作数。这个操作数被称为立即数,对应的寻址方式叫做立即寻址。ADD R0, R0, #1; R0 + 1 --> R0ADD R0, R0, #0x3f; R0 + 0x3f --> R01)第二个源操作数即为立即数,要求以#为前缀2)十六进制表示的操作数,要求在#后面添加0x或者&3.寄存器寻址:利用寄存器中的数值为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是执行效率比较高的寻址方式。ADD R0, R1, R2; R1 阅读全文

posted @ 2013-04-16 14:26 屁屁侠 阅读(507) 评论(0) 推荐(0) 编辑

2013年3月29日

System.load 和 System.loadLibrary

摘要: 转http://blog.csdn.net/ring0hx/article/details/32422451.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。2.System.load 参数为库文件的绝对路径,可以是任意路径。例如你可以这样载入一个windows平台下JNI库文件:System.load("C://Documents and Settings//TestJNI.dll");。3. System.loadLibrary 参数为库文件名,不包含库文件的扩展名。例如你可以这样 阅读全文

posted @ 2013-03-29 15:22 屁屁侠 阅读(399) 评论(0) 推荐(0) 编辑

用GDB调试程序

摘要: 转:http://blog.csdn.net/haoel/article/details/2879用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 阅读全文

posted @ 2013-03-29 14:30 屁屁侠 阅读(241) 评论(0) 推荐(0) 编辑

导航