DLL命令表
1
2
3
4
5
6
7
8
9
10
|
.版本 2 .DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 返回函数地址 .参数 hModule, 整数型 .参数 lpProcName, 文本型 .DLL命令 GetModuleHandle, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError .参数 lpModuleName, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD; .DLL命令 IsBadCodePtr, 整数型, "kernel32", "IsBadCodePtr", , 确定读指针的合法性 .参数 lpfn, 整数型 .DLL命令 LoadLibrary, 整数型, "kernel32", "LoadLibraryA", , 载入指定的动态链接库,并将它映射到当前进程使用的地址空间。一旦载入,即可访问库内保存的资源 成功则返回库模块的句柄,零表示失败。会设置GetLastError .参数 lpLibFileName, 文本型, , 指定要载入的动态链接库的名称。采用与CreateProcess函数的lpCommandLine参数指定的同样的搜索顺序; |
常量数据表
1
2
3
4
5
6
7
8
9
|
.版本 2 .常量 NULL, "0" .常量 MB_OK, "0" .常量 MB_ICONHAND, "16" .常量 MB_ICONQUESTION, "32" .常量 MB_ICONEXCLAMATION, "48" .常量 MB_ICONASTERISK, "64" .常量 MB_USERICON, "128" .常量 TRUE, "1" |
调用微信截图DLL的代码
此功能需要调用PrScrn.dll测试时放在同一文件下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
.版本 2 .支持库 spec .程序集 窗口程序集1 .子程序 __启动窗口_创建完毕 .子程序 _CALL, 整数型 .参数 调用地址, 整数型 .参数 参数1, 整数型, 可空 .参数 参数2, 整数型, 可空 .参数 参数3, 整数型, 可空 .参数 参数4, 整数型, 可空 .参数 参数5, 整数型, 可空 .参数 参数6, 整数型, 可空 .参数 参数7, 整数型, 可空 .参数 参数8, 整数型, 可空 .参数 参数9, 整数型, 可空 .参数 参数10, 整数型, 可空 .参数 参数11, 整数型, 可空 .参数 参数12, 整数型, 可空 .参数 参数13, 整数型, 可空 .参数 参数14, 整数型, 可空 .参数 参数15, 整数型, 可空 .如果真 (IsBadCodePtr (调用地址) = #TRUE) 返回 (0) .如果真结束 置入代码 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 }) 返回 (0) .子程序 _PrScrn, 整数型 .局部变量 bRet, 整数型 bRet = _CALL (GetProcAddress (LoadLibrary (“PrScrn.dll”), “PrScrn”)) 返回 (bRet) .子程序 _截屏按钮_被单击 .局部变量 bRet, 整数型 bRet = _PrScrn () .如果 (bRet = #TRUE) 调试输出 (“截图成功”) .否则 调试输出 (“截图失败”) .如果结束 |
运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接