zoukankan      html  css  js  c++  java
  • 零基础逆向工程31_Win32_05_提取图标_修改标题

    在程序中使用图标

    1.加载图标

    HICON hIcon;
    
    hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));
    
    hAppInstance
            应用程序句柄
    
    IDI_ICON
            图标编号
    	
    MAKEINTRESOURCE
            用这个宏的主要原因是有的资源是用序号定义的,而不是字符串.所以要把数字转换成字符串指针
    

    2.设置图标

    case WM_INITDIALOG :
    		hIcon = LoadIcon (hAppInstance, MAKEINTRESOURCE (IDI_ICON));
    		//设置图标
    		SendMessage(hDlg,WM_SETICON,ICON_BIG,(DWORD)hIcon);
    		SendMessage(hDlg,WM_SETICON,ICON_SMALL,(DWORD)hIcon);
    		//注:WM_SETICON 是事件的类型
    		return TRUE;
    

    图标在哪里? ==> PE结构资源表

    资源目录

    typedef struct _IMAGE_RESOURCE_DIRECTORY {
        DWORD   Characteristics;				//资源属性  保留 0
        DWORD   TimeDateStamp;					//资源创建的时间
        WORD    MajorVersion;					//资源版本号 未使用 0
        WORD    MinorVersion;					//资源版本号 未使用 0
        WORD    NumberOfNamedEntries;			//以名称命名的资源数量
        WORD    NumberOfIdEntries;				//以ID命名的资源数量
    //  IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[];
    } IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
    

    资源目录项

    typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
        union {						//目录项的名称、或者ID
            struct {
                DWORD NameOffset:31;
                DWORD NameIsString:1;
            };
            DWORD   Name;
            WORD    Id;
        };
        union {
            DWORD   OffsetToData;		//目录项指针
            struct {
                DWORD   OffsetToDirectory:31;
                DWORD   DataIsDirectory:1;
            };
        };
    } IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
    

    数据项

    typedef struct _IMAGE_DATA_DIRECTORY {
        DWORD   VirtualAddress;
        DWORD   Size;
    } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
    

    可参考1:http://blog.sina.com.cn/s/blog_99fde17c0101717f.html
    可参考2:http://blog.csdn.net/obuyiseng/article/details/50260671

  • 相关阅读:
    HBase权威指南
    Mapreduce编程
    Hive内部表和外部表的区别
    Android Volley全然解析(四),带你从源代码的角度理解Volley
    codeforces 448CPainting Fence
    2.maven 安装配置
    cocos2d-x 3.0正式版创建project笔记
    C. DZY Loves Sequences
    spring 基础回想 tips01
    spring 配置属性细节
  • 原文地址:https://www.cnblogs.com/flatcc/p/7786790.html
Copyright © 2011-2022 走看看