本帖最后由 三爷 于 2015-11-2 10:41 编辑
一、前言 1、 C,C++,VC之间的关系,VC环境的安装配置 ---第1课 A.C,C++,VC之间的关系,VC环境的安装配置 1.2、我们的第一个程序(Hello World)代码详解.----第2课 A.我们的第一个程序(Hello World)代码详解. 2.1、传统的C语言编译方式 ---第3课 A、用记事本手写代码 B、命令行编译生成EXE(Cl.EXE) C、格式化输出函数printf D、转义字符\n E、main函数 2.2、VC集成环境编译方式 ---第4课 A、VC环境下创建项目工程 B、书写代码 C、Debug和Release D、文件包含#include 二、C语言概论 1C/C++基本数据类型 ---第5课 1.1整型(int,short,long,unsigned) A、整型常量(二进制,八进制十进制,十六进制) B、整型变量(基本型,短整型,长整型,无符号型) 变量占用空间大小(字节) 变量所表示数的范围 C、sizeof操作符 D、整数四则运算(+,-,*,/)及赋值(=) 1.2浮点型(实型)float,double ---第6课 A、实型常量(十进制数形式,指数形式) B、实型变量(单精度型和双精度型) C、单精度与双精度区别 1.3、字符(char) ---第7课 A、字符常量及特点 B、转义字符(\n\t\v\b\r\f\\\'\ddd\xhh C、字符变量 D、字符串常量 E、符号常量 F变量赋值和类型转换 G、变量赋初值 H、变量类型转换(自动转换,强制转换) 1.4、基本运算符 ---第8课 1、算术运算符(+,-,*,/,%,++,--) 2、关系运算符(>,<,==,>=,<=,!=) 3、逻辑运算符(&&,||,!) 4、位操作运算符(&,|,~,^,<<,>>) 5、赋值运算符(=,+=,-=,*=,/=,%=,&=,|=,^=,>>=,<<=) 1.5 基本运算符 ---第9课 6、条件运算符(三目运算? 7、逗号运算符(,) 8、指针运算符(*,&) 9、求字节数运算符(sizeof) 10、特殊运算符(括号,下标,成员) 1.6 基本运算符 ---第10课 11、运算符的优先级和结合性 12、自增1(++),自减1(--)运算符 13、算术表达式 14、赋值运算符和赋值表达式 15、复合赋值符及表达式(+=,-=,*=,%=,<<=,>>=,&=,^=,|=) 16、逗号运算符 2、C语言程序设计 2.1、程序代码结构 ---第11课 A、顺序结构 B、分支结构 C、循环结构 2.2、C程序的语句 ---第12课 A、表达式语句 B、函数调用句 C、控制语句(条件判断,循环执行,转向语句) D、复合语句 E、语句 E、赋值语句 F.、数据输出语句(printf,putchar) G、数据输入语句(scanf,getchar) 2.3分支结构程序 ---第13课 A.关系运算符和表达式 B.逻辑运算符和表达式(与(&&),或(||),非(!)) C.if语句的三种形式及注意事项 D.if语句嵌套及注意事项 E.条件运算符和表达式 F.switch语句(开关语句) 3、数组 3.1、 数组元素表示方法 ---第14课 A.元素的概念 B.下标的概念 3.2、二维数组 ---第15课 A、二维数组元素表示方法 B、二维数组的初始化 3.3、字符数组(字符串) ---第16课 A、字符数组的定义 B、字符数组的赋值 3.4、字符串常用函数 ---第17课 A、格式化字串sprintf B、puts屏幕显示字符串 C、gets从键盘获取字串 D、strcat字串连接函数 E、strcmp字串比较函数 4、函数 4.1 函数分类(库函数,自定义函数) ---第18课 A.什么是库函数 4.2 函数的定义 ----第19课 A、自定义函数 4.2 函数的调用 ----第20课 A.函数的嵌套调用 B.函数的递归调用 4.4 变量在函数中的作用域 ----第21课 A、局部变量 B、全局变量 C、变量的静态存储与动态存储 D、外部变量说明extern E. 静态变量 static F. 寄存器变量 register G 内部函数和外部函数 小结 5、指针 5.1指针概念 --- 第22课 A、指针变量的类型说明 B、指针变量的赋值 5.2、指针变量的运算 ---- 第23课 A、赋值运算 B、加减算术运算 C、数组与指针的关系 D、数组指针与指针数组 E、二维数组与指针的关系 5.3、函数与指针 ---- 第24课 A、函数指针变量 B、函数指针 C、指针函数 6、结构与联合与枚举 6.1、使用结构体 ---- 第25课 A、结构体的概念 B、结构体的定义 C、结构体的变量 D、使用结构体 6.3、结构数组 ---- 第26课 A、结构体数组的定义 B、结构体数组元素的引用 6.4、结构指针变量 ---- 第27课 A、指针对结构体变量的访问 B、指向运算符 C、指向结构体数组的指针的应用 6.5、结构体与函数 ----- 第28课 A、传递单个成员 B、传递整个结构 C、传递指向结构的指针 6.6、联合的定义 ----- 第29课 A、联合体又叫共用体 B、联合变量的说明 C、联合变量的赋值和使用 7、枚举,位运算 7.1 、枚举 ----- 第30课 A、类型定义和枚举变量的说明 B、枚举类型变量的赋值和使用 7.2 、位运算 ----- 第31课 A、&按位与 B、 |按位或 C、^按位异或 D、~取反 E、<<左移,>>左移 7.4 位域(位段) ------ 第32课 A.位域的概念 B.位域的使用 7.5 类型定义符typedef ------ 第33课 A.typedef的使用 8 预处理 8.0 文件包含与宏定义 ------ 第34课 A.#include "" B.#include <> C.#pragma E.无参数宏 F.带参数宏
8.3、条件编译 --------- 第35课 A.#indef,#else,#endif B.#ifndef,#else,#endif C.#if #else,#endif 三、VC内联汇编和常用汇编指令 1、数据传送指令 ----- 第36课 MOV,MOVSX,MOVZX PUSH,POP,PUSHA,POPA PUSHAD,POPAD XCHG,CMPXCHG 2、算术运算指令 ------第37课 ADD,ADC,INC,SUB,DEC,NEC,CMP,MUL,IMUL,DIV,IDIV CBW,CWD,CWDE,CDQ 3、逻辑运算指令 ------第38课 AND,OR,XOR,NOT,TEST, SHL,SAL,SHR,SAR,ROL,ROR,RCL,RCR 4、串指令 -----第39课 A、 MOVS,MOVSB,MOVSW,MOVSD CMPS,MOVSB,MOVSW SCAS, LODS,LODSB,LODSW,LODSD STOS, REP,REPE/REPZ,REPNE/REPNZ,REPC,REPNC B、纯ASM汇编演示以上指令 5、条件转移指令第一部分 ----第40课 1、无条件转移指令 (长转移) JMP 无条件转移指令 CALL 过程调用 RET/RETF过程返回. 2、条件转移指令 (短转移) 标志位 3.条件转移指令第二部分 ----第41课 A、 JA/JNBE 不小于或不等于时转移. JAE/JNB 大于或等于转移. JB/JNAE 小于转移. JBE/JNA 小于或等于转移. B、 JG/JNLE 大于转移. JGE/JNL 大于或等于转移. JL/JNGE 小于转移. JLE/JNG 小于或等于转移. 4.条件转移指令第三部分 ----第42课 A JE/JZ 等于转移. JNE/JNZ 不等于时转移. JC 有进位时转移. JNC 无进位时转移. JNO 不溢出时转移. B JNP/JPO 奇偶性为奇数时转移. JNS 符号位为 "0" 时转移. JO 溢出转移. JP/JPE 奇偶性为偶数时转移. JS 符号位为 "1" 时转移. 5、循环控制指令(短转移) ---- 第43课 LOOP CX不为零时循环. LOOPE/LOOPZ CX不为零且标志Z=1时循环. LOOPNE/LOOPNZ CX不为零且标志Z=0时循环. JCXZ CX为零时转移. JECXZ ECX为零时转移. 6、用__declspec(naked)写干净的函数 ---第44课 四、MFC编程 1、C++的类和对象 ----第45课 A.类的概念 B.对象的概念 C.封装的优势 2、常用控件(controlS) ---第46课 静态文本(static text) 文本框(text box) 按钮(Button) 组合框 列表框 选项卡(Tab Control) 图片(picture) 3.第一个API函数 ----第47课 A.擅长使用MSDN B.参数的分析 C.哪些是系统API? 4.第一个HelloWorld(平台SDK) ----第48课 A.纯API打造第一个HelloWorld程序 B.分析每个参数的意义 5、一个简陋的打字程序----第49课 A、使用资源 B、菜单和图标 C、接收键盘输入 6、一个简陋的打字程序----第50课 D、接收鼠标输入 E、设置文本和背景 7、GDI基本绘图1-----第51课 A、设备环境 B、往标题上写文字 C、往别的窗体上写文字 8、与窗体像素绘图相关 ----第52课 A、Windows的颜色和像素点 B、获得某个像素颜色值(外挂取色功能用到) C、绘制线条 D、绘制网格 9、绘制正弦曲线 ----第53课 A、循环找点 B、连接 10、绘制区域 ----第54课 A、绘制区域 B、坐标系统
11、实例小时钟1 ----第55课 A、小时钟外观 12、实例小时钟2 ----第56课 B、定时器 13、实例小时钟3 ----第57课 A、系统时间 B、小时钟程序例子 14、网络基础知识 ----第58课 A、网络基础知识 B、OSI网络七层参考模型 C、各层的意义 15、Winsock接口 ----第59课 A、套接字的概念 B、寻址方式 C、字节顺序 D、使用举例 16、Winsock编程流程(服务端) ----第60课 A、Winsock库的装入,初始化,释放 B、套接字的创建和关闭 C、绑定套接字到指定的IP地址和端口号 D、设置套接字进入监听状态 E、接受连接请求 F、收发数据 16、Winsock编程流程(客户端) ----第61课 A、Winsock库的装入,初始化,释放 B、套接字的创建和关闭 C、绑定套接字到指定的IP地址和端口号 D、设置套接字进入监听状态 E、接受连接请求 F、收发数据 18、手动打造后门客户端与服务端 ----第62课 A、学以致用 B、利用前两节课的知识,实现后门框架 19、动态数据链接库 ----第63课 A、动态数据链接库的概念 B、创建动态数据链接库 C、动态数据链接库的使用 20.修改注册表达到自启动 ----第64课 A、木马的启动方式 B、注册表的基础知识 C、如何利用注册表启动木马 21、编程实现进程管理 -----第65课 A、后门必备的特性 B、进程与线程的区别 C、编程实现遍历进程与结束进程 22、编程实现线程管理 -----第66课 A、并发线程的优势 B、编程实现并发线程 23、手动打造后门cmdshell ----第67课 A、正向连接与反弹连接 B、管道的概念 C、编程实现后门CMDSHELL功能 18、一个简单的内存修改器 ---第68课 A、编写测试程序 B、搜索内存 C、修改内存 五、算法实例 1.线性表顺序表 ---第69课 A、链表的概念 B、线性链表的定义 C、编程实现顺序链表 2.线性表单链表 ---第70课 A、单链表的概念 B、单链表结构定义 C、编程实现单链表 3.线性表双向链表 ----第71课 A、哨兵节点 B、双向链表的优势 C、编程实现双向链表 4、栈的实现 ----第72课 A、栈的概念 B、栈的结构 B、栈的编程实现 5.栈的应用实例(小人走迷宫) ----第73课 A、绘制迷宫 B、路线与栈的关系 C、小人走迷宫的实现 6、队列 -----第74课 A、队列的概念 B、队列的结构 C、队列的编程实现 7、循环队列 -----第75课 A、解决上节课遗留问题 B、使用循环队列 C、链表队列 8、双队列的实现 -----第76课 A、双队列的概念 B、双队列的结构 C、双队列的编程实现 9、串的实现 ----第77课 A、串的概念 B、串的结构 C、串的编程实现 10、树 ---第78课 A、树的概念 B、树的结构 C、树的编程实现 11、二叉树 ---第79课 A、二叉树的概念 B、二叉树的结构 C、二叉树的编程实现 12、树的使用 ---第80课 A、完善78课代码 B、实现创建与遍历 13、二叉树的使用 ---第81课 A、完全二叉树 B、满二叉树 C、二叉树的应用实例 14、图 ---第82课 A、什么是图 B、图的结构 C、图的编程实现 六、代码的升级与转换 1、vc代码升级 ---第83课 2、delphi与VC代码之间的转换 ---第84课 七、逆向技术 1.逆向热身 ---第85课 A、逆向工具 B、原理性工具 C、实战破解保护机制 2.IDA逆向 ---第86课 A、IDA逆向上节课代码 3、动态调试技术 ---第87课 A、OllyDbg(OD)调试器 B、界面介绍与配置 C、基本操作 D、实战破解TraceMe小程序 4、逆向程序,还原算法 ---第88课 A、翻译反汇编每条语句 B、分析程序流程 C、还原C语言代码 5、OD中的各种断点 ---第89课 A、INT 3断点 B、硬件断点 C、内存断点 D、内存访问一次性断点 E、消息断点 F、条件断点 G、条件记录断点 6、静态分析 ---第90课 A、静态调试之王--IDA B、用IDA分析程序架构流程 C、分析程序算法 D、完成程序序列号验证 7、未公开的技术 ---第91课 A、用DUMPBIN转储文件 B、动态分析DLL文件 C、用OD翻译未公开的函数 D、将RtlInitializeGenericTable还原成C语言 8、注册机的制作 ---第92课 A、明码比较软件的攻击 B、对算法逆向并写注册机 C、不理解细节也能写注册机 9、去掉讨厌的NAG窗口 ---第93课 A、使用资源工具找到目标窗口 B、逆向程序绕过NAG窗口 10、去掉时间与菜单功能限制 ---第94课 11、拆解KeyFile文件保护 ---第95课 八、歪挂技术 1.歪挂介绍 ---第96课 A.外挂的种类 B.外挂的原理 2.寻找窗口 ---第97课 A.FindWindow找到窗体 B.编程实现 3.模拟鼠标 ---第98课 A.mouse_event B.编程实现鼠标模拟 4.模拟键盘 ---第99课 A.k_event B.SendMessage C.编程实现键盘模拟 5.CALL的调用 ---第100课 A.反汇编程序 B.找到相关函数 C.实现远程调用 |