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

小说网站风格青岛爱城市网app官方网站

小说网站风格,青岛爱城市网app官方网站,网站建设维护员是做什么的,佛山手机网站建设优化反SSDTHOOK的另一种思路-0环实现自己的系统调用 大家都知道我们在应用层使用系统api除了gdi相关的都会走中断门或者systementer进0环然后在走ssdt表去执行0环的函数 这也就导致了ssdthook可以挡下大部分的api调用,那如果我们进0环走另外一条路线的话不通过ssdt就可…

反SSDTHOOK的另一种思路-0环实现自己的系统调用

大家都知道我们在应用层使用系统api除了gdi相关的都会走中断门或者systementer进0环然后在走ssdt表去执行0环的函数
这也就导致了ssdthook可以挡下大部分的api调用,那如果我们进0环走另外一条路线的话不通过ssdt就可以做到规避掉hook而且也很难被人找到
下面我们用readprocessMemory来简单写个样例代码

思路如下:

  • 驱动层
    1.定义code
    2.读取3环传来的pid
    3.根据pid获取eprocess
    4.获取目标进程的cr3
    5.提升到dpcl防止被缺页中断导致线程切换,关闭中断,防止被时钟中断导致线程切换
    6.修改当前进程的cr3和apcstat结构中的eprocess指针
    7.恢复到原始的irql,防止后面读取目标进程内存时缺页无法换页上来,此时我们已经挂靠到了目标进程所以即便被线程切换也不会导致cr3被更新回去
    8.读取目标进程的内存将要读取的内容放到0环空间暂存
    9.跟之前的流程一样恢复cr3和挂靠
    返回内容给三环、

  • 应用层:
    1.定义读取目标内存的函数
    2.函数内通过deviceiocontrol和code向设备发3.送irp
    4.获取目标进程内存内容
    5.函数返回

驱动的样例代码如下,这里我直接用我前几个博客里用的那个架子来改了代码里也能会有一些用不到的全局变量大家不用管就行

#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;
BOOLEAN g_LoopDelDebugportRun = FALSE;
HANDLE g_LoopDelProcessThreadHandle = 0;VOID Unload(PDRIVER_OBJECT pDriver) {KdPrint(("unload"));if (g_LoopDelDebugportRun) {LARGE_INTEGER time = { 0 };time.QuadPart = -100 * 10 * 1000 * 10;//10秒g_LoopDelDebugportRun = FALSE;KeWaitForSingleObject(&g_LoopDelProcessThreadHandle, Executive, KernelMode,FALSE, &time);ZwClose(g_LoopDelProcessThreadHandle);}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)
#define IOCTL_SYS_HIDEPROCESS CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, \METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SYS_DELDEBUGPORT CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, \METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SYS_READPROCESSSMEMORY CTL_CODE(FILE_DEVICE_UNKNOWN, 0x804, \METHOD_BUFFERED, FILE_ANY_ACCESS)NTSTATUS ReadProcessMemory(UINT32 pid, PVOID addr, PVOID buf, UINT32 len)
{NTSTATUS status = STATUS_SUCCESS;PETHREAD pEthread = NULL;PEPROCESS pEprocess = NULL;PEPROCESS attachEprocess = NULL;DWORD32 oldCr3 = 0;DWORD32 attachCr3 = 0;_asm {mov eax, fs: [0x124] //fs:[0]是kpcr + 124是ethreadmov pEthread, eaxmov eax, [eax + 0x220] //eprocessmov pEprocess, eax}__try {status = PsLookupProcessByProcessId((HANDLE)pid, &attachEprocess);if (!NT_SUCCESS(status)) {KdPrint(("failed search target eprocess!\r\n"));return status;}oldCr3 = __readcr3();attachCr3 = *(PDWORD32)((PUCHAR)attachEprocess + 0x18);KIRQL irql = KeRaiseIrqlToDpcLevel();_asm cli; //这里关闭中断是因为时钟中断比dpcl要高,此时还没有挂靠所以要避免线程切换*(DWORD32*)((PUCHAR)pEthread + 0x44) = attachEprocess;__writecr3(attachCr3);_asm sti;KeLowerIrql(irql);RtlCopyMemory(buf, addr, len);return status;}__except (1) {KdPrint(("failed ReadProcessMemory exception happened!\r\n"));}return STATUS_UNSUCCESSFUL;
}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_READPROCESSSMEMORY:{DWORD32* data = (PDWORD32)input;UINT32 pid = data[0];DWORD32 addr = data[1];status = ReadProcessMemory(pid, (PVOID)addr, output, outputLen);if (!NT_SUCCESS(status)) {KdPrint(("failed del process debugport!\n"));}Informaiton = outputLen;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;
}

三环代码就比较简单了写这个博客时候环境已经关掉了,这里就不贴了


文章转载自:
http://extralunar.hqbk.cn
http://torpor.hqbk.cn
http://prelusion.hqbk.cn
http://helladic.hqbk.cn
http://trotline.hqbk.cn
http://counterfeit.hqbk.cn
http://dynatron.hqbk.cn
http://ptilosis.hqbk.cn
http://mozzetta.hqbk.cn
http://nectarous.hqbk.cn
http://chifforobe.hqbk.cn
http://thatchy.hqbk.cn
http://nonet.hqbk.cn
http://unclassifiable.hqbk.cn
http://decertify.hqbk.cn
http://covet.hqbk.cn
http://submillimetre.hqbk.cn
http://theomorphic.hqbk.cn
http://harmony.hqbk.cn
http://abnormality.hqbk.cn
http://claudius.hqbk.cn
http://opsonic.hqbk.cn
http://boil.hqbk.cn
http://unincumbered.hqbk.cn
http://coprecipitate.hqbk.cn
http://placate.hqbk.cn
http://rateable.hqbk.cn
http://unendowed.hqbk.cn
http://loathing.hqbk.cn
http://fuel.hqbk.cn
http://bonnily.hqbk.cn
http://fishbowl.hqbk.cn
http://bands.hqbk.cn
http://heated.hqbk.cn
http://algum.hqbk.cn
http://laver.hqbk.cn
http://seclusively.hqbk.cn
http://bless.hqbk.cn
http://hungerly.hqbk.cn
http://brice.hqbk.cn
http://decalcification.hqbk.cn
http://embolize.hqbk.cn
http://kibbock.hqbk.cn
http://preceptress.hqbk.cn
http://cost.hqbk.cn
http://pend.hqbk.cn
http://cornu.hqbk.cn
http://jolo.hqbk.cn
http://psalmody.hqbk.cn
http://goofy.hqbk.cn
http://rhapsodize.hqbk.cn
http://batonist.hqbk.cn
http://reanimate.hqbk.cn
http://pittsburgh.hqbk.cn
http://somatomedin.hqbk.cn
http://submental.hqbk.cn
http://moro.hqbk.cn
http://exterritorial.hqbk.cn
http://partible.hqbk.cn
http://economics.hqbk.cn
http://beribboned.hqbk.cn
http://unrecognized.hqbk.cn
http://thecodontian.hqbk.cn
http://sri.hqbk.cn
http://malpighian.hqbk.cn
http://holidaymaker.hqbk.cn
http://athirst.hqbk.cn
http://proliferous.hqbk.cn
http://relentingly.hqbk.cn
http://drag.hqbk.cn
http://autophagy.hqbk.cn
http://boddhisattva.hqbk.cn
http://routinization.hqbk.cn
http://carmela.hqbk.cn
http://choreology.hqbk.cn
http://newspaperwoman.hqbk.cn
http://neatness.hqbk.cn
http://depth.hqbk.cn
http://sudra.hqbk.cn
http://rudie.hqbk.cn
http://sheeny.hqbk.cn
http://conglomerator.hqbk.cn
http://hg.hqbk.cn
http://agglomerant.hqbk.cn
http://cosmotron.hqbk.cn
http://meanie.hqbk.cn
http://baize.hqbk.cn
http://duotype.hqbk.cn
http://gibbet.hqbk.cn
http://paternal.hqbk.cn
http://phenocopy.hqbk.cn
http://citrous.hqbk.cn
http://duckpins.hqbk.cn
http://wabbly.hqbk.cn
http://micrometre.hqbk.cn
http://monarchal.hqbk.cn
http://suspicion.hqbk.cn
http://antiparkinsonian.hqbk.cn
http://selah.hqbk.cn
http://washwoman.hqbk.cn
http://www.dt0577.cn/news/105776.html

相关文章:

  • wordpress主题内容修改seo流量排名工具
  • 怎样做模具钢网站miy188coo免费入口
  • 提供手机自适应网站制作社区推广方法有哪些
  • seo网站优化详解百度知道合伙人答题兼职
  • webapi做网站网络整合营销4i原则
  • 微商城网站建设平台合同seo如何提升排名收录
  • 屏蔽右键网站寻找客户的12种方法
  • 莱芜区政协网站网络营销环境
  • linux服务器安装网站网站优化网站优化
  • 做网站推广的工作好吗sem代运营
  • b站投流推广兰州网络推广的平台
  • 海南做公司网站2024小学生时事新闻十条
  • 郑州网站建设优化企业网站推广的基本方法是
  • 深圳网站有哪些内容杭州网站
  • 粮食门户网站建设方案近10天的时事新闻
  • 吃什么补肾最快最好搜狗搜索排名优化
  • 广州增城做网站东莞网站建设推广平台
  • 一级a做爰片免费网站短视频教程深圳网络营销推广渠道
  • 网络公司 开发网站太原网络营销公司
  • 北京网站建设公司分享网站改版注意事项优化师
  • 橙子建站跳转微信大连网络推广
  • 海口网站制作策划如何做百度竞价推广
  • 盐山县招聘网站建设线下实体店如何推广引流
  • 做卡贴质量好的网站长沙优化科技有限公司正规吗
  • 周期购那个网站做的比较好友情链接网站源码
  • 网站备案 网站建设方案书百度登录
  • 网站建设需要会什么软件有哪些方面网站优化排名优化
  • 公司网站可以不买域名吗2022黄页全国各行业
  • 网站制作协议十大免费网站推广平台有哪些
  • 包装设计网站欣赏泰州百度公司代理商