我们平时所做的编译工作其实是由编译器来完成的,那么编译器都是由哪几部分构成的呢?包括四大部分:预处理器、编译器、汇编器以及链接器组成。链接是指将目标文件最终链接为可执行程序。根据链接方式的不同,链接过程可分为:静态链接,将目标文件直接链接进可执行程序;动态链接,在程序启动后才动态加载目标文件。
分类:
其他好文 时间:
2018-04-12 03:00:07
阅读次数:
200
通配符与特殊符号 特殊符号: 引号系列: $() 和 ` ` 运行里面的命令 ' ' 将里面的命令原封不动的输出 " " 将里面的特殊符号解析运行 重定向系列 : > 标准输出重定向 >> 标准输出追加重定向 2> 错误输出重定向 < 标准输入重定向 << 标
分类:
系统相关 时间:
2018-04-09 19:07:00
阅读次数:
218
一、重定位链接时重定位:目标文件一般由多个节组成,编译器在编译每个目标文件时一般都是从0地址开始生成代码。当多个代码节合成一个代码段时,需要根据其在最终代码段中的位置做出调整。同时,链接器需要对已经解析的符号分配运行时地址。这个过程就是重定位。加载时重定位:程序中可能调用了DLL,由于EXE是最先被 ...
今天晚上来一台虚拟机上部署KakaIM时,由于整个项目使用postgreSQL作为后端数据库,因此需要链接libpq.so,链接方式为静态链接 由于我在postgre client时,只将libpq.so所属的目录添加到 环境变量,而没有添加到 环境变量,造成gcc在编译时无法找到 。 后面我将li ...
分类:
其他好文 时间:
2018-04-05 11:36:58
阅读次数:
166
一、工具及壳介绍 使用工具:Ollydbg,PEID,ImportREC,LoadPE,010Editor UPX壳 3.94: 有了上篇ASPack壳的经验,先查看数据目录表: 可知是upx壳通过PE加载器修复自我重定位信息。 二、脱壳 1、ESP定律 入口: 通过ESP定律,ESP下硬件断点。 ...
分类:
编程语言 时间:
2018-03-20 20:43:23
阅读次数:
306
一个程序是如何开始运行的呢?这个问题,一千个人有一千种回答。电脑用户说:“双击程序图标就行了啊。”;初级程序员信心满满的回答:“是从main函数开始执行的。”;高级程序员也许会和你聊到c运行时库,那里才是程序编译运行的第一条指令;而熟悉操作系统的专家却并不知道如何说起,程序加载器、重定位、堆和栈的建 ...
分类:
其他好文 时间:
2018-03-18 20:12:02
阅读次数:
192
一 与静态库链接 1 符号解析(symbol resolution) 将符号的引用与定义联系在一起。#引用信息和定义信息在哪儿,怎么联系在一起的 1)内部符号解析-编译器 2)外部符号解析-连接器 与静态库链接: 链接器维护三个集合(E:可执行文件集合(U:未解析的符号集合(D:已定义的符号集合对于 ...
分类:
系统相关 时间:
2018-03-07 10:31:57
阅读次数:
277
题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 解析①: 首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。 第三步:重复上述两步, ...
分类:
编程语言 时间:
2018-03-05 22:29:25
阅读次数:
241
最近要给摄像头做一个软ap,让手机能够连上这个热点,从而能够与摄像头进行通信。 1、什么是hostapd : hostapd能够使得无线网卡切换为master模式,模拟AP(通常可以认为是路由器)功能,也就是我们说的软AP(Soft AP)。 Hostapd的功能就是作为AP的认证服务器,负责控制管 ...
分类:
其他好文 时间:
2018-03-02 23:08:13
阅读次数:
752
我们先看一下libco协程库的特性描述 对于其第三点特性,支持gethostbyname、mysqlclient、ssl等常用第三库。这说明什么?说明它们的网络IO函数,使用的是libco中的网络IO函数,不然进入不了协程调度。那么lobco是如何实现的呢?如果你善于运用搜索引擎,一定会找到一些文章 ...
分类:
其他好文 时间:
2018-02-22 23:50:45
阅读次数:
1918