测试打印PE输出表信息 主要是RVA 和 FOA 之间的转换要注意, 单独写了一个函数进行转换 转换函数 DWORD RVAToFileOffset(LPVOID pFileBuffer,DWORD dwRva) { PIMAGE_DOS_HEADER pDosHeader = NULL; PIMAGE_NT_HEADERS pNTHeader = NULL; PIMAGE_FILE_HEADER pPEHeader = NULL; PIMAGE_OPTIONAL_HEADER32 pOptionHead...

阅读全文>>

1 \ 生成dll文件 myDll.h // MyDll.h: interface for the MyDll class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_MYDLL_H__E6C7930C_99AF_46AF_B08E_42EDB1680395__INCLUDED_) #define AFX_MYDLL_H__E6C7930C_99AF_46AF_B08E_42EDB...

阅读全文>>

开始以为很简单(直接可以进行文件更改) 一开始的思路 主要是是对节表进行合并 1: 更改节表(变为一个,更改内存大小, 更改文件大小) 2:更改属性 3: 更改节的数目 直接使用文件修改的方法(手动修改方法) 全部无法运行, 蛋疼的厉害 然后,直接先转换为 ImageBuffer,  再次修改, 几个属性,才搞定 我也不知道为什么. 贴一下修改的代码 // PEOperate.cpp: implementation...

阅读全文>>

添加一个节 需要修改的数据 1 添加一个新的节 (copy一份) 2 在新增节的后安眠, 填充40个00 3 修改pe头中节的 数量 4 修改SizeOfImage的大小 5 在原有的数据的最后,新增一个节的数据,(内存对齐的整数倍) 6 修正增加的节的属性 手动新增一个节表和节  保证修改后的程序能正常运行 编程实现,新增一个节, 病添加代码 编程实现,扩大最后一个节,并添加代码 测试代码,写的很垃圾, 可用, 不过,不推荐大家使用 void TestAddSecToFile(LP...

阅读全文>>

主要使用就是PE的知识 用到了前面两天的函数代码,这里直接贴主应用代码 void TestAddCodeInCodeSec(LPSTR lpszFile) { LPVOID pFileBuffer = NULL; pFileBuffer= ReadPEFile(lpszFile); if(!pFileBuffer) { printf("文件读取失败\n"); return; } PIMAGE_DOS_HEADER pDosHeader = NULL; PIMAGE_NT_HEADERS pNTHeader ...

阅读全文>>

检测测试利用PE架构, 将文件载入到内村, 主要利用的是节表的知识 代码目录(多动手,总会有收获!!): // PEOperate.cpp: implementation of the PEOperate class. // ////////////////////////////////////////////////////////////////////// #include "PEOperate.h" ///////////////////////////////////////////////////////////...

阅读全文>>

主要是根据PE结构, 使用文件读取的方式,依次读取PE信息: #include "stdio.h" #include "windows.h" /* typedef struct _IMAE_DOS_HEADER { //DOS .EXE header 位置 WORD e_magic; //Magic number; 0x00 WORD ...

阅读全文>>

1 基本概念 下表描述了贯穿于本文中的一些概念: 名称 描述 地址 是“虚拟地址”而不是“物理地址”。为什么不是“物理地址”呢?因为数据在内存的位置经常在变,这样可以节省内存开支、避开错误的内存位置等的优势。同时用户并不需要知道具体的“真实地址”,因为系统自己会为程序准备好内存空间的(只要内存足够大) 镜像文件 包含以EXE文件为代表的“可执行文件”、以DLL文...

阅读全文>>

PE文件是Win32的原生文件格式.每一个Win32可执行文件都遵循PE文件格式.对PE文件格式的了解可以加深你对Win32系统的深入理解. 一、 基本结构。   上图便是PE文件的基本结构。(注意:DOS MZ Header和部分PE header的大小是不变的;DOS stub部分的大小是可变的。) 一个PE文件至少需要两个Section,一个是存放代码,一个存放数据。NT上的PE文件基本上有9个预定义的Section。分别是:.text, .bss, .rdata, .data, .rsrc, .edata...

阅读全文>>

#include "stdio.h" #include "windows.h" unsigned char arr[]={ 0x55, 0x8B,0xEC, 0x83,0xEC,0x40, 0x53, 0x56, 0x57, 0x8D,0x7D,0xC0, 0xB9,0x10,0x00,0x00,0x00, 0xB8,0xCC,0xCC,0xCC,0xCC, 0xF3,0xAB, 0x8B,0x45,0x08, 0x03,0x45,0x0C, 0x5F, 0x5E, 0x5B, 0x8B,0xE5, 0x5D, 0...

阅读全文>>

购买请联系QQ: 770612230 教学大纲中级培训班(共六个月)第一阶段 基础知识(1个月)1.1 寄存器汇编指令( MOV lea add sub mul div movsb/w/d rep stosb/w/d)1.2 寄存器汇编指令(pop push xchg jmp call ret)1,3 寄存器与内存1.4 标志寄存器 EFLAG1.5 函数与汇编1.6 用汇编调用函数(不用CALL调用函数)1.7 C与C++1.7 C语言表达式 1.8 C语言函数调用及if else与switch语句 1.9 C语音循环语句1.10 C语言数组1.11 C语言结构体...

阅读全文>>

0x001 项目背景 最近在制作一个手机直播平台, 使用的是腾讯云的 随心播系统。 在本地ubuntu 中测试的时候,配置好参数(腾讯的参数配置,挺蛋疼的,自己尝试了一天,才把所有的参数配置搞定)手机端测试也正常, 后来换到阿里那边的 ubuntu系统, 就开始莫名其妙起来了。挺折腾的, 随心播的 调试不是一般的蛋疼!! 0x002 报错分析一 报答代码: Server inner error, Regist fail! 跟踪调试,php代码,定位到一行代码 $result = $stmt->ex...

阅读全文>>