【Linux】-NO.87.Assembly.1.滴水逆向.1.001-【介绍】-
1.0.0 Summary
Tittle:【Linux】-NO.87.Assembly.1.滴水逆向.1.001-【基础】-
Style:Java
Series:Log4j
Since:2017-04-24
End:2017-05-07
Total Hours:30+
Degree Of Diffculty:5
Degree Of Mastery:5
Practical Level:5
Desired Goal:5
Archieve Goal:3
Gerneral Evaluation:3
Writer:kingdelee
Related Links:
http://www.cnblogs.com/kingdelee/
1.基础课程(一)线上班
汇编部分:
2.基础课程(二)线上班
WIN32篇
一、基础篇
1、Win32简介与IDE简介
2、字符编码与字符集
3、宽字符与Unicode
4、窗口、事件与消息
5、精简的窗口程序
6、文本输出与属性控制
7、对话框
8、文件操作
9、磁盘信息与时间信息的获取
二、应用篇
1、菜单栏的操作
2、鼠标与键盘
3、定时器
4、简单的GDI绘图操作
5、位图基础与显示
6、位图的拉伸与旋转
7、子窗口控件及与父窗口的消息传递
8、ListView控件的使用
9、注册表的基本操作
10、静态库与动态链接库
三、提高篇
1、进程
1、进程的创建
2、句柄表
2、线程
1、线程的创建
2、线程的同步
3、窗口与消息队列
1、消息的来源与存储
2、消息的分发与回调函数
4、内存管理
1、虚拟内存与物理内存
2、虚拟内存的几种状态与物理页的调拨
3、内存映射文件
5、注入
1、远程线程
2、远程线程注入
3、进程间通信的几种方式
4、模块隐藏
网络编程篇
一.基础原理
1.基本概念扫盲
1.TCP架构
1.TCP客户端和服务器端编程架构
2.TCP连接的三次握手与抓包分析
3.TCP的4次握手和抓包分析
2.UDP架构
1.UDP客户端和服务器的架构
3.多连接处理
1.多连接之多线程解决方法
2.多连接之select模型
4.分析
1.遍历物理网卡
2.原始数据包的获取与打印
3.MAC结构和MAC包分析
4.IP帧结构和IP包分析
5.TCP帧结构和TCP包分析
二.扩展篇
1.模仿360QQ管家获取下行网速
2.RSA加密基本原理
3.RSA库的使用
MFC基础篇
一,MFC原理
1.MFC的本质
2.第一个MFC程序
3.MFC初始化过程
4.MFC初始化过程2
5.运行时类型识别
6.6大核心机制之动态创建
7.消息映射
8.命令的传递
9.MFC分析
10.MFC-GDI基础
11.GDI
12.MFC-GDI
13.鼠标和键盘
14.键盘消息
15.对话框
二.MFC控件
1.控件原理及使用
1.MFC控件
2.MFC控件
2.控件介绍
1.ListBox控件
2.CListCtrl控件
3.Treelist控件
4.文件和资源操作
5.MFC多页面设计
QT入门篇
一.QT原理
1.QT扫盲及IDE介绍
2.QT工程创建及简单功能实现
3.QT信号与槽分析及代码实现
二.QT设计师模式
1.QT设计师模式设计界面
3.基础课程(三)线上班
基础(三)编程内功修炼--简单的DBMS系统
---建立用计算机解决物与物之间的关系和动作的思想,摆脱编程语言的束缚
行业应用:游戏开发、物联网、大数据、云服务、人工智能、所有信息管理系统,OA,CMS系统等
(DBMS例子下载)链接:http://pan.baidu.com/s/1boMKFLX 密码:2bzp
技术水平:C\C++中级工程师
学习任务硬指标:基础三 1.5W+代码量
基础(三)DBMS系统开发:数据库、数据结构、STL、COM编程
4.数据库基础:熟练使用数据库。
普通VIP会员年费398元付款链接:http://www.bcdaren.com/viparea2.aspx?vipid=16
拍下付款后请联系客服QQ:1250121864;特别提示:特殊商品,付款后不可申请退款!
教学任务:
1.数据结构
1.1概述
1.1.1数据结构的起源
1.1.2基本概念
1.1.3逻辑结构与物理结构
1.1.4抽象数据类型(Abstract Data Type,ADT)
1.2算法
1.2.1定义:算法是解决特定问题求解的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
1.2.2 特性:输入,输出,有穷性,确定性,可行性
1.2.3 算法设计的要求
1.2.4算法效率的度量方法
1.2.5算法时间复杂度
1.2.6算法空间复杂度
1.3线性表
1.3.1定义:0个或多个数据元素的有限序列
1.3.2线性表的抽象数据类型
1.3.3线性表的顺序存储结构
1.3.4线性表的链式存储结构
1.3.5静态链表
1.3.6循环链表
1.3.7双向链表
1.4栈
1.4.1定义:限定仅在表尾进行插入和删除操作的线性表。
1.4.2栈的抽象数据类型
1.4.3栈的顺序存储结构
1.4.4栈的链式存储结构
1.4.5栈的应用
1.5队列
1.5.1定义:只允许在一端进行插入操作,而在另一端进行删除操作的线性表
1.5.2队列的抽象数据类型
1.5.3循环队列
1.5.4队列的链式存储结构
1.6串
1.7树
1.7.1定义:
1.7.2结点的分类及相关概念:
1.7.3树的相关概念
1.7.4树的抽象数据类型
1.7.5树的存储结构
1.7.6二叉树
1.7.7二叉树的性质
1.7.8二叉树的存储结构
1.7.9二叉树的操作
1.7.10线索二叉树
1.7.11树,森林与二叉树的转换
1.7.12赫夫曼树及其应用
1.8图
1.8.1定义:
1.8.2抽象数据类型
1.8.3存储结构
1.8.4操作
1.8.5最小生成树
1.8.6最短路径
1.8.7拓扑排序
1.8.8关键路径
1.9查找
1.9.1概论
1.9.2顺序表查找
1.9.3有序表查找
1.9.4线性索引查找
1.9.5二叉排序树
1.9.6平衡二叉树
1.10排序
1.10.1概述
1.10.2冒泡排序
1.10.3简单选择排序
1.10.4直接插入排序
1.10.5快速排序
2.STL实用入门
2.1概述
2.1.1STL的起源
2.1.2基本概念
2.1.3使用STL的好处
2.2容器
2.2.1模板的简介
2.2.2 容器的简介
2.2.3 容器vector的用法
2.2.4容器deque的用法
2.2.5容器queue的用法
2.2.6容器stack的用法
2.2.7容器list的用法
2.2.8容器vector的用法
2.2.9容器set/multiset的用法
2.2.10 functor的使用方法
2.2.11 pair的使用方法
2.2.12 容器map/multimap的使用方法
2.2.13 各容器的使用时机
2.3算法Algorithm
3.COM组件
3.1COM的背景知识
3.1.1COM组件的起源
3.2从C++到COM
3.2.1C++客户重用C++对象
3.2.2将C++对象打包成DLL中
3.2.3C++对象使用抽象基类
3.2.4改由COM库装载C++对象
3.2.5将C++对象变成COM对象
3.2.6为COM添加多接口支持
3.3COM基础知识
3.3.1对象与接口
3.3.2COM应用模型
3.3.3COM组件
3.3.4COM客户
3.3.5进一步认识COM
3.4COM扩展技术
3.4.1可连接对象机制
3.4.2结构化存储
3.5COM技术的应用
3.5.1基于COM的应用技术
3.5.2理解在企业应用中使用COM组件技术
3.5.3在VistualC++中使用ActiveX控件
3.5.4在Visual C++中使用代码组件
3.5.5在VB中使用COM组件
3.5.6在Web站点中使用COM组件
3.6用VC开发COM应用
3.6.1用MFC开发COM应用
3.6.2用ATL开发COM应用
3.7自动化
3.7.1自动化技术基础
3.7.2用MFC开发自动化组件
3.7.3用ATL开发自动化组件
4.QT
4.1准备工作
4.1.1Qt Creator的下载与安装
4.1.2Qt Createor环境介绍
4.2编写一个HelloWorld程序
4.3窗口部件
4.3.1窗口与子部件
4.3.2对话框QDialog
4.3.3其他窗口部件
4.4布局管理
项目:完成DBMS系统
4.基础课程(四)线上班
学习任务硬指标:基础四 1W+正向代码 + 1W+逆向代码
基础(四)PE、硬编码 线上班公告
说明:在原滴水逆向初级班3期内容基础上,增加逆向分析实战解析内容,训练实战方法技巧,并增加练习强度。独立录制,简洁明了。
普通VIP会员年费398元付款链接:http://www.bcdaren.com/viparea2.aspx?vipid=16
拍下付款后请联系客服QQ:1250121864;特别提示:特殊商品,付款后不可申请退款!
13、手动脱壳
5.线上中级班(上)
线上中级班(上)
教学目标:操作系统是连接硬件与用户层软件的枢纽。学习操作系统可以了解内核,从而熟悉计算机的架构。中级课程修炼完成,恭喜你,已经具备成为底层技术大牛的基本功。剩下的只是时间问题—积累实际开发的工作经验。
高级VIP会员费998元付款链接:http://www.bcdaren.com/viparea2.aspx?vipid=19
拍下付款后请联系客服QQ:1250121864;特别提示:特殊商品,付款后不可申请退款!
课程大纲:
保护模式:
01、保护模式
02、段寄存器结构
03、段寄存器属性探测
04、段描述符与段选择子
05、段描述符属性_P位_G位
06、段描述符属性_S位_TYPE域
07、段描述符属性_DB位
08、段权限检查
09、代码跨段跳转流程
10、代码跨段跳转实验
11、长调用与短调用
12、调用门
13、中断门
14、陷阱门
15、任务段
16、任务门
17、10-10-12分页
18、PDE_PTE
19、PDE_PTE属性(P_RW)
20、PDE_PTE属性(US_PS_A_D)
21、页目录表基址
22、页表基址
23、2-9-9-12分页
24、TLB
25、中断与异常
26、控制寄存器
27、PWT_PCD
线上班:
跨进程监控:不打开被监控进程就可以知道它做了什么事情
系统调用:
01、API函数的调用过程(3环部分)
02、API函数的调用过程(3环进0环)
03、API函数的调用过程(保存现场)
04、API函数的调用过程(系统服务表)
05、API函数的调用过程(SSDT)
线上班:
SSDT HOOK 实现进程隐藏:在任务管理器中不可见/用正常API查不到
Inline HOOK 实现进程保护:无法关闭
进程与线程:
01、进程结构体、线程结构体
02、KPCR
03、等待链表_调度链表
04、模拟线程切换
05、Windows线程切换_主动切换
06、Windows线程切换_时钟中断切换
07、Windows线程切换_时间片管理
08、Windows线程切换_TSS
09、Windows线程切换_FS
10、Windows线程切换_线程优先级
11、进程挂靠
线上班:
跨进程读写内存:不用Windows函数
强制进程结束:干掉主动防御
驱动开发:
01、配置驱动开发环境
02、编写、部署、运行驱动程序
03、驱动程序调试
04、0环与3环通信
05、内存
06、字符串
07、文件
08、进程
句柄表:
01、句柄表
02、全局句柄表
线上班拓展应用:
隐藏进程遍历:找到一切隐藏进程
反调试系列:句柄表
APC机制:
01、APC的本质
02、备用Apc队列
03、APC挂入过程
04、内核APC执行过程
05、用户APC执行过程
线上班拓展应用:
APC注入
阶段项目:
搭建自己的0环-3环调用框架,实现不依赖API、不依赖系统调用、不依赖系统内核函数,从3环到0环完全自己实现:
<1> 重写3环API
<2> HOOK KiFastCallEntry函数(或者HOOK 360相关函数) 接管3环请求
<3> 创建并使用自己的SSDT表
<4> 实现自己的内核函数,并挂到SSDT表中
6. 线上中级班(下)
教学目标:操作系统是连接硬件与用户层软件的枢纽。学习操作系统可以了解内核,从而熟悉计算机的架构。中级课程修炼完成,恭喜你,已经具备成为底层技术大牛的基本功。剩下的只是时间问题—积累实际开发的工作经验。
高级VIP会员费998元付款链接:http://www.bcdaren.com/viparea2.aspx?vipid=19
拍下付款后请联系客服QQ:1250121864;特别提示:特殊商品,付款后不可申请退款!
中级班下:
事件等待:
01、临界区
02、自旋锁
03、线程等待与唤醒
04、WaitForSingleObject函数分析
05、事件、信号量、互斥体
线上班拓展应用:
多核HOOK
异常:
01、CPU异常记录/模拟异常记录
02、内核异常的处理流程
03、用户异常的分发
04、VEH、SEH
05、编译器扩展SEH
06、未处理异常
线上班拓展应用:
反调试系列:异常
软件调试:
01、调试框架搭建
02、INT 3异常处理实现
03、内存断点实现
04、硬件断点实现
05、单步步入实现
06、单步步过实现
07、调试内核函数逆向分析
线上班拓展应用:
普通版3环调试器:使用API实现
反调试系列:调试API
内核重载:
01、内核重载
内存管理:
01、内存管理
消息机制:
01、消息机制
内核回调机制:
01、内核回调机制
线上班阶段项目:
01、加强版3环调试器:
<1> 不依赖3环API、不依赖系统调用、不依赖系统内核函数.
<2> 自建调试体系(不用重载内核、不依赖DebugPort、不依赖调试线程)
<3> 无痕HOOK实现自主异常分发
02、内核级系统防护软件
<1> 内核级进程、线程检测(包括隐藏进程和隐藏线程)
<2> 内核级驱动模块检测(包括隐藏驱动模块).
<3> 挂钩检测:SSDT、键盘、内核、中断表
<4> 系统监控:进程监控、注册表监控、驱动模块监控
【Linux】-NO.87.Assembly.1.滴水逆向.1.001-【介绍】-的更多相关文章
- 【Assembly】-NO.88.Assembly.2.滴水逆向.1.002-【位运算及基础指令】-
1.0.0 Summary Tittle:[Assembly]-NO.88.Assembly.2.滴水逆向.1.002-[]- Style:Java Series:Log4j Since:2018-0 ...
- tar.xz如何解压:linux和windows下tar.xz解压命令介绍
在linux下怎么解压和压缩tar.xz文件? (本文由www.169it.com搜集整理) 在linux下解压tar.xz文件步骤 1 2 # xz -d ***.tar.xz //先解压xz # ...
- Linux系统IO分析工具之iotstat常用参数介绍
Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...
- Linux系统IO分析工具之iotop常用参数介绍
Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...
- Linux curl命令使用代理、以及代理种类介绍(转)
Linux curl命令使用代理.以及代理种类介绍 本文转自http://aiezu.com/article/linux_curl_proxy_http_socks.html,感谢作者 有时出于个 ...
- 滴水逆向初级-C语言(二)
2.1.C语言的汇编表示 c语言代码 int plus(int x,int y) { return 0; } void main() { __asm { mov eax,eax } //调用函数 pl ...
- Linux Shell 高级编程技巧3----运行级别脚本介绍
3.运行级别脚本介绍 3.1.运行级别 运行级别介绍: 0 关机 1 单用户模式 2 多用户模式 ...
- linux学习笔记之文件类型,及目录介绍
引用A:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/20/3033131.html 引用B:http://www.cnblogs.c ...
- Linux环境下的GCC编译器与GDB调试工具介绍
假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...
随机推荐
- 每天学习一个Linux命令-目录
在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...
- redis 集群搭建碰到的问题
make PREFIX=/usr/local/redis install把编译好的redis 安装到指定目录下. redis.conf文件从源码目录拷贝到/usr/local/redis(安装目录)下 ...
- SparkStreaming+Kafka 处理实时WIFI数据
业务背景 技术选型 Kafka Producer SparkStreaming 接收Kafka数据流 基于Receiver接收数据 直连方式读取kafka数据 Direct连接示例 使用Zookeep ...
- Android中的AlarmManager的使用
AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent.而使用Intent的时候,我们还需要它执行一个动作,如startActivity, ...
- myeclipse及Eclipse中.classpath、.project、.settings、.mymetadata(myeclipse特有)介绍
引言 今天在创建java项目的时候遇到了很多的错误,在解决的过程中遇到了一些根本不知道什么作用的文件,然后按照网上的一些做法可以将问题解决,但是这也说明我们在学习的时候很多基础和细节的地方是我们薄弱的 ...
- JS数组常用方法总结
JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array(20); / ...
- unity3d IL2CPP for android
unity3d 使用IL2Cpp导出android工程报以下错误解决方法 重点是这块 “”System.Reflection.TargetInvocationException: ���õ�Ŀ�귢�� ...
- 扁平数组构建DOM树
interface IOrganizationNode { id: string; code: string; name: string; localName: string; localNameLo ...
- 浅析 <路印协议--Loopring> 及整体分析 Relay 源码
作者:林冠宏 / 指尖下的幽灵 前序: 路印协议功能非常之多及强大,本文只做入门级别的分析. 理论部分请细看其白皮书,https://github.com/Loopring/whitepaper 实际 ...
- java8时间类的一些封装
1.判断平年和闰年 (prolepticYear & 3) == 0 这个条件使用了位运算,与上3在二进制计算下即为:& 00…011.目的是保留最后2位二进制数,然后判断是否最后两位 ...