
Win基础编程 C/C++
eidolon8
这个作者很懒,什么都没留下…
展开
-
国际C语言混乱代码大赛所有得奖源码 1984----研究分析
anonymous.c 源码:int i;main(){for(;i["]<i; i){--i;}"];read('-'-'-',i "hell\o, world!\n",'/'/'/'));}read(j,i,p){write(j/p p,i---j,i/i);}这样的代码看着很眼晕,咱们用编缉器将它格式化后的代码如下:int i;main(){ for(; i["]<i;原创 2015-02-08 14:57:28 · 1916 阅读 · 0 评论 -
C语言 提取网站域名
#include <stdio.h>#include <string.h>char *getDomain(const char *s){ char *temp = (char *)malloc(strlen(s) + 1); temp[0] = '\0'; int i, j; for (i = 0; s[i]; ++i) { if (s[原创 2015-03-11 23:04:23 · 1176 阅读 · 0 评论 -
c++成员函数的重载、覆盖、隐藏区别
成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。重载与覆盖成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4原创 2015-03-05 23:28:29 · 495 阅读 · 0 评论 -
小甲鱼PE详解之区块表(节表)和区块(节)(PE详解04)
PE文件到内存的映射在执行一个PE文件的时候,windows 并不在一开始就将整个文件读入内存的,二十采用与内存映射文件类似的机制。也就是说,windows 装载器在装载的时候仅仅建立好虚拟地址和PE文件之间的映射关系。 当且仅当真正执行到某个内存页中的指令或者访问某一页中的数据时,这个页面才会被从磁盘提交到物理内存,这种机制使文件装入的速度和文件大小没有太大的关系。但是要注意的是,系统装载可执行转载 2015-03-11 14:23:50 · 500 阅读 · 0 评论 -
PE格式详细讲解9 - 输出表
当PE 文件被执行的时候,Windows 加载器将文件装入内存并将导出表(Export Table) 登记的动态链接库(一般是DLL 格式)文件一并装入地址空间,再根据DLL 文件中的函数导出信息对被执行文件的IAT 进行修正。 基础补充: 很多朋友可能看到这里会有点懵,各位看官请允许小甲鱼啰嗦一下,照顾初学者。我们都明白Windows 在加载一个程序后就在转载 2015-03-12 11:28:12 · 648 阅读 · 0 评论 -
PE格式详细讲解10 - 基址重定位
今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的细哦”。其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做。主要原因是因为PE结构非常重要,再说做这个课件的确是很费神的事哈。在这里再次强调一下,只要是windows操作程序,其就要遵循PE格式,再说人家看雪的网址就是www.pediy.com。转载 2015-03-12 15:06:14 · 974 阅读 · 0 评论 -
PE文件详解:资源结构体
Windows 将程序的各种界面定义为资源,包括加速键(Accelerator)、位图(Bitmap)、光标(Cursor)、对话框(Dialog Box)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version Information)等。资源有很多种类型,每种类型的资源中可能存在多个资源项,这些资源项用不同的ID 或者名称来转载 2015-03-13 10:12:57 · 872 阅读 · 0 评论 -
PE格式详细讲解8 - 输入表
在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识。小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的乱撞,终于撞到了输入表里边包含的函数名称,嘿嘿,不过地址,我们还是没能找着……这节课我们将深入来剖析输入表的结构,通过结合实例分析来帮助大家理解输入表的工作原理。转载 2015-03-12 10:02:42 · 634 阅读 · 0 评论 -
DLL 中 DEF 文件的使用
DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。首先创建 一个DLL程序,.cpp中int __stdcall Add(int numa, int numb){ return (numa + nu转载 2015-03-13 18:54:30 · 500 阅读 · 0 评论 -
c++成员函数的重载、覆盖、隐藏区别
成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。重载与覆盖成员函数被重载的特征: (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4原创 2015-03-05 23:55:20 · 596 阅读 · 0 评论 -
小甲鱼PE详解之IMAGE_DOS_HEADER结构定义即各个属性的作用
(注:最左边是文件头的偏移量。) IMAGE_DOS_HEADER STRUCT { +0h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +2h WORD e_cblp // Bytes on last page of file +4h转载 2015-03-11 01:22:58 · 641 阅读 · 0 评论 -
小甲鱼PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用
接着我们来谈谈 IMAGE_OPTIONAL_HEADER 结构,正如名字的意思,这是一个可选映像头,是一个可选的结构,但是呢,实际上上节课我们讲解的 IMAGE_FILE_HEADER 结构远远不足以来定义 PE 文件的属性。因此,这些属性在 IMAGE_OPTIONAL_HEADER 结构中进行定义。 因此这两个结构联合起来,才是一个完整的 “PE文件结构” 。那么我们接着就应该顺理成章地来谈转载 2015-03-11 12:12:49 · 703 阅读 · 0 评论 -
Windows基础编程-笔记
Windows基础编程语法前缀 windows结构类型 结构 含义 MSG 消息结构 WNDCLASS 窗口类结构 PS 绘图结构 RECT 矩形结构句柄简介 标识符 含义 HDISTANCE 实例(程序自身)句柄 HWND 窗口句柄 HDC 设备描述表句柄Windows应用程序中使用的各种Windows API函数声明,宏定原创 2015-02-07 16:37:58 · 596 阅读 · 0 评论 -
Windows驱动开发工具小结
驱动开发的主要工具:DDK(Device Development Kit),WinDriver, DriverStudio, NIVISA。这几种开发工具各有优缺点。用WinDriver和DriverStudio开发驱动比DDK简单容易上手,但WinDriver开发驱动没法脱离WinDriver环境不好发布,所以还是用DriverStudio比较好。而NI-VISA主要用于仪器驱动开发,在仪器控制方转载 2015-02-25 00:52:32 · 839 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应转载 2015-03-05 21:35:44 · 449 阅读 · 0 评论 -
C++多态的实现原理【转】
C++多态的实现原理用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。多态用虚函数来实现,结合动态绑定。纯虚函数是虚函数再加上= 0。抽象类是指包括至少一个纯虚函数的类。转载 2015-03-05 22:54:15 · 621 阅读 · 0 评论 -
PE文件结构 图
PE文件格式示意图 PE文件磁盘与内存映射结构图原创 2015-03-07 21:44:45 · 884 阅读 · 0 评论 -
小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用
PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里边包含着许多PE装载器用到的重要字段。下边小甲鱼将为大家详细讲解哈~首先是IMAGE_NT_HEADERS 结构的定义:(啥?结构不会,先看看小甲鱼童鞋的《零基础入门学习C语言》关于结构方面的章节吧~)IMAGE_NT_HEADERS STRUCT {+0h DWORDSignature +4转载 2015-03-11 01:57:13 · 702 阅读 · 0 评论 -
小甲鱼PE详解之区块表(节表)和区块(节)(PE详解05) IMAGE_SECTION_HEADER
这一讲我们结合实例来谈谈区块表的定义以及各个属性的含义。首先,我们先用之前学过的一点知识在二进制文件中手动翻找区块表,这样做的好处是可以使你很快的对PE结构牢记于心。学来的东西就是能用的东西,不能用的理论是空谈,是瞎扯。 (具体过程演示大伙可参考小甲鱼的视频教程:《解密系列》系统篇.第五讲)这里我们经过千辛万苦终于找到了我们的区块表了(当然将来我会教大家写一个自己的工具,让工具去找,现在让大家自己转载 2015-03-11 14:13:55 · 581 阅读 · 0 评论 -
(转)变形PE头添加节形式感染
前言:今天我们讲的主题是“变形PE头添加节形式感染”。因为大部分的添加节过程,在对节表结构尾部空隙不够写入一个新的节表结构时,都处理的不是很恰当。今天我来给大家带来一种思路,通过变形PE头来让我们有足够的空隙写入一个新的节表结构。变形PE头原理:这里的变形PE头的思路是用的比较方便的方法,就是将结构融合起来。聪明的你是否已经想到了? 就是将IMAGE_DOS_HEADER 和 IMAGE_NT_H转载 2015-03-11 01:12:00 · 659 阅读 · 0 评论 -
使用 DEF 文件导出 DLL
模块定义 (.def) 文件是包含一个或多个描述 DLL 各种属性的 Module 语句的文本文件。如果不使用 __declspec(dllexport) 关键字导出 DLL 的函数,则 DLL 需要 .def 文件。 .def 文件必须至少包含下列模块定义语句: 文件中的第一个语句必须是 LIBRARY 语句。此语句将 .def 文件标识为属于 DLL。LIBRARY 语句的后面是 DLL 的转载 2015-03-13 22:18:04 · 762 阅读 · 0 评论