011

xiaoxiao2021-02-28  104

预计平均三天一课,录制过程中,大纲会实时更新(更改)

主讲:郁金香灬老师  QQ150330575

开发环境:VC6VS2003VS2008

www.yjxsoft.net

www.yjxsoft.com

教程购买地址:http://yjxsoft.taobao.com

 

 1.3.3 用工具过驱动保护(确定学习方向)

      A、用户层至内核的隐秘通道

      B、浅谈过保护原理

      C、实战过XX游戏驱动保护,让OD正常附加调试

      D、小结

WIN32子系统:

    Win32是Windows的一个子系统,还有另外的子系统如OS/2、POSIX、WOW等。 不同的子系统系统提供了不同的编程接口,即API,一般说的API指的就是Win32 API。

 

Win32子系统是最纯正的Windows子系统,提供了大量的API函数,程序员只需要熟练的使用这些API就可以写出Windows应用程序,当然程序员也可以考虑第三方库,如VC提供的MFC,但这些库不过是在应用程序和Win32子系统中间加了一层封装而以,没有本质的区别。

Windows API 分为三类 分别是USER函数,GDI函数,和KERNEL函数

USER函数(user32.dll):这类函数管理窗口,菜单,对话框和控件-Shadow SSDT-Dwin32k.sys

GDI函数(gdi32.dll):这类函数在物理设备上执行绘图操作 -Shadow SSDT-Dwin32k.sys

KERNEL函数(kernel32.dll):这类函数管理非GUI资源,例如,进程,线程,文件,和同步服务等.

ntkrnlpa.exe+ntkrnlpa.lib

 

Native API(Ntdll.dll)

 

NT native API 是可由用户模式和核心模式程序调用的NT系统服务集接口,它们直 接由NT操作系统实现。

SSDT

SSDT的全称是System Services Descriptor Table,系统服务描述符表。这个表就是一个把ring3的Win32 API和ring0的内核API联系起来。SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。

 

 

A、应用层到内核隐秘通道

 

以OpenProcess为例

XX.dll----kernel32.OpenProcess---ntdll.NtOpenProcess======= ntdll.ZwOpenProcess

 

7C92D5E0 >  B8 7A000000     MOV EAX,7A

7C92D5E5    BA 0003FE7F     MOV EDX,7FFE0300

7C92D5EA    FF12            CALL DWORD PTR DS:[EDX]

7C92D5EC    C2 1000         RETN 10

 

7FFE0300  7C92E4F0  ntdll.KiFastSystemCall  //EAX参数

 

7C92E4F0 >  8BD4            MOV EDX,ESP

7C92E4F2    0F34            SYSENTER    //切换内核

0xA53A41AA   0x805CC40A

 

jmp ntkrnlpa.NtOpenProcess

 

 

内核ntkrnlpa.ZwOpenProcess---SSDT--ntkrnlpa.NtOpenProcess--

 

 

 

 

 

 

B、浅谈过保护原理

  调试必经过程-获取进程ID-OpenProcess打开调试进程

  WriteProcessMemory()

 

C、实战过XX游戏驱动保护,让OD正常附加调试

 

D、小结 shadow ssdt

Ntgdigetpixel 屏幕取点的函数  

  

 

转载请注明原文地址: https://www.6miu.com/read-59418.html

最新回复(0)