170722 逆向-DLL基础

1625-5 王子昂 总结《2017年7月22日》 【连续第293天总结】
A. DLL基础
B.

DLL工作方式

构建DLL

  头文件,其中包含待导出函数的原型、结构和符号的声明
  C/C++源文件,其中包含待导出函数的实现和变量
  编译器为每个C/C++源文件生成.obj文件
  连接器将每个.obj模块合并,从而生成DLL
  如果至少导出了一个函数/变量,那么连接器会同时生成.lib文件

构建EXE

  头文件,其中包含待导出函数的原型、结构和符号的声明
  C/C++源文件,其中包含待导出函数的实现和变量
  编译器为每个C/C++源文件生成.obj文件
  链接器将每个.obj模块合并,并使用.lib文件来解析对导入的函数/变量的引用,从而生成.exe(包含一个导入表,其中列出了必需的DLL和导入的符号)

运行应用程序

  加载程序为.exe创建地址空间
  加载程序将必需的DLL载入到地址空间中
  进程的主线程开始执行,应用程序开始运行

构建DLL模块

  在创建DLL的时候,事实上是创建了一组可供可执行模块(或其他DLL)调用的函数。
  一个DLL可以导出变量、函数或C++类来供其他模块使用,但在实际开发中应避免导出变量和C++类
  创建DLL时需要一个头文件包含想导出的变量和函数原型,并且定义用到的符号和数据结构;这个头文件需要分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值