汇编知识扫盲之16位汇编跟32位汇编的保护模式以及汇编代码编写 一丶内存寻址模型 逻辑地址.线程地址.物理地址 了解汇编之前.先了解一下上面这些词的含义; 逻辑地址: 这个是邮编一起生成的.逻辑地址一般都是 段加段内偏移组成的.每个进程独享. 线性地址: 由分段管理机制.将逻辑地址转化为线性地址.这 ...
分类:
其他好文 时间:
2018-09-07 20:12:09
阅读次数:
235
假如您不幸遇到对Win32应用环境有足够了解的对手,以至于您的软件最终还是被凶悍的调试器任意蹂躏。但是您还远没有被打败,如果反调试技术(Anti-Debug)作为软件保护的第一道防线已经失守,您的对手只不过是掌握了一大堆汇编代码而已,毕竟代码和算法之间还是有相当距离的,所以您还有第二道防线可守——抗 ...
分类:
编程语言 时间:
2018-09-06 21:30:29
阅读次数:
156
写C/C++程序最怕出现这样的提示了,还好是在调试环境下显示出来的,在非调试状态就直接崩溃退出. 从上述汇编代码发现在取内存地址 eax+38h 的值时出错, 那说明这个地址非法呗, 不能访问, 一般是访问了空指针引起的. 直接调用QList::append()方法也会出错了, 此时汇编也指向的是在 ...
分类:
数据库 时间:
2018-09-05 09:09:26
阅读次数:
266
一、几个概念 1. 反汇编与反编译 源代码程序-->可执行程序,需要经过编译器-->汇编器-->链接器;用来撤销编译和汇编的过程,称之为反编译和反汇编 反汇编:从机器码到汇编代码 反编译:以汇编代码或机器码到高级语言 2. 常见的指令架构 指令架构:x86、ARM、MIPS x86主要应用于pc机上 ...
分类:
其他好文 时间:
2018-08-27 16:03:30
阅读次数:
1124
图 1 图1中 左侧是 proc.c程序。右侧是proc.s 汇编程序。 proc.s中, 5 --15行是proc()的汇编代码 图 2 图 2 中 proc.s 汇编程序 20 -- 61 行是call_proc的汇编代码。 ...
分类:
其他好文 时间:
2018-08-27 14:10:03
阅读次数:
97
[toc] 基础汇编代码 LDR(load) 读内存 LDR R0,[R1] 假设R1的值=x,读取地址x的数据(4字节)保存到R0中 STR(store) 写内存命令 STR R0,[R1] ? 假设R1的值=x,把R0的值写入到地址X(4字节) B ? 跳转的意思 MOV(move) 赋值 MO ...
分类:
其他好文 时间:
2018-08-19 17:06:04
阅读次数:
172
二、编译 引用文档:https://blog.csdn.net/chdhust/article/details/9040647 编译过程就是把预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件,这个过程是整个程序构建的核心部分,也是最复杂的部分之一。 现在版本的 GC ...
分类:
其他好文 时间:
2018-08-17 12:50:31
阅读次数:
163
Gcc的编译流程分为了四个步骤: 预处理,生成预编译文件(.文件):gcc –E hello.c –o hello.i 编译,生成汇编代码(.s文件):gcc –S hello.i –o hello.s 汇编,生成目标文件(.o文件):gcc –c hello.s –o hello.o 链接,生成可 ...
分类:
其他好文 时间:
2018-08-16 23:48:06
阅读次数:
357
GCC的几个重要选项解释详细可见:[GNU Compiler Collection (GCC)] https://gcc.gnu.org/onlinedocs/gcc/https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html-c 编译或者汇编代码,但是不链接-S 在编译之后停止,但不汇编-E 预处理后停止,但不
分类:
其他好文 时间:
2018-08-08 10:32:19
阅读次数:
718
之前看了很多关于uboot分析类的文章,其中提到为C语言的运行准备栈。而在uboot start.S汇编代码中,关于系统初始化,也看到栈指针初始化,即正确给栈指针sp赋值,却从来没看到有人解释,为何要这样做。接下来,我试图解释这个问题。首先了解栈的作用。关于这个,详细讲解要很长的篇幅,故此处只做简略 ...
分类:
其他好文 时间:
2018-08-07 21:26:02
阅读次数:
156