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...
因为没有PE的底子和技术,只能拿硬编码的地址来测试
代码实例
指针对 MessageBox, 进行代码指向, 可以进行反调试的!!
把一套php系统,部署到我的ubuntu上。 500错误
从7点半开始弄, 搞了一个小时。
1、一定要开启调试 显示错误信息
实用代码
error_reporting(E_ALL);
ini_set('display_errors', '1');
2、找到错误的地方
很蛋疼的地方, 路径大小写的问题, 开始是在win上的 暴露不出来,一旦移植到 linux上 就要头大了
3、路径解决,持续报错(提示 thinkphp无法使用)
直接开启 调试模式
defin...
基础班
2016基础班 :分为4个阶段共12个月课程;学费总计1299X4=5196元;建议零基础学员请务必按照正常教学顺序学习,已经掌握部分知识的学员可以直接选修。
基础班(一)
进制、汇编、C\C++
(3个月)强烈建议所有学员务必熟练掌握此阶段课程,受益终身!
发展方向:C\C++ 正向开发(游戏,嵌入式,驱动开发等),软件逆向,破解,反病毒、漏洞分析、反病毒、漏洞分析、信息安全、IOS安卓逆向安全,Windows底层开发,LINUX应用开发,熟练掌握后,学习其他所有高级语言如JAVA、.net等...
最简单的代码:
//裸函数
void __declspec(naked) testGyarmy()
{
__asm{
ret
}
}
//加法
//裸函数加法
int __declspec(naked) testGyarmyPlus(int x,int y)
{
__asm{
//提升堆栈
push ebp
mov ebp,esp
sub esp,0x40
//保存现场
push ebx
push esi
push edi
...
十一放假来到现在, 有空的话,一直在看 滴水的逆向课程, 真的很不错老湿, 已经看上瘾了, 想尽快啃完,
晚上到家后, 一直在更改自己的工单系统, 找了一个 tp 的工单内核, 开始修改, 充值, 提交, 审核, 自己需要的功能, tp的开发速度很快, 功能模块,只要能想清楚逻辑结构,基本实现起来, 就是 数据库的 增删改查.,
后台跟X商量, 他们想做大, 做成类似的二级分销系统, 重新对模块进行调整, &nb...
vc++基础班[15]---通用对话框讲解
------------------------------------------ Begin ----------------------------------------
①、文件选择对话框;
//单选;
CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , _T("Text Files (*.txt)|*.txt|WinRar Files (*.rar)|*.rar|Data Files (*.xlc;*.xls)|*.xlc; ...
vc++基础班[14]---再论“逃跑”按钮的实现
------------------------------------------ Begin ----------------------------------------
①、CWnd::GetWindowRect 与 CWnd::GetClientRect 的区别:(获取当前窗口)
GetWindowRect 函数:屏幕坐标系,同时包括窗口的标题栏与边框的大小;
GetClientRect 函数:本身窗口坐标系,左上角坐标始终为(0, 0),不包括窗口标题与边框的大小;
全局的 SDK API 函数:(获取指定窗口)
...
头文件: (MyROEdit.h)
#pragma once
// CMyROEdit
class CMyROEdit : public CEdit
{
DECLARE_DYNAMIC(CMyROEdit)
public:
CMyROEdit();
virtual ~CMyROEdit();
protected:
DECLARE_MESSAGE_MAP()
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
afx_msg void OnEnSetfocus();
};
...