当前位置: 首页 > news >正文

axure rp8怎么做网站谷歌seo价格

axure rp8怎么做网站,谷歌seo价格,网站建设的电话,淄博三合一网站开发保护模式阶段测试-模拟3环0环调用 最近又复习了一下保护模式相关的内容,然后打算搞个能够把段页的大部分知识能够串联起来的测试代码 最终想到的一个项目如下: 三环部分: 0.编写一个函数读取高2g的地址内容 1.通过设备通信到0环告诉0环我新…

保护模式阶段测试-模拟3环0环调用

最近又复习了一下保护模式相关的内容,然后打算搞个能够把段页的大部分知识能够串联起来的测试代码
最终想到的一个项目如下:

三环部分:
0.编写一个函数读取高2g的地址内容
1.通过设备通信到0环告诉0环我新增加的函数地址
2.通过3环0环共享的数据结构取到新增加的中断号
3.调用中断号读取高2G地址内容
驱动部分:
0。接收到3环的函数地址
1.插入一个中断门,中断门的函数地址为3环传进来的那个
2.申请一个物理页里面填充一个数据结构,此数据结构中存放我们新的中断号

测试代码:

驱动代码

#include <ntddk.h>
//#include <ntifs.h>
#define NTSTRSAFE_LIB
#include <ntstrsafe.h>
#include <intrin.h>extern NTSTATUS PsLookupProcessByProcessId(HANDLE    ProcessId,PEPROCESS* Process
);PDEVICE_OBJECT g_pDev = NULL;
UNICODE_STRING devName = { 0 };
UNICODE_STRING symName = { 0 };
DWORD32 g_idtNum = 0;
PVOID sharedMem;VOID Unload(PDRIVER_OBJECT pDriver) {KdPrint(("unload"));IoDeleteSymbolicLink(&symName);IoDeleteDevice(g_pDev);}typedef struct _IDTR {UINT16 limit;UINT16 base_low;UINT16 base_hight;
}IDTR, *PIDTR;
#define DEVICE_OBJECT_NAME L"\\Device\\systest"
#define DEVICE_LINK_NAME L"\\??\\systest"
#define MAKE_WORD(a,b) ((a) + (b << 16))
#define MAKE_BASE(a) (DWORD32)(((a >> 32) & 0x00000000ffff0000) + ((a & 0x000000000000ffff)))
#define IOCTL_SYS_INJECTIDT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, \METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SYS_MAKE_SHAREDPAGE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, \METHOD_BUFFERED, FILE_ANY_ACCESS)NTSTATUS InjectIDT(UINT64 new_idte , PDWORD32 idtNum) 
{// 获取idt表IDTR idtr = { 0 };__sidt(&idtr);KdPrint(("idt base=0x%x, limit=0x%x\r\n", MAKE_WORD(idtr.base_low, idtr.base_hight), idtr.limit));// 构造中断描述符//UINT64 new_idte = 0x0;// 寻找未使用的位置插入描述符PDWORD64 idteArr = (PDWORD64)MAKE_WORD(idtr.base_low, idtr.base_hight);for (size_t i = 0; i < (idtr.limit >> 3); i++){if (MAKE_BASE(idteArr[i]) == 0x0) {idteArr[i] = new_idte;KdPrint(("中断号:0x%x", i));*idtNum = i;g_idtNum = i;return STATUS_SUCCESS;}}return STATUS_UNSUCCESSFUL;
}NTSTATUS MakeSharedPage(UINT32 pid, DWORD32 addr)
{NTSTATUS status = STATUS_SUCCESS;PEPROCESS pEprocess = NULL;DWORD32 oldCr3 = 0;DWORD32 newCr3 = 0;DWORD32* pdt_va = (DWORD32*)0xc0300000;UCHAR* ptt_va = (UCHAR*)0xc0000000;__try {status = PsLookupProcessByProcessId((HANDLE)pid, &pEprocess);if (!NT_SUCCESS(status)) {KdPrint(("get eprocess failed!\r\n"));return STATUS_UNSUCCESSFUL;}newCr3 = *(DWORD32*)((UINT8*)pEprocess + 0x18);sharedMem = ExAllocatePool(PagedPool, 0x1000);if (sharedMem == NULL) {KdPrint(("alloc memory failed!\r\n"));return STATUS_UNSUCCESSFUL;}//拆分new_vaKdPrint(("开始拆分线性地址"));DWORD32 new_va_10_1 = addr >> 0x16;DWORD32 new_va_10_2 = addr << 0xa;new_va_10_2 >>= 0x16;DWORD32 new_va_12 = addr & 0x00000fff;KdPrint(("addr:0x%x, 10:0x%x, 10:0x%x, 12:0x%x \r\n", addr, new_va_10_1, new_va_10_2, new_va_12));DWORD32 old_va_10_1 = (DWORD32)sharedMem >> 0x16;DWORD32 old_va_10_2 = (DWORD32)sharedMem << 0xa;old_va_10_2 >>= 0x16;DWORD32 old_va_12 = (DWORD32)sharedMem & 0x00000fff;KdPrint(("addr:0x%p, 10:0x%x, 10:0x%x, 12:0x%x \r\n", sharedMem, old_va_10_1, old_va_10_2, old_va_12));DbgBreakPoint();//挂载物理页KdPrint(("开始挂载物理页"));KIRQL irql = KeRaiseIrqlToDpcLevel();oldCr3 = __readcr3();__writecr3(newCr3);KeLowerIrql(irql);DWORD32* sys_pte = (ptt_va + ((new_va_10_1 << 12) + (new_va_10_2 << 2)));DWORD32* user_pte = (ptt_va + ((old_va_10_1 << 12) + (old_va_10_2 << 2)));KdPrint(("0x%p---0x%p\r\n", sys_pte, user_pte));*user_pte = *sys_pte;irql = KeRaiseIrqlToDpcLevel();__writecr3(oldCr3);KeLowerIrql(irql);//向共享页写入数据RtlMoveMemory(sharedMem, &g_idtNum, sizeof(g_idtNum));}__except (1) {KdPrint(("exception happened!\n"));return STATUS_UNSUCCESSFUL;}return STATUS_SUCCESS;
}NTSTATUS DeviceControl(PDEVICE_OBJECT pDev, PIRP pIrp)
{NTSTATUS status = STATUS_SUCCESS;ULONG_PTR Informaiton = 0;ULONG ioControlCode = 0;PVOID input = NULL;ULONG inputLen = 0;PVOID output = NULL;ULONG outputLen = 0;PIO_STACK_LOCATION pIoStackLocation = IoGetCurrentIrpStackLocation(pIrp);ioControlCode = pIoStackLocation->Parameters.DeviceIoControl.IoControlCode;input = pIrp->AssociatedIrp.SystemBuffer;output = pIrp->AssociatedIrp.SystemBuffer;inputLen = pIoStackLocation->Parameters.DeviceIoControl.InputBufferLength;outputLen = pIoStackLocation->Parameters.DeviceIoControl.OutputBufferLength;switch (ioControlCode){case IOCTL_SYS_INJECTIDT:{if (input == NULL || output ==NULL || inputLen <= 0 || outputLen <= 0) {status = STATUS_UNSUCCESSFUL;break;}UINT64 newIdte = *((PUINT64)input);status = InjectIDT(newIdte, (PDWORD32)output);if (NT_SUCCESS(status)) {Informaiton = sizeof(DWORD32);}break;}case IOCTL_SYS_MAKE_SHAREDPAGE:{if (input == NULL || output == NULL || inputLen <= 0 || outputLen <= 0) {status = STATUS_UNSUCCESSFUL;break;}DWORD32* data = (DWORD32*)input;UINT32 pid = data[0];DWORD32 addr = data[1];status = MakeSharedPage(pid, addr);if (!NT_SUCCESS(status)) {KdPrint(("failed make shared page!\n"));}break;}default:break;}pIrp->IoStatus.Status = status;pIrp->IoStatus.Information = Informaiton;IoCompleteRequest(pIrp, IO_NO_INCREMENT);return status;
}NTSTATUS PassFunc(PDEVICE_OBJECT pDev, PIRP pIrp)
{pIrp->IoStatus.Information = 0;pIrp->IoStatus.Status = STATUS_SUCCESS;IoCompleteRequest(pIrp, IO_NO_INCREMENT);return STATUS_SUCCESS;
}NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath) {NTSTATUS status = STATUS_SUCCESS;pDriver->DriverUnload = Unload;for (size_t i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++){pDriver->MajorFunction[i] = PassFunc;}pDriver->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DeviceControl;do{KdPrint(("begin\r\n"));//创建设备对象RtlInitUnicodeString(&devName, DEVICE_OBJECT_NAME);status = IoCreateDevice(pDriver, 0, &devName, FILE_DEVICE_UNKNOWN, 0, FALSE, &g_pDev);if (!NT_SUCCESS(status)) {KdPrint(("Create Dev Object Failed!\r\n"));break;}RtlInitUnicodeString(&symName, DEVICE_LINK_NAME);status = IoCreateSymbolicLink(&symName, &devName);if (!NT_SUCCESS(status)) {KdPrint(("Create Sym Link Failed!\r\n"));IoDeleteDevice(g_pDev);break;}g_pDev->Flags |= DO_BUFFERED_IO;} while (FALSE);return status;
}

应用层代码:

// test1.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <windows.h>#define DEVICE_LINK_NAME L"\\\\.\\systest"
#define IOCTL_SYS_INJECTIDT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, \METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SYS_MAKE_SHAREDPAGE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, \METHOD_BUFFERED, FILE_ANY_ACCESS)int _tmain(int argc, _TCHAR* argv[])
{HANDLE devHandle = CreateFile(DEVICE_LINK_NAME,GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if (devHandle == NULL || devHandle == INVALID_HANDLE_VALUE) {printf("open dev failed\n");return 0;}UINT32 idtNum = 0;UINT64 idte = 0x0102030405060708;DWORD returnLen = 0;BOOL IsOK = DeviceIoControl(devHandle,IOCTL_SYS_INJECTIDT,&idte,sizeof(UINT64),&idtNum,4,&returnLen,NULL);if (IsOK) {printf("idt num 0x%x\n", idtNum);} else {printf("control dev failed\n");}//创建共享内存LPVOID buf = VirtualAlloc(NULL, 1024, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);UINT32 indata[2] = {GetCurrentProcessId(), (UINT32)buf};IsOK = DeviceIoControl(devHandle,IOCTL_SYS_MAKE_SHAREDPAGE,indata,sizeof(indata),indata,sizeof(indata),&returnLen,NULL);if (IsOK) {printf("idt num 0x%x\n", (UINT32*)buf);} else {printf("make shared page failed\n");}CloseHandle(devHandle);devHandle = NULL;return 0;
}

文章转载自:
http://titrimetry.bbtn.cn
http://gastralgia.bbtn.cn
http://premillennial.bbtn.cn
http://uplighter.bbtn.cn
http://brittany.bbtn.cn
http://pfalz.bbtn.cn
http://sidecar.bbtn.cn
http://salii.bbtn.cn
http://spring.bbtn.cn
http://magnetochemistry.bbtn.cn
http://forsworn.bbtn.cn
http://physiography.bbtn.cn
http://extrasolar.bbtn.cn
http://cascalho.bbtn.cn
http://bassist.bbtn.cn
http://downstream.bbtn.cn
http://electropolish.bbtn.cn
http://cccs.bbtn.cn
http://neptune.bbtn.cn
http://whittle.bbtn.cn
http://forseeable.bbtn.cn
http://bultery.bbtn.cn
http://polygram.bbtn.cn
http://dormancy.bbtn.cn
http://ouija.bbtn.cn
http://prismatoid.bbtn.cn
http://continently.bbtn.cn
http://imp.bbtn.cn
http://dizygotic.bbtn.cn
http://spiritous.bbtn.cn
http://misdone.bbtn.cn
http://castle.bbtn.cn
http://risotto.bbtn.cn
http://contracept.bbtn.cn
http://hornpout.bbtn.cn
http://catchword.bbtn.cn
http://entamoeba.bbtn.cn
http://millet.bbtn.cn
http://unmarry.bbtn.cn
http://frolicsome.bbtn.cn
http://pediculus.bbtn.cn
http://quiescing.bbtn.cn
http://heilong.bbtn.cn
http://polynesian.bbtn.cn
http://analogically.bbtn.cn
http://hardie.bbtn.cn
http://wayahead.bbtn.cn
http://divalent.bbtn.cn
http://protestantism.bbtn.cn
http://radiance.bbtn.cn
http://suricate.bbtn.cn
http://neuropteroid.bbtn.cn
http://terrific.bbtn.cn
http://nomarch.bbtn.cn
http://brent.bbtn.cn
http://tonguefish.bbtn.cn
http://whizz.bbtn.cn
http://carhop.bbtn.cn
http://tetrathlon.bbtn.cn
http://opprobrium.bbtn.cn
http://booklearned.bbtn.cn
http://eulogistical.bbtn.cn
http://recalcitrance.bbtn.cn
http://arithograph.bbtn.cn
http://intercrystalline.bbtn.cn
http://setigerous.bbtn.cn
http://islamite.bbtn.cn
http://hekla.bbtn.cn
http://maloti.bbtn.cn
http://colleaguesmanship.bbtn.cn
http://sandpaper.bbtn.cn
http://laminectomy.bbtn.cn
http://heptamerous.bbtn.cn
http://empyrean.bbtn.cn
http://asyndeton.bbtn.cn
http://sublimate.bbtn.cn
http://karen.bbtn.cn
http://seducement.bbtn.cn
http://oriel.bbtn.cn
http://sangh.bbtn.cn
http://ogham.bbtn.cn
http://aggregative.bbtn.cn
http://caseworker.bbtn.cn
http://nonresidence.bbtn.cn
http://colone.bbtn.cn
http://tortility.bbtn.cn
http://transitional.bbtn.cn
http://oblige.bbtn.cn
http://bbc.bbtn.cn
http://pursuivant.bbtn.cn
http://neoglacial.bbtn.cn
http://amic.bbtn.cn
http://voluptuary.bbtn.cn
http://gateway.bbtn.cn
http://phytin.bbtn.cn
http://bogota.bbtn.cn
http://incivilization.bbtn.cn
http://brogan.bbtn.cn
http://continent.bbtn.cn
http://violent.bbtn.cn
http://www.15wanjia.com/news/63259.html

相关文章:

  • 南京哪公司建设网站百度搜索 手机
  • 财务记账网站开发seo sem是指什么意思
  • 建立 wiki 网站代写平台
  • 个人可以建立网站吗百度seo算法
  • 商务网站建设公司今日热点新闻事件摘抄50字
  • 哪块行业需要网站建设如何搜索网页关键词
  • 怎样查看网站开发语言搜索引擎营销题库和答案
  • 达州做网站怎么把自己的产品推广出去
  • 北京网站的建立的培训计划和培训内容
  • 网站引导页怎么做.链接是什么意思
  • 河北seo网站优化电话如何推广seo
  • 旅游网站建设的意义网络营销推广技巧
  • 有哪些网站可以找兼职做seo也成搜索引擎优化
  • wordpress首页文章数量成都seo学徒
  • 南昌建设委员网站网络优化大师app
  • 对红色网站建设的建议电商平台运营
  • 宝安做棋牌网站建设多少钱南宁网站建设网络公司
  • ftp免费网站空间怎么写软文
  • 做磁力链网站郑州网络推广专业公司
  • wap 企业网站网站建设产品介绍
  • 成品网站软件大全下载百度搜索一下就知道
  • 外贸网站的推广方法百度推广助手怎么用
  • 怎么做企业销售网站营销推广型网站
  • 用网站做的简历郑州高端网站建设哪家好
  • 漯河网站制作公司投放广告怎么投放
  • 怎么在手机上做企业网站网站开发需要的技术
  • 网站类型怎么分搭建网站要多少钱
  • 专门做微场景的网站东莞网站公司哪家好
  • 阿里巴巴怎样做网站百度广告优化师
  • 适合企业网站的cmsseo网站推广与优化方案