什么是重定位?为什么要代码重定位?要弄清楚上面的这两个问题,首先要理解下面这几个概念一、编码(1)位置无关编码:PIC,可执行程序运行时与代码在内存中的地址无关,代码中没有使用绝对地址,而是使用的相对地址。(例如:B、BL、MOV等指令)(2)位置有关编码:可执行程序运行时与代码在内存中的地址有关系...
分类:
其他好文 时间:
2015-12-17 22:16:06
阅读次数:
182
调试dll的时候会有一件事情比较烦人,就是dll加载的地址不会很固定(默认设置下编译的dll基址总是0x10000000,多个同基址的dll加载时,后面的肯定会被重定位),这给前后多次调试时对比分析结果造成了一些麻烦,要解决这个问题,有两种办法。方法一:直接修改dll文件PE头中的ImageBas....
分类:
其他好文 时间:
2015-12-14 22:57:47
阅读次数:
346
Use putty tunnel instead of login terminal server有时候本地直接ping不通sql 的server, 但另一个server能连上,这时就可以把端口和ip重定位一下, 通过另一个server转接.in putty ssh settings: 12345....
分类:
数据库 时间:
2015-12-08 20:07:00
阅读次数:
148
【fixed语句】 fixed语句禁止垃圾回收器重定位可移动的变量。fixed语句只能出现在不安全的上下文中。Fixed还可用于创建固定大小的缓冲区。 fixed语句设置指向托管变量的指针,并在执行该语句期间“固定”此变量。如果没有fixed语句,则指向可移动托管变量的指针的作用很小,因为垃圾回.....
分类:
其他好文 时间:
2015-11-19 20:43:26
阅读次数:
223
首先需要朱有鹏老师,这是在学习了朱老师的课程之后的一点理解,代码是根据朱老师的源码学习之后编写的。根据反汇编代码d0024010:e24f0018subr0,
pc,#24可以看出通过adr汇编伪指令将加载地址写入r0寄存器,此时因为adr指令采用相对寻址的寻址方式所以adr实际写入r0寄存器的地址..
分类:
其他好文 时间:
2015-11-14 23:36:38
阅读次数:
454
运行地址:程序定位的绝对地址,就是编译连接时定位的地址加载地址:程序放置的地址如果程序在flash中运行,运行地址和加载地址相同如果程序存储在flash中运行而是在RAM中运行,则加载地址和运行地址就不同,此时加载地址就是指向flash,运行地址指向RAM重定位的一点感悟:重定..
分类:
其他好文 时间:
2015-11-12 06:43:12
阅读次数:
265
环境:Win7、VC61、代码: 1 #include 2 #include 3 4 #include 5 #include 6 7 int main() 8 { 9 printf("Sub01 : *stdin : %x\n", *stdin);10 printf("S...
分类:
系统相关 时间:
2015-11-09 15:36:14
阅读次数:
261
Win7 VC61、子进程 代码: 1 #include 2 #include 3 4 int main() 5 { 6 Sleep(1000); 7 8 printf("Sub01 : *stdin : %x\n", *stdin); 9 printf("Sub01...
分类:
系统相关 时间:
2015-11-09 15:31:04
阅读次数:
270
PS:标准输入/标准错误 ,参考这个来弄吧。环境:Win7(32位/64位),VC61、 printf("*stdin : %x\n", *stdin); printf("*stdout : %x\n", *stdout); printf("*stderr : %x\n", *st...
分类:
系统相关 时间:
2015-11-09 12:17:52
阅读次数:
216
重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一。
分类:
其他好文 时间:
2015-10-23 18:43:44
阅读次数:
270