使用汇编写进注册表启动的简单例子

以下是我初学win32汇编的的笔记,学那么久了,也该丢篇文章出来,呵呵。

对注册表的操作,例如写入,修改,删除,在一些高级语 言,例如 C/C++ VB中都有对注册表操作的API,但是我感觉用win32汇编写,比较适合我自己。例如,创建一个REG_SZ类型的数值,就用 RegCreateKey创建一个新项,在API手册中,对它的介绍是“在指定的项下创建一个新项。如指定的项已经存在,那么函数会打开现有的项,如果返 回ERROR_SUCCESS,则表示成功”在创建一个新项后,就要用RegSetValueEx设置它的数值,具体的代码如下:

 

程序中,利用伪指令invoke调用了RegCreateKey,关于RegCreateKey的参数,是这样描述“

invoke RegCreateKeyEx,hKey,lpSubKey,Reserved,lpClass,dwOptions,samDesired,

lpSecurityAttributes,phkResult,lpdwDisposition”

其中hKey用来指定了我们要创建新项的根建,当我们这样“invoke RegCreateKey,

HKEY_LOCAL_MACHINE,offset szRegKey,addr @hKey” 调用的时候就在“HKEY_LOCAL_MACHINE”这个根建下进行操作,然后设置 “eax == ERROR_SUCCESS” ,说明了操作成 功,这样,我们便可以使用RegSetValueEx设置数据名称和值。“invoke RegSetValueEx,@hKey,addr szRegValue,NULL, REG_SZ,addr szStr1,19” 创建了一个“Start”键值名称,它的数据值为“c:\windwos\muma.exe”,写入的子键位置在注册表启动。当然了,我们也可以设置一个REG_DWORD类型的数据值。

记 得有一次我提权的时候,发现主机的环境是,有执行exe文件的权限,不过不知道为什么,给它放个鸽子,就提示说“文件尾数超出”,传了个较小一点的木马, 运行效果也是不满意。自然想到写一个再小的东西,也就是上面那个代码,然后编译,才2.5K,汗,执行速度绝对一流,然后又设置了木马的路径。

接着,如果把它写成GUI界面的,自然要给它定义一个资源文件,并且加入消息列队执行..下面是GUI界面的代码:

 

程 序的变动不大,仅创建了一个模块对话框,只要几行代码就搞定.模块对话框的使用,省去了创建窗口,注册窗口类的麻烦.在_ProcDlgMain主程序 中,WM_COMMAND是执行消息的标志,比如IDCANCEL,这个是“退出”,点击,消息列队执行,然后 “invoke EndDialog,hWnd,NULL”关闭主程序,干净利落. 相同的,“IDC_Innovation”后,调用_EnumKey 子程序,_EnumKey执行的过程,也就写入了启动位置,写完后,设置一个MessageBox提示操作成功。

下面是RC资源文件代码:

原文链接: https://www.cnblogs.com/adodo1/archive/2012/07/15/4327761.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    使用汇编写进注册表启动的简单例子

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/55358

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午6:28
下一篇 2023年2月9日 上午6:29

相关推荐