VMP_virtual_ISA
0.VMP的工作原理1.VMP实现虚拟化的方案 虚拟机的寄存器:在内存开辟一段连续的区域当成虚拟机的寄存器,业界称之为VM_CONTEXT,某些版本的VMP用EDI指向这个区域 虚拟机的堆栈: 这个和物理机是一样的,直接在内存开辟就好。VMP还是用EBP指向栈顶 虚拟机的指令:不同版本VMP的指令是不一样的,这样可以在一定程度上防止VMP本身被破解,业界俗称VM_DATA 虚拟机的EIP:业界俗称veip,某些版本的VMP用ESI替代,指向VM_DATA,用以读取虚拟CPU需要执行的指令; 2、VMP虚拟机的执行流程 (1)想想启动VT时,是不是要先开辟一段内存空间,把当前guestOS部分寄存器的值保存好?VMP也一样,先保存物理寄存器的值,后续退出VM后才能还原 (2)让vEIP从VM_DATA读取虚拟机的指令(pcode) ...
main函数回溯
练习代码 工具:x32dbg 1234567891011#include<stdio.h>#include<stdlib.h>void Fun1(void){ }int main(){ printf("Fun1的地址 0x%x", Fun1); Fun1(); return 0;} Fun1的地址 0x2f1136 ctrl + g 0x2f1136 根据 [esp] 向上追一层 转到 0x002F18D8 定位到main 函数 0x002F18A0 main 函数处下断 根据esp 转上一层 0x002F2093 main函数在第4个call 被调用; 继续追 [esp] = 0x002F1EE7(第4个函数是main) 特征码 test je 2个mov push call add call (invoke _main函数) 向上追 根据[esp] = 0x002F1D7D 反汇编转到 ...
常见汇编2
多条件if跳转12345678910111213int a = 0;if (a >= 0 && a != 3) { printf("a is 0\n");}else if (a == 1) { printf("a is 1\n");}else if (a >= 2 && a < 4) { printf("a is 2\n");}else { printf("error\n");} 1234567891011121314151617181920212223242526272829303132333435363738394041 5: int a = 0;00414565 C7 45 F8 00 00 00 00 mov dword ptr [ebp-8],0 6: if (a >= 0 && a != 3)...
IAT_hook
1.IAT hook原理:IAT(Import Address Table)Hook 的原理主要是通过修改可执行文件在运行时的导入地址表,以便拦截对特定函数的调用并将其重定向到自定义的函数。这种技术常用于实现日志记录、函数替换和监控等目的。 原理步骤 了解 IAT: 在 Windows PE 文件中,IAT 是用于存储程序所需的外部函数地址的表。每当程序调用某个外部函数时,它实际上是通过 IAT 查找该函数的地址。 获取 IAT 地址: 程序加载时,操作系统会根据 PE 文件的导入表初始化 IAT。你可以通过解析 PE 文件结构,找到 IAT 的位置。 定位要 Hook 的函数: 通过遍历 IAT,找到需要 Hook 的函数的地址。例如,可以通过函数名找到对应的函数地址。 修改 IAT 中的地址: 将 IAT 中存储的函数地址替换为你自己的 Hook 函数的地址。这需要修改内存中的内容,因此通常需要更改内存保护属性(使用 VirtualProtect 函数)以允许写入。 实现 Hook 函数: 创建一个自定义的 Hook...
PE文件学习
PE 文件的学习:1.了解PE( Portable Execute)文件是Windows下可执行文件的总称,常见的有 DLL,EXE,OCX,SYS 等。它是微软在 UNIX 平台的 COFF(通用对象文件格式)基础上制作而成。最初设计用来提高程序在不同操作系统上的移植性,但实际上这种文件格式仅用在 Windows 系列操作系统下。**PE文件是指 32 位可执行文件,也称为PE32。64位的可执行文件称为 PE+ 或 PE32+,是PE(PE32)的一种扩展形式(请注意不是PE64)**。 事实上,一个文件是否是 PE 文件与其扩展名无关,PE文件可以是任何扩展名。那 Windows 是怎么区分可执行文件和非可执行文件的呢?我们调用 LoadLibrary 传递了一个文件名,系统是如何判断这个文件是一个合法的动态库呢?这就涉及到PE文件结构了。 2.结构学习一、DOS头DOS头 的作用是兼容 MS-DOS 操作系统中的可执行文件,对于 32位PE文件来说,DOS...
Inline_hook
[!IMPORTANT] inline_hook 一般的想法就是替换某个函数的第1个汇编命令 改成 jmp 目标函数的想法 另外需要注意的是 hook 函数与被hook处的函数 的 调用类型 要相同 1.x86 下的Inline hookx86 下 一般都是使用jmp 指令 : 5个字节 (0xE9 ** ** ** ** ) 后面四个字节就是偏移地址 12345678910111213141516171819202122232425262728293031#include<stdio.h>#include<Windows.h>int WINAPI hookMessageBox( _In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType){ printf("%s;%s\n", lpText, lpCaption); return 0;}void...
常见汇编
if_else:123456 cmp a,b je 0x0001 操作2 Yes jmp 0x00020x0001: 操作3 NO0x0002: switch case:123456789101112131415161718 操作1 cmp a,400 jg 0x000000 cmp a,400 je 0x000001 cmp a,300 je 0x00002 cmp a,200 je 0x0003 jmp 0x0004 操作2 jmp 0x0004 //实际上是有break; 操作3 jmp 0x0004 操作4 jmp 0x0004 操作50x0004: while()123450x0000: cmp a,100 jle 0x00001 操作 jmp 0x00000x00001: do while()1230x00001:操作 cmp a,100 jle 0x00001 for()123456789 mov dowrd...
网络空间搜索引擎2
shodan使用文档:https://xz.aliyun.com/t/2070?time__1311=n4%2BxnieDqmqqB7DuDBTroGkYDkQG8Y%2FRB%2F%2BeD&alichlgref=https%3A%2F%2Fwww.google.com%2F shodan的查询快捷语句:https://github.com/jakejarvis/awesome-shodan-queries shodan的py脚本:https://github.com/random-robbie/My-Shodan-Scripts 1.shodan.ioshodan搜索使用文档:https://help.shodan.io/the-basics/search-query-fundamentals kali上内置shodan 2.shodan的功能: 地图 监控 截图 过滤器 3.shodan常见命令:1shodan host 172.67.167.88 1shodan count apache 1shodan stats port:445 SMB
网络空间搜索引擎1
1.什么是网络空间:Cyber space搜索引擎:goole诞生————网页 发展:图片 音乐 声音 进一步: 网络系统 网络设备 工业系统 CDN 手机 交通信号灯 公园控制系统 IDS 平板 核电站 CMS 交换机 路由器 网络摄像头 加油站 办公软件 私人网盘 电网 数据库 打印机 ATM 机器人 企业大屏幕 2.网络空间搜索引擎:怎么扫描:1.用网络工具:zmap nmap 2.方式:IP库 枚举怎么标识设备: ip:域名 MAC 爬虫:url 开放系统 物理地址 操作系统 设备类型 3.实行威胁地图:fireeye4.安全性
Google_hacking
1.语法工具:pdf文档:https://web.archive.org/web/20140822191407/http://www.boris-koch.de/wp-content/uploads/2011/01/Liste-Google-Hacking.pdf2.一些运算符:完全匹配: 1"网络安全" 任意词语: 11 or 2 不包含: 1burp_suite - xxx 数字范围: 1number..number 3.高级语法1.只搜索某个网站的内容: 1site:zhihu.com 2.网页内容包括: 12allintext:Powered by Discuzintext:Powered by Discuz 标题:是html网页标签的标题 3.标题出现: 12intitle:allintitle: 4.url地址包括: 12allinurl:admin.phpinurl:index.php?id=1 5.文件类型: 1filetype:pdf 6.index of 1intitle:index...
WAF_difference
WAF:web应用防火墙1.作用(简单的) 2.WAF识别思路:1.0xInfection/Awesome-WAF: 🔥 Web-application firewalls (WAFs) from security standpoint. (github.com) 2.CSecGroup/wafid: Wafid identify and fingerprint Web Application Firewall (WAF) products. (github.com) 3.如何触发waf拦截:1.工具:kali:wafw00f1wafw00f https://pinpai.smzdm.com/ 1nmap www.12306.cn --script=http-waf-detect.nse 必须是动态地址: 1sqlmap -u "xxx.com?id=1" --identify-waf
