测试打印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"
///////////////////////////////////////////////////////////...
更新版本的代码
#include "stdio.h"
#include "windows.h"
LPVOID ReadPEFile(LPSTR lpszFile)
{
FILE *pFile = NULL;
DWORD fileSize = 0;
LPVOID pFileBuffer = NULL;
//打开文件
pFile = fopen(lpszFile,"rb");
if(!pFile)
{
printf("无法打开文件EXE文件");
return NULL;
}
fseek(pFi...
主要是根据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...
DOS HEADER:
e_magic: 5A4D **
e_cblp: 0090
e_cp: 0003
e_crlc: 0000
e_caprhdr: 0004
e_minlloc: 0000
e_maxalloc: FFFF
e_ss: 0000
e_sp: 00B8
e_csum: 0000
e_ip: 0000
e_cs: 0000
e_ifarlc: 0040
e_ovnc: 0000
e_res[4]: 0000 0000 0000 0000
e_oemid: 000...
文件列表
#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...