首页 > Windows开发 > 详细

win32asm(32位下windows汇编)总结经验

时间:2017-02-06 17:55:13      阅读:224      评论:0      收藏:0      [点我收藏+]

 

备注:开发工具Radasm (以下都是在此工具中操作)

1.如何给win32asm程序添加UAC控制

灵感来自vc如何添加UAC,其中vs10自带UAC控制,如果不特殊设定的话就默认设置asinvoke。

第一,自建个vs10项目,在debug/relese目录下找到.manifest的文件其中内容如下

<?xml version=1.0 encoding=UTF-8 standalone=yes?>
<assembly xmlns=urn:schemas-microsoft-com:asm.v1 manifestVersion=1.0>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level=requireAdministrator uiAccess=false />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

将文件copy到asm工程文件夹下(自己建个文件将以上内容copy进去就行)例如名为 uac.mainfest

第二,UAC控制的文件准备好后;打开xx.rc文件(radasm在创建工程的时候会创建此文件),输入以下内容

#define IDR_RCDATA1 1

IDR_RCDATA1                  24                      "uac.manifest"

注意id值一定要为1,类型24

第三,编译链接的时候,要记住先‘编译资源脚本’。

2. 设置段SECTION的属性

开发中会出现子修改code代码的需求,如果直接利用代码修改自身代码,会提示不可写,这是因为.code段属性为可读可执行,所以写入出错。

打开菜单 ‘工程- 工程选项’ 弹出对话窗口,在’链接‘输入框中 LINKE.exe 后添加 

/SECTION:.text|RWE

 

win32asm(32位下windows汇编)总结经验

原文:http://www.cnblogs.com/M4ster/p/win32asm_exp.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!