-
【安全技术】Windows Hook总结
1. 模块注入 1.1. 准备工作 1.1.1. 被注入DLL Demo 1.1.2. 提权 1.2. 注入方式 1.2.1. 远线程注入 1.2.2. APC注入 1.2.3. 消息钩子注入 1.2.4. 事件钩子注入 1.2.5. 导入表注入 1.2.6...…
-
【源码片段】Windows API
1. 进程模块相关 1.1. 获取当前调用栈模块 1.2. 获取模块签名 1.3. 创建进程dump 1.4. 判断系统和进程是32位还是64位 2. 格式转换 2.1. 宽窄字符串互转 3. 服务相关 3.1. 服务进程阻断调试 3.2. 服务切换身份 3.3. 服务退出监控 1. 进程模块相关1.1. 获取当前调用栈模块std::wstrin...…
-
【调试技术】格蠹汇编案例调试技术总结
从堆里抢救丢失的博客从堆里抢救丢失的博客案例场景:编写博客的当前窗口还在,只不过内容丢失了,明确知道是哪个进程(1)attach to process到iexplore.exe(多进程的情况,可以分别使用attach到每一个进程,看哪个无法切换到当前窗口)(2)s -u 10000 L8000000 "要搜索的内容"(3)!address 0x3fcd...确认一下内存属性是堆(4)s -u 0x3fcd... L10000 "要搜索的内容结尾",然后计算博客大小(5)db 0x3fc...…
-
【调试技术】windbg帮助文档
Debugging Tools for Windows (WinDbg, KD, CDB, NTSD) Getting Started with Windows Debugging Getting Started with WinDbg (User-Mode) Getting Started with WinDbg (Kernel-Mode) Debugging Techni...…
-
【调试技术】Windows问题Debug
1. 符号表 2. Windbg常用命令 2.1. 应用层调试命令 2.2. 内核层调试命令 3. 问题1:卸载Visual Studio 2015卡死 3.1. 首先找到是哪个卸载进程卡死 3.2. 找到是哪个窗口 3.3. 关闭对话框窗口 3.4. 解决visual studio 2015卸载问题 4. 问题2:定位测试程序卡死 5. 问题3:定位内存泄漏 ...…
-
【源码片段】c++ boost库使用笔记
Boost库编译步骤 Windows下编译 Unix下编译 信号槽signals2和单实例 boost::shared_ptr使用注意点 运行时类型识别boost::dynamic_pointer_cast 多继承同名函数的二义性 避免boost::enable_shared_from_this二义性问题 使用boost::filesystem::recursive_directory_iterator遍历文件夹 boost::as...…
-
【源码片段】Python笔记杂项
py资源 py符号 py脚本传参(类似exe传参) py读文件 py写文件 py函数加doc说明,以便help(xxxfunc)能展示出来。另外,演示另一个文件如何引用前一个文件写的函数 py中cls和self的区别 virtualenv创建python工程 Step1:安装virtualenv Step2:创建总工程根目录(根据特定python版本) Step3:激活Proj1 Step4:安装nose(自动化单元测试) ...…
-
【记录备忘】记录一些精选网址
网址 工具篇 VSCode相关 编程文档 在线转换工具 问题解决 开源项目 Go开源项目 网址工具篇VSCode相关 vscode编辑、编译、调试python官方教程:https://code.visualstudio.com/docs/python/编程文档 在线ap...…
-
【源码片段】sql笔记
实际操作过程中的积累 1 常用函数和符号 基本函数 判断字段不为空 sql里字符串与整型比较,是ok的 2 MySQL一些操作 基础操作 按照一个key一行显示 \G group分组组合 join on操作,默认是inner join on,求交集 向已有数据库新增一列 导出数据库表 3 PostgreSQL一些操作 基础操作 ...…
-
【操作指令】linux常用操作及问题笔记
实际操作过程中的积累 1 常用操作命令 压缩tar 解压tar 显示当前目录pwd 改变文件权限(可读、可写、可执行)chmod 运行某个sh脚本./ 打印内容echo 日期date 时间同步 上传rz 下载sz ubuntu设置代理 查看系统设备的相关命令 系统及性能监控相关工具 2 shell内使用的常用命令 $...…
-
【记录备忘】Jekyll搭建个人博客
1 概述 2 准备工作 3 异常处理 3.1 配置gem源 3.2 配置bundle源 3.3 配置msys源 3.4 生成blog以后,jekyll serve异常 4 总结 5 评论系统 6 本地启动jekyll1 概述 本博客基于Jekyll搭建个人博客作为模板创建而成,非常感谢作者!2 准备工作jekyll需要依赖ruby、msys、rubygem、bundle。基本安装步骤大致如下: 安装Ruby(最新...…
-
【源码片段】C++模板使用
类模板声明与定义 类模板函数指针 模板类中变量初始化 类模板参数当常量 类模板特化(不定义泛型模板函数,而去定义特定类型函数) 类中包含友元模板类类模板声明与定义template<typename T = char>class CXmlParser{public: CXmlParser(); ~CXmlParser(); bool Load(const std::wstring& strCfgPath); bool LoadFrom...…
-
【网络技术】网络是怎样连接的(六)- Web服务器、网络包旅程
0 探索线路 6 Web服务器 6.1 服务器概览 6.1.1 服务器程序的结构 6.1.2 服务器端的套接字和端口号 6.2 浏览器接收响应消息并显示内容 6.2.1 通过响应的数据类型判断其中的内容 7 网络包旅程0 探索线路6 Web服务器6.1 服务器概览6.1.1 服务器程序的结构6.1.2 ...…
-
【网络技术】网络是怎样连接的(五)- 防火墙、缓存服务器
0 探索线路 5 防火墙、缓存服务器 5.1 Web服务器的部署地点 5.1.1 在公司里部署Web服务器 5.2 防火墙的结构和原理 5.2.1 主流的包过滤方式 5.3 通过将请求平均分配给多态服务器来平衡负载 5.3.1 性能不足时需要负载均衡 5.3.2 负载均衡器...…
-
【网络技术】网络是怎样连接的(四)- 接入网、网络运营商
0 探索线路 4 接入网、网络运营商 4.1 ADSL接入网的结构和工作方式 4.1.1 互联网基本结构和家庭、公司网络是相同的 4.1.2 连接用户与互联网的接入网 4.1.3 ADSL Modem将包拆分成信元 4.1.4 ADSL将信元“调制”成信号、通过使用多个波来提高速率 4.1.5 分离器的作用 4.1.6 从用户到电话局,通过DS...…
-
【网络技术】网络是怎样连接的(三)- 集线器、交换机、路由器
0 探索线路 3 集线器、交换机、路由器 3.1 信号在网线和集线器中传输 3.1.1 局域网结构 3.1.2 防止网线中的信号衰减、利用双绞线抑止噪声 3.1.3 集线器将信号发往所有线路 3.2 交换机的包转发操作 3.2.1 交换机根据地址表进行转发 3.2.2 MAC地址表的维护 3...…
-
【网络技术】网络是怎样连接的(二)- 协议栈、网卡
0 探索线路 2 协议栈、网卡 2.1 创建套接字 2.1.1 协议栈内部结构 2.1.2 套接字对于协议栈的作用 2.1.3 调用socket时的操作 2.2 连接服务器 2.2.1 连接的含义 2.2.2 控制信息头部 2.2.3 连接操作的实际过程 ...…
-
【网络技术】网络是怎样连接的(一)- Web浏览器
0 探索线路 1 Web浏览器 1.1 生成HTTP请求 1.1.1 网址结构 1.1.2 网址解析 1.1.3 HTTP的基本思路 1.1.4 浏览器生成HTTP请求消息和收到的消息响应 1.2 向DNS服务器查询Web服务器的IP地址 1.2.1 IP地址基本知识 1.2.2 DNS服务...…
-
【架构设计】COM运行机制
概述COM(component-object-model 组件对象模型),是微软推出的一种强大的编程模型,编程思想。它致力于实现分布式系统的设计,这种思想也是面向对象分布式设计的基础。不同于原来熟知的C++面向对象模型,COM模型趋向于二进制级别的对象模型,而不是C++编译级别的类模型。一个黑盒子注意:首先明确一点,我们以下的讨论,都建立在进程内。当我们看到一个COM的时候,就是这么一个东西,一个黑盒子,看不到内部有些啥东西,但是可以看到外部接口,通过使用说明(接口定义头文件),可以知道,...…