随笔分类 - common_Windows编程dddd
摘要:前置知识 思路 通过PEB获取kernel32.dll 基地址 在windows操作系统中每一个进程系统都维护着一个描述该进程的结构体,我们称之为peb(进程环境块),如可执行文件加载到内存的位置,模块列表(DLL),指示进程是否被调试的标志,不同发行版的windows系统该结构体可能存在着差异,在
阅读全文
摘要:场景 使用D盾扫描到WEBSHELL后可以导出有路径的文本文件。 最后手动去把WEBSHELL复制到桌面然后以文件路径命名,挨个删除。 D盾界面是这样的。 手动一个个找WEBSHELL并且改名效率太低,使用MFC写一个小工具方便去现场以后查WEBSHELL的工作。 技术思路 D盾导出路径TXT 复制
阅读全文
摘要:文件特征提取 1、利用哈希值作为病毒特征 2、选取病毒内部的特征字符串 3、选取病毒内部的特色代码 4、双重校验和 网络特征 1、具体的下载URL或者访问的URL 2、IP地址 3、网络域名 注册表信息提取 1、启动项 2、写死的某个开关值 内存特征提取 某个特定的页、读写权限、代码块大小 只要理解
阅读全文
摘要:说明 恶意代码数字签名验证功能,WinverityTrust、CryptQueryObject 代码实现 WinVerifyTrust // // Copyright (C) Microsoft. All rights reserved. // Example of verifying the em
阅读全文
摘要:Windows 64位架构与32位架构区别 所有的地址和指针都是64位的 所有的通用寄存器,包括RAX、RBX、RCX等在大小上都有所增长,不过这些通用寄存器的32位版本还是可以被访问的。 有些通用寄存器(RDI、RSI、RBP以及RSP)通过添加一个L后缀到它们的16位版本,已经被扩展成支持访问单
阅读全文
摘要:1、说明 枚举进程的常见几种方法 方法1:CreateToolhelp32Snapshot()、Process32First()和Process32Next() 方法2:EnumProcesses()、EnumProcessModules()、GetModuleBaseName() 方法3:Nati
阅读全文
摘要:1、MySQL UDF是什么 UDF是Mysql提供给用户实现自己功能的一个接口,为了使UDF机制起作用,函数必须用C或C ++编写,并且操作系统必须支持动态加载。这篇文章主要介绍UDF开发和利用的方法。 2、UDF开发 操作系统:Windows 10 测试环境:PHPStudy+Mysql 5.5
阅读全文
摘要:1、前言 前一篇笔记记录了怎么修改PE,此篇记录下如何利用自身的资源文件。 2、编程思路 获得资源句柄 获得资源文件大小 加载资源文件 锁定资源并获得其指针。 3、实践代码 1)编译以下代码将EXE作为资源导入到MFC的资源。 服务端 声明三个已经初始化值的变量 2)来到代码编辑区,我们在需要使用这
阅读全文
摘要:1、 前言 配置器的编写有很多的方式,主要是直接修改原始的受控端的程序,有的方式是把受控端和配置信息都放到控制端程序的内部,在需要配置受控端的时候直接输入配置信息,生成受控端;也有的方式是在外部直接修改未配置信息的受控端程序。 2、编程思路 服务端设置变量,然后读取变量的值。 配置端读取服务端的PE
阅读全文
摘要:1、环境: 操作系统:Windows 10 x64 编译器:VS2015 2、关键函数 字段说明 _In_ HKEY hKey, 打开注册表项的句柄。 _In_ LPCTSTR lpSubKey, 一子项,此功能打开或创建名称。 _Reserved_ DWORD Reserved, 此参数已保留,必
阅读全文
摘要:1、说明 很多黑客工具的实现是通过对文件进行读写操作的,而文件读写操作实质也是对API函数的调用。 2、相关函数 CreateFile : 创建或打开文件或I/O设备。最常用的I/O设备如下:文件,文件流,目录,物理磁盘卷,控制台缓冲,磁带驱动器,通信资源,邮槽,和管。函数返回一个句柄,可以根据文件
阅读全文
摘要:1、前言 mimikatz框架是非常精妙的,粗浅讲一下修改的思路。 它的模块主要由各个结构体数组组成,根据传入的命令搜索执行相应命令的模块 mimikatz.c 部分代码: 实际调用模块的方式 如果要添加各种变量作为功能模块。在打开解决方案后,global files目录中的globals.h文件可
阅读全文
摘要:1 说明 该NetUserEnum函数检索服务器上所有用户帐户的信息。 函数原型: 参数说明 servername [in] 指向常量字符串的指针,该字符串指定要在其上执行函数的远程服务器的DNS或NetBIOS名称。如果此参数为NULL,则使用本地计算机。 level[in] 指定数据的信息级别。
阅读全文
摘要:Mimikatz GitHub (源码) https://github.com/gentilkiwi/mimikatz Mimikatz GitHub Wiki (包含了一些说明文档) https://github.com/gentilkiwi/mimikatz/wiki GentilKiwi Bl
阅读全文
摘要:0x1 概要 记得某位同学提起在XXX得到了一个一键生成明文的工具,觉得很是神奇。。。 然而我一看图标就知道是mimikatz,这工具是开源的,只要改两行代码就可以实现写死命令了。 顺带讲讲编译过程中的问题和解决方法。 0x2 详情 调试这个工具的时候,发现新版本没生成debug模式的选项,F11调
阅读全文
摘要:1、简要 从前用的网络编程函数现在又做了一定的改动,报了这么3个错误。 2、解决方法1 右键属性 属性页选择【C/C++】 【常规】 【SDL检查】 选择为否。 3、代码解决 既然已经明确提示需要换更安全的函数,那就按照要求来就好了。 改为: gethostbyaddr()改用getnameinfo
阅读全文
摘要:A Basic Windows DKOM Rootkit Pt 1 https://www.landhb.me/posts/v9eRa/a basic windows dkom rootkit pt 1/ Project:https://github.com/landhb/HideProcess
阅读全文
摘要:学编程又有材料了 http://blog.nsfocus.net/malware sample analysis api/
阅读全文
摘要:1 学习目标 使用API添加用户可以绕过某些杀毒软件的限制。 2 编程思路 2.1 代码原理 使用NetUserAdd这个API添加普通权限的用户,NetLocalGroupAddMembers这个API添加管理员权限。 2.2 编写思路 1、定义USER_INFO_1 结构体 2、调用NetUse
阅读全文
摘要:1 学习目标 今天静态逆向mydocument病毒时,看到病毒代码为了防止自身被调试会先检测杀毒软件和调试工具的进程是否存在。如果没有杀毒软件则释放真正的病毒文件,提前熟悉一下枚举进程的反汇编代码。 2 编程思路 2.1 代码原理 这是一段检测指定进程是否存在的代码,使用CreateToolhelp
阅读全文