|
发表于 2013-9-25 08:57:10
|
显示全部楼层
你的意思是程序开始需要一个OEP吧,程序开始地址可以自己通过org这个汇编伪指令来定义。
动态链接库的使用:
1: 使用 include ***.inc 和 includelib ***.lib 直接调用库函数 ;使用方便,但是如果装入DLL过程中有任何错误(dll丢失、初始化失败、找不到导出函数等),应用程序无任何机会完成应变措施
2:动态装入:让应用程序代替Windows完成装入工作。涉及函数:LoadLibrary(装入动态链接库)、FreeLibrary(释放库)、GetProcAddress(获得导出函数地址)
动态链接库一般在masm32的include和lib目录下
可指定库的绝对地址
include C:\MASMPlus\Include\windows.inc
include C:\MASMPlus\Include\kernel32.inc
includelib C:\MASMPlus\Lib\kernel32.lib
include C:\MASMPlus\Include\user32.inc
includelib C:\MASMPlus\Lib\user32.lib
保护模式下要获得最高权限,我的理解是需要通过编写驱动来获取系统的最高权限。因为我们一般编程应用程序都在Ring3,要获得更大的权限需要进入到Ring0才行。
可以通过KmdKit的全称是Kernel Mode Driver development Kit for assembly language programmers,即内核模式驱动程序汇编开发包,在Windows NT为基础的操作系统上用Win32汇编开发KMD。 |
|