记个笔记
来源:互联网 发布:php goto 编辑:程序博客网 时间:2024/06/11 10:55
本来打算认认真真地弄点东西,但是可能是白天认真过头了,晚上吃晚饭怎么也踏实不下来了。
明天有空时候继续弄吧。
上周周末就自己瞎钻实验了一下WriteProcessMemory()这个API函数,直接能跨进程修改内存内容。
今天又用上了一编,印象深刻了点吧,记录几个常用的API用法。
FindWindow()可以根据窗口类的className或者是窗口顶上的名称这两个任意条件来找当前的窗口,
返回值是HWND类型的。
根据这个HWND可以找到进程的句柄。
用OpenProcess()这个函数。第一个参数写成PROCESS_ALL_ACCESS,就可以对这个窗口所对应的进程随意读写了。
这个函数通常写作
g_hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);
这样就拿到了HANDLE类型的 hProcess句柄。
还有一个,就是现在的WINDOWS操作系统在用OpenProcess()拿进程句柄前,都要提权的。
提权的函数摆在这里,做个备忘:
// 提升权限
BOOL EnableDebugPriv()
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if ( ! OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
return false;
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) )
{
CloseHandle( hToken );
return false;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
CloseHandle( hToken );
return true;
}
CSDN博客上怎么插代码我一直没找到饿。。。。时间比较紧,就这么贴上吧。
这个提权的代码一直也没仔细看过,没明白是什么意思什么原理,就知道把这个函数一COPY,直接就能用了~
最后再随便总结两句聊两句:
Windows API实在太厉害了,根据API暴露的接口,能够干好多好多的好事坏事啊,也能实现许许多多以前觉得很神奇的功能。
越学习这个东西,越觉得开发WINDOWS的程序员太天才了,这个操作系统神奇之处先放一边,
光把暴露出来的这么多API用好,实现一个又一个井然有序的功能,就已经能体现他们强大的功力了。
他们自己开发的程序暴露出来的接口,编程别的程序员要去学习的知识,这帮人真是太牛了。
今天才知道,《windows程序设计》不是只有Charles Petzold一版,中国也有本国产的《windows程序设计》,而且似乎写的还不错。
国产这本似乎讲述了更多的API细节和更高级功能的API,想做坏事的同学看看这本书,一定能受益匪浅~
之前做了个钩子的键盘记录小程序,能勉勉强强地盗个密码了,有点成就感,但其实就是用了个钩子,没啥新鲜的;
前两天又试验了1下模拟键盘鼠标消息,可以轻松实现warkey啊按键精灵啊这些软件的功能;
今天稍微弄了弄,觉得游戏修改器这东西也不过如此,再使劲1把估计也就出来了。
估计要是把2本《windows程序设计》和1本《windows核心编程》全都搞明白,真就无了敌了。
可是自己一直没接触过汇编。真不知道以前看雪论坛那帮牛人又是汇编,又是windows api的,到底在干啥?
这帮牛人,做个外挂啥的估计对他们都是小CASE,毁灭地球对他们来说才有挑战…………
今天就到这把。去接最最懂事最最乖最最可爱的小静静下课~
那个啥,说实话,媳妇提醒我应该看看IPHONE了,真是多亏她的提醒了。
明天可得把时间分配好了,别干自己事情干的太HIGH,忘了自己是要做IPHONE开发的……
- 记个笔记
- 记个笔记....
- 个笔记
- 第一个学习笔记
- 第一个学习笔记
- 无聊。。。。做个笔记
- 做个笔记 freopen
- 转个scull笔记
- 写个笔记
- java第一个笔记
- 第一个笔记
- 记个python 脚本笔记,click命令行模块实例
- 就是写个笔记,马个网址
- spring第一个程序笔记
- 学习笔记,做个记号
- 编译第一个驱动程序笔记
- JAVA多线程 -- 留个笔记
- 我的第一个笔记
- C++ 句柄与指针的区别
- C的循环队列
- [整理]WinCE中如何向image中添加文件
- iphone开发之viewDidLoad
- 海盗分金
- 记个笔记
- 屏蔽页面js错误
- printf中#号的意思
- 超长数字串(1.2.7 )
- TutorialCachingStory
- Linux/Unix编程中的线程安全问题
- 《没有任何借口》读后感
- 瞎扯淡也是必须的
- 收藏一些经典题目(1)