随笔分类 - common_C/C++
摘要:前置知识 思路 通过PEB获取kernel32.dll 基地址 在windows操作系统中每一个进程系统都维护着一个描述该进程的结构体,我们称之为peb(进程环境块),如可执行文件加载到内存的位置,模块列表(DLL),指示进程是否被调试的标志,不同发行版的windows系统该结构体可能存在着差异,在
阅读全文
摘要:下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经编译好的包含 lib 和 include 文件的安装包即可。访问该网站点击下载完整的安装包,注意,不
阅读全文
摘要:场景 反向shell的场景下使用 原理 ICMP作为获取反向shell的通道 实践 运行 run.sh报错,可能是因为用的Parrot。改一下就可以了 或者直接运行主要命令。 攻击者机器运行: 目标机运行: 代码 VS2013编译通过 https://github.com/inquisb/icmps
阅读全文
摘要:思路 IPC E` 3、获取服务器的时间 3、设定计划任务按时间执行 用到的Windows API 建立网络驱动器 WNetAddConnection2() 断开网络驱动器 WNetCancelConne
阅读全文
摘要:测试结果 如果调用yara非要变成共享DLL的形式,加那么多的DLL,不如直接调用EXE文件。反而依赖vcruntime运行库的DLL会少很多。。。 调用libyara 调用libraya和C++调用动态链接库的基础没什么区别。 官方说明 https://yara.readthedocs.io/en
阅读全文
摘要:解决方法1 搜索msvcrt.lib所在的路径 把lib目录填写到【链接器】 【常规】 【附加库目录】里 解决方法2 spectre缓解 禁用 参考 https://stackoverflow.com/questions/6228112/link fatal error lnk1104 cannot
阅读全文
摘要:过年也没法阻挡写代码的热情。 场景 上机检查恶意木马。 功能截图
阅读全文
摘要:nsis下载地址:http://www.pc6.com/softview/SoftView_14342.html nsis使用: 启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包 选择“使用脚本向导创建新的脚本文件”,确定 进步脚本向导,下一步 第一步,
阅读全文
摘要:MFC创建线程示例 AfxBeginThread() 创建现场的方法是AfxBeginThread()函数。 在【.CPP】文件定义一个全局变量,决定什么时候退出这个线程。 拖一个BUTTON按钮控件,【创建线程】(IDC_BUTTON_THREAD),绑定单击事件函数。 回调函数 退出线程
阅读全文
摘要:目的 调用命令行程序,返回结果。 思路 把命令行结果输入到管道中,exe的输出信息都存在了strOutput这个变量里。 实现代码
阅读全文
摘要:说明 做一个批量进程内搜索字符串的工具。 试了processhacker 2.39 src.zip。 https://sourceforge.net/projects/processhacker/files/processhacker2/ 总是提示一个 。 不知道怎么解决。 找到这个版本可以进行编译
阅读全文
摘要:场景 使用D盾扫描到WEBSHELL后可以导出有路径的文本文件。 最后手动去把WEBSHELL复制到桌面然后以文件路径命名,挨个删除。 D盾界面是这样的。 手动一个个找WEBSHELL并且改名效率太低,使用MFC写一个小工具方便去现场以后查WEBSHELL的工作。 技术思路 D盾导出路径TXT 复制
阅读全文
摘要:场景 替换某个路径的所有“\\”为“_”。 很多时候取证需要把恶意代码文件取回来,然后清除。 如果在 这样的目录下,我会把路径也一并记录下来。 技术思路 分别替换掉“:"和“\\”就可以了 string::npos npos 是一个常数,用来表示不存在的位置 find find函数的返回值是整数,假
阅读全文
摘要:场景 在MFC中有时候只需要选择一个文件夹而不需要选择文件,这时候可以通过下列方式来进行选择 技术点 BROWSEINFO CoTaskMemFree 是一种函数,此函数用于释放被分配的内存块。 TRACE 宏有点象我们以前在C语言中用的Printf函数,使程序在运行过程中输出一些调试信息,使我们能
阅读全文
摘要:MFC 小型工具通用界面框架 0x1 场景 由于工作需要我会写代码开发工具给客户或者同事用。代码都能实现,但写个黑乎乎的命令行工具给别人用确实显得不够专业,用别人写好的成型工具又担心有后门。 所以掌握积累几个MFC的常用控件随时调用,代码量堆起来了就是不断反复利用的过程了。未来还是会把精力用在实现实
阅读全文
摘要:1、前言 前一篇笔记记录了怎么修改PE,此篇记录下如何利用自身的资源文件。 2、编程思路 获得资源句柄 获得资源文件大小 加载资源文件 锁定资源并获得其指针。 3、实践代码 1)编译以下代码将EXE作为资源导入到MFC的资源。 服务端 声明三个已经初始化值的变量 2)来到代码编辑区,我们在需要使用这
阅读全文
摘要:模板 模板是一种工具,模板可以使程序员能建立具有通用类型的函数库与类库; 模板具有两种不同的形式; 函数模板 类模板 函数模板 当一个add()函数接收两个参数,因为某种特定情况,所传入的实参数据类型不同,两个函数主体内行为处理是一样的;一个是处理int型的,另一个是处理double型的, 这种情况
阅读全文
摘要:多态 多态性是指对不同类的对象发出相同的消息将返回不同的行为,消息主要是指类的成员函数的调用,不同的行为是指不同的实现; 函数重载 函数重载是多态性的一种简单形式,它是指允许在相同的作用域内,相同的函数名对应着不同的实现; 函数重载的条件是要求函数参数的类型或个数有所不同。对成员函数的重载有以下的三
阅读全文
摘要:运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成。重载的运算符是遵循函数重载的选择原则,根据不同类型或不同参数来选择不同的重载运算符。 运算符重载的基本语法 成员函数形式 参数表列出该运算符需要的操作数。 运算符函数体对重载的运算符的含义
阅读全文