0x01 包引入 { "require": { "picqer/php-barcode-generator": "^2.0" } } 0x02 测试代码 <?php include "vendor/autoload.php"; $generator = new \Picqer\Barcode\BarcodeGeneratorHTML(); $sample_code = "SC".date('Ymd').mt_rand(100000,999999).mt_rand(8000,9000)...

阅读全文>>

正则式:^\S+@\S+\.\S{2,}$ 可验证英文和中文域名的邮箱,如下邮箱格式都可验证: aaa@aaa.com aaa@aaa.com.cn aaa@中文.com aaa@中文.中国 中文@aaa.com 中文@中文.com 中文@中文.中国

阅读全文>>

避免写shellcode, 还是依赖的硬编码 // 远程代码注入.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> //自己定义个结构体,方面后面参数使用 /************************************************************************/ /* 远程线程实现CreateFile ...

阅读全文>>

主要是通过teb+peb实现模块隐藏 // HideDll.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <Windows.h> #include <stdlib.h> DWORD g_isHide = 0; typedef struct _UNICODE_STRING { USHORT Length; USHORT Maximu...

阅读全文>>

接着上篇的文章, 进程间通信,主要依赖的是fileMapping 三个代码部分 1: Game.exe #include "stdafx.h" void Attack() { printf("**********攻击**********\n"); return; } void Relax() { printf("**********打坐**********\n"); return; } void Blood() { printf("**********回血**********\n"...

阅读全文>>

直接使用远程线程调用 LoadLibrary即可 #include "stdafx.h" #include <windows.h> BOOL DllInject(DWORD dwProcessID,LPCTSTR lpDllName) { HANDLE hProcess = 0; //1 打开指定进程 hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcessID); if(hProcess == NULL){ OutputDebugString("OpenProce...

阅读全文>>

#include "stdafx.h" typedef IMAGE_SECTION_HEADER (*PIMAGE_SECTION_HEADERS)[1]; // 计算对齐后的大小 unsigned long GetAlignedSize(unsigned long Origin, unsigned long Alignment) { return (Origin + Alignment - 1) / Alignment * Alignment; } // 计算加载pe并对齐需要占用多少内存 ...

阅读全文>>

//1、以挂起的方式创建进程,观察创建后的结果 STARTUPINFO ie_si = {0}; PROCESS_INFORMATION ie_pi; ie_si.cb = sizeof(ie_si); TCHAR szBuffer[256] = "C:\\notepad.exe"; CreateProcess( NULL, szBuffer, ...

阅读全文>>

思考: 每个线程在执行的时候,都会独自占用一个CPU,当系统中的线程数量 > CPU的数量时,就会存在多个线程共用一个CPU 的情况。但CPU每次只能运行一个线程,Windows每隔20毫秒会进行线程的切换,那比如线程A执行到地址:0x2345678 eax:1 ecx:2 edx:3 ebx:4...还有eflag标志寄存器中的值等等。。。 此时,线程执行时间到了,被切换到了线程B。。。。当线程B的时间片也到了,再切换会线程A时,系统是如何知道该 从哪个地址开始执行呢?被切换前用到的各种寄存器的值该如何恢复呢? CONTEXT: 该结...

阅读全文>>

0x01 处理需求: 第一组:空格替换为去掉,有小空格和大空格都要去掉; 第二组:—和-; 第三组:大小括号替换,统一成小括号。()() 第四组:斜杠替换,/替换/。 第五组:【替换为[,】替换为]。 第六组:英文字母大小写替换。 第七组:回车符、切换符替换为去掉。 将这些特殊字符处理后,再进行数据比对,判断是否合格 0x02 代码实现 实现思路,  读出特殊字符的二进制码, 然后针对二进制码,进行数据处理 <?php $keyword = '11 12 22...

阅读全文>>

代码来源0day书籍, 需要自行修改测试地址 测试代码 #include <windows.h> #include <iostream.h> char shellcode[]= "\xFC\x68\x6A\x0A\x38\x1E\x68\x63\x89\xD1\x4F\x68\x32\x74\x91\x0C" "\x8B\xF4\x8D\x7E\xF4\x33\xDB\xB7\x04\x2B\xE3\x66\xBB\x33\x32\x53" "\x68\x75\x73\x65\x72\x54\x33\xD2\x64...

阅读全文>>

在Win32的核心, 结构化异常处理(Structured Exception Handling)(SEH) 是操作系统提供的一种服务. 你能找到的所有关于SEH的文档都会描述某一种编译器的运行时库(runtime library)对操作系统实现的某种包装. 我会层层剥析SEH一直到它的最基本的概念.   这篇文章假设你熟悉Win32,C++   文章示例代码: Exception.zip 在所有由Win32操作系统提供的基础设施中, 可能被最广泛应用却没有文档说明的就是结构化异常处理了. ...

阅读全文>>

代码来源于 0day书籍 #include "stdafx.h" char popup_general[]= "\xFC\x68\x6A\x0A\x38\x1E\x68\x63\x89\xD1\x4F\x68\x32\x74\x91\x0C" "\x8B\xF4\x8D\x7E\xF4\x33\xDB\xB7\x04\x2B\xE3\x66\xBB\x33\x32\x53" "\x68\x75\x73\x65\x72\x54\x33\xD2\x64\x8B\x5A\x30\x8B\x4B\x0C\x8B" "\x49\x1C\x8B\x09\x8B...

阅读全文>>