zoukankan      html  css  js  c++  java
  • win32asm(32位下windows汇编)总结经验

    备注:开发工具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

     3. struct 定义

    struct_name STRUCT
    dowrd1    dd ?
    struct_name ends

    http://www.cnblogs.com/taowen/articles/11237.html

    签名档: 从事网络安全和编程的我,很希望能找到志同道合的朋友交流。 欢迎cn博客的好友拍砖,留言。
  • 相关阅读:
    linux 软件 手动添加至桌面或启动栏
    memcached 技术支持
    linux mint & ubuntu 安装QQ国际版
    2014总结
    http response 过长 导致Connection reset
    Python高质量缩放切图,抗锯齿
    eclipse使用Maven插件创建一个web project
    springMVC or response redirect https
    使用SharedPreference保存一些简单的信息
    手机的sd卡的写入和读取数据的方
  • 原文地址:https://www.cnblogs.com/M4ster/p/win32asm_exp.html
Copyright © 2011-2022 走看看