1.3 PROGRAM DEVELOPMENT ENVIRONMENT

1.4 WIN32 EXECUTEABLE FILE FORMAT

We should also know that complied binary code is a data structure in itself,which the operating system operates on when code is loaded into memory for execution.For Win32 platforms,this data structure is called Portable Executable,or PE,file format.

Understanding the PE file format helps greatly with Windows program.It helps you understand how source code is turned into binary code,where global variables are stored,and how are they initialized,including how shared variables work.Every DLL in the Win32 system is in the PE format.So understanding the PE format helps you understand how dynamic linking works,how inport references are resolved,and how to avoid dynamic rebasing of DLLs.The basic technique of API hooking depends heavlly on kowledge of import table details.Understanding the PE format also helps you understand how virtual memory space is structured in the Win32 environment.There are a few places where knowledge of PE file format will be needed in this book,so we briefly discuss the PE file format and its loaded form in RAM here.

第3小节讲的是程序开发环境,目前尚非实用,略去。第4小节,简略地讨论了PE文件格式及其加载进RAM的形式。关于PE文件的格式,可以参考小甲鱼的加密解密视频教程

另外鱼C论坛是一个不错的论坛,附上地址 http://bbs.fishc.com/forum.php

小甲鱼的空间 http://bbs.fishc.com/home.php?mod=space&uid=9&do=index

另,小甲鱼教学视频参考的貌似是看雪论坛《加密与解密》(第三版)第五章的内容

而我也准备花一些时间认真研究下PE文件格式

之所以学Windows_Graphics_Programming_Win32_GDI_and_DirectDraw是前面压缩位图实例中遇到的压缩bitmap文件的难题,没想到这本书里面介绍的内容比预想的多太多

1.3 PROGRAM DEVELOPMENT ENVIRONMENT的更多相关文章

  1. How to set up Dynamics CRM 2011 development environment

    Recently I have been starting to learn Microsoft Dynamics CRM 2011 about implement plugin and workfl ...

  2. Create A .NET Core Development Environment Using Visual Studio Code

    https://www.c-sharpcorner.com/article/create-a-net-core-development-environment-using-visual-studio- ...

  3. The Google Test and Development Environment (持续更新)

    最近Google Testing Blog上开始连载The Google Test and Development Environment(Google的测试和开发环境),因为blogspot被墙,我 ...

  4. Programming in Go (Golang) – Setting up a Mac OS X Development Environment

    http://www.distilnetworks.com/setup-go-golang-ide-for-mac-os-x/#.V1Byrf50yM8 Programming in Go (Gola ...

  5. storm环境搭建(前言)—— 翻译 Setting Up a Development Environment

    Setting Up a Development Environment 搭建storm开发环境所需步骤: Download a Storm release , unpack it, and put ...

  6. Storm(1) - Setting Up Development Environment

    Setting up your development environment 1. download j2se 6 SDK from http://www.oracle.com/technetwor ...

  7. Establish the LAMP (Linux+Apache+MySQL+PHP) Development Environment on Ubuntu 14.04 Operating System

    ######################################################## Step One: Update the software package in yo ...

  8. How to enable C development in a Windows 10 development environment VM

    To enable C development in a Windows 10 development environment VM, follow these steps: Start VS in ...

  9. Could not install the app on the device, read the error above for details. Make sure you have an Android emulator running or a device connected and have set up your Android development environment:

    Administrator@DESKTOP-EHCTIOR MINGW64 /d/react-native-eyepetizer (master) $ react-native run-android ...

随机推荐

  1. 简化通过classname查找 方法

    function getClass(oParent,sclass){ var aEle=oParent.getElementsByTagName('*'); var result=[]; for(va ...

  2. Observer pattern 观察者模式

    一.认识观察者模式 我们看看报纸和杂志的订阅是怎么回事: 1.报社的业务就是出版报纸. 2.向某家报社订阅报纸,只要他们有新的报纸出版,就会给你送来,只要你是他们的订户,你就会一直收到报纸. 3.当你 ...

  3. ssi项目(1)环境搭建

    1.环境准备 导包(jdk1.8只支持spring4.0以上的版本) mysql驱动包 c3p0驱动包 mybatis包 spring-core.spring-aop.spring-web.sprin ...

  4. CodeForces 474B E(Contest #1)

    题意: 给你一个数n,代表n段区间,接下来有n个数(a1,a2,...an)代表每段区间的长度,第一段区间为[1,a1],第二段区间为[a1+1,a1+a2],...第i段区间为[ai-1+1,ai- ...

  5. c语言问卷

    1.你对自己的未来有什么规划?做了哪些准备? 答:关于未来我想从事设计网页.做小游戏或者app的工作,因为是金融服务外包方向,也许也会进入银行或者证券公司管理银行系统.让英语更近一层,可进入外企工作. ...

  6. Android ShapeDrawable

    今天做项目碰到一个这样的情况,就是颜色指示框,用的是正方形边框是黑色的,里面填充颜色,颜色值是动态的,为了解决这个问题,查了好多资料,终于找到解决的方法,利用ShapeDrawable,我们自定义一个 ...

  7. php session的操作

    [设置session数据] <?php session_start(); //初始化 //session文件中可以保存 dobule,integer,bool,array,object $_SE ...

  8. DataTable转Json字符串(使用Newtonsoft.Json.dll)

    DataTable转Json字符串(使用Newtonsoft.Json.dll) 在需要把DataTable转为Json字符串时,自己手动拼接太麻烦,而且容易出错,费时费力,使用Newtonsoft. ...

  9. EasyUI使用JSON保存数据

    目前来说,使用JSON保存数据比较方便,前台可以不用Test.aspx 页面,可以直接用Html页面,使用.aspx页面的弊端就不在这里熬述. 具体步骤如下: 1.新建一个Html页面,命名为Test ...

  10. Spark External Datasets

    Spark能够从任何支持Hadoop的存储源来创建RDD,包括本地的文件系统,HDFS,Cassandra,Hbase,Amazon S3等.Spark支持textFile.SequenceFiles ...