今天的一切事情,都是因为这张图引起的,刺疼的伤疤, 五一整个假期也因为这张图,没有了 很多事情,都是因为巧合,巧合,巧合, 但是最终发生了。。。。只能说最终发生了。。。。。 很难受的一天

阅读全文>>

解决办法:打开 VMware 虚拟机的配置文件,这是一个后缀为 vmx 的文本文件。在里面加入以下内容 isolation.tools.getPtrLocation.disable = "TRUE" isolation.tools.setPtrLocation.disable = "TRUE" isolation.tools.setVersion.disable = "TRUE" isolation.tools.getVersion.disable = "TRUE" monitor_control.disable_directexec = "TRUE" monitor_contro...

阅读全文>>

打个比喻,如果思维框架是一座空房子。首先我们要有搭建房子的技巧,就像我们读小学,初中,高中一样;要学语文,数学,英语,地理等等,这些东西会放在我们空房子里面。 这就是搭建思维框架的一个过程,最终我们对这个世界有认知,也能思考。 接着,我做事情,例如这次计划我最终的目的是要做培训。 所以我要学怎么加人,学怎么裂变。我就的去找这方面的知识,来填充我的空房子。 那么,最后我要做的很简单,就是通过各种渠道,不断收集这些知识。 再告诉你深层次的方法,当你建立了思维框架,空房子里面有各种各样的东西,想用什么直接就能拿出来。 但是,这些东西也会过时,就像老旧的家具。你...

阅读全文>>

主要看了一下汇编的语法知识,指令算比较熟悉了 一点笔记贴上来 80X86汇编学习笔记 代码 ==================================================== ; Example: Hello World ; Author GYARMY ; Date: 2018-4-10 .386 .MODEL FLAT ExitProcess PROTO stdcall, dwExitCode:DWORD .STACK 4096 .DATA msg BYTE "Hello Wor...

阅读全文>>

学习完保护模式, 看内核的课程,直接挂掉!! 缺少IDA的知识和C逆向的熟练程度, 准备看看书了, 三本书     一本一本的来, 希望可以做三套视频课程, 分享出去, 算对学习的一些总结!!

阅读全文>>

ret:也可以叫做近返回,即段内返回。处理器从堆栈中弹出IP或者EIP,然后根据当前的CS:IP跳转到新的执行地址。如果之前压栈的还有其余的参数,则这些参数也会被弹出。   retf:也叫远返回,从一个段返回到另一个段。先弹出堆栈中的IP/EIP,然后弹出CS,有之前压栈的参数也会弹出。(近跳转与远跳转的区别就在于CS是否压栈。)   iret:用于从中断返回,会弹出IP/EIP,然后CS,以及一些标志。然后从CS:IP执行。   iretw:先后弹出IP,CS和标志位,每次都以2个字节为一个单位...

阅读全文>>

0x001 实验环境 xp3 2-9-9-12 分页环境 0x002 时间代码 // 20180327_01.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <windows.h> DWORD zero, one, two; __declspec(naked) void MountPageOnNull() { ...

阅读全文>>

PDE 和 PTE 地址计算公式 为了先入为主,这里直接给出访问一个线性地址的 PDE 和 PTT 的计算公式。PAE分页,把线性地址分成了四段,即PDPTI-PDI-PTI-OFFSET. 如果要找出这个线性地址对应的 PDE 和 PTE 的位置,可以使用下面的计算公式。 公式一不过,我们可以采用更简洁的方式来计算PDE和PTE的位置,这种方式不需要事先计算 PDPTI、PDI 和 PTI。 公式二 // addr 存放的是线性地址 pPDE = (int*)(0xc0600000 + ((addr >> 18...

阅读全文>>

知道了PDT和PTT的基址,那么PDE和PTE的基址就很容易得到,只要加上偏移就行了。 如果一个线性地址被拆分成三段式PDI-PTI-OFFSET,则有: PDE 的基址 // 第 PDI 个 PDE 的基址 PDT[PDI] = 0xc0300000 + PDI * 4 1 2 PTE 的基址 // 第 PDI 个 PDE 指向的 PTT 中的第 PTI 个 PTE 的基址 PTE[PTI] = 0xc0000...

阅读全文>>

从上面的结构,发现 PDE 和 PTE 的结构基本上差不多,但是有个别比如第 7 位就不一样。 属性含义 P:有效位。0 表示当前表项无效。 R/W: 0 表示只读。1表示可读写。 U/S: 0 表示特技用户可访问,1表示普通用户可访问。 A: 0 表示该页未被访问,1表示已被访问。 D: 脏位。0表示该页未写过,1表示该页被写过。 PS: 只存在于页目录表。0表示这是4KB页,指向一个页表。1表示这是4MB大页,直接指向物理页。 PWT、PCD、G:暂不...

阅读全文>>

0x001 部署环境 eq 8003f500 0000e500`00c30000 eq 8003f0c0 0000e912`fdcc0068 0x002 测试代码 // 20180323_01.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <stdio.h> DWORD dwOK; DWORD dwESP; DWORD dwCS;...

阅读全文>>

0x001 TSS的基础知识 TSS是一段内存结构 char st[10] = {0}; // st 的地址是 0042b034 TSS tss = {// tss的地址是 0x00427b40 0x00000000,//link (DWORD)st,//esp0 0x00000010,//ss0 0x00000000,//esp1 0x00000000,//ss1 0x00000000,//esp2 0x00000000,//ss2 0x00000000,//cr3 0x0040...

阅读全文>>