首页 | 业界新闻 | 黑客教程 | 安全漏洞 | 安全文章 | 破解技术 | 技术文摘 | 黑客文化 | 本站原创 | 安全贴吧 | 在线留言 | IP查询 | 软件下载 | 繁体中文 |
您现在的位置: 黑色反击 >> 技术资讯 >> 破解技术 >> 破解实例 >> 正文
逆向初步,增加XP记事本功能,使用背景色,文字颜色,下划线,删除线
时间:2006-3-31 2:14:34 出处:看雪论坛 作者:andy00 编辑:mervin 点击数:
 

                 
                                                                                                      
;====================保存选择的颜色到clText(RVA==AF94)========================

010030E0  |.  85C0              TEST    EAXEAX
010030E2  |.  0F84 7F020000     JE      01003367
0101301F    FF35 84AB0001      PUSH    DWORD PTR DS:[100AB84]                         ; 更新这一句跳到自己的保存代码



;0101301F更改为010030E8,多余字节用NOP填充
010030E8    - E9 32FF0000       JMP     01013000                                      ; 上一句更改后的代码
010030ED      90                NOP                                                   ; 多余字节用NOP填充

010030EE  |.  8B1D 8C110001     MOV     EBXDWORD PTR DS:[<&USER32.SetCursor>]       ; 自己的代码最后必须跳回此处.
;................
;................



;010030E8跳到此处,自己的代码

01013000    FF35 84AB0001       PUSH    DWORD PTR DS:[100AB84]                        ; 还原0101301F被修改后的代码
01013006    A3 FCAF0001         MOV     DWORD PTR DS:[100AFFC], EAX                   ; 保存EAX现场
0101300B    8B4424 28           MOV     EAXDWORD PTR SS:[ESP+28]                    ; EAX=pCHOOSEFONT.rgbColor
                                                                                      ; 保存选择的颜色到EAX
0101300F    A3 94AF0001         MOV     DWORD PTR DS:[100AF94], EAX                   ; 保存到crText(RVA==AF94)
01013014    A1 FCAF0001         MOV     EAXDWORD PTR DS:[100AFFC]                   ; 还原EAX 
01013019  - E9 D000FFFF         JMP     010030EE                                      ; 跳回原程序处




;====================在中处理"背景色"菜单(==1C)的WM_COMMAND(==111)消息======================

;首先用RegisterClass(Ex)函数定位WndProc(主窗口的消息处理函数)

    RegisterClassEx只有一个参数WNDCLASSEX,此结构体定义如下

typedef struct {
    UINT cbSize;
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    HINSTANCE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackground;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
    HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX
    
    
    一共12个成员,其中第3个成员就是窗口的消息处理函数.在堆栈中它们的顺序是反的,应该倒着数,也就是第10个成员
    在OD中用 RegisterClassEx 函数找到以下初始化 WNDCLASSEX 结构体的代码
    
    
        
;RegisterClassEx注册窗口类

010044E2  |.  C745 D0 30000000  MOV     [LOCAL.12], 30                          ; |成员cbSize=30
010044E9  |.  FF15 1C120001     CALL    DWORD PTR DS:[<&USER32.GetSystemMetrics>; \GetSystemMetrics
010044EF  |.  F7D8              NEG     EAX
010044F1  |.  1BC0              SBB     EAXEAX
010044F3  |.  05 017F0000       ADD     EAX, 7F01
010044F8  |.  50                PUSH    EAX                                     ; /RsrcName=EAX
010044F9  |.  33FF              XOR     EDIEDI                                ; |
010044FB  |.  57                PUSH    EDI                                     ; |hInst=NULL
010044FC  |.  FF15 D8110001     CALL    DWORD PTR DS:[<&USER32.LoadCursorW>]    ; \EAX=LoadCursorW(NULL,RsrcName);
01004502  |.  6A 02             PUSH    2                                       ; /RsrcName = 2.
01004504  |.  56                PUSH    ESI                                     ; |hInst
01004505  |.  8945 EC           MOV     [LOCAL.5], EAX                          ; |hCursor=EAX;
01004508  |.  FF15 EC110001     CALL    DWORD PTR DS:[<&USER32.LoadIconW>]      ; \EAX=LoadIconW(hInst,RsrcName);
0100450E  |.  57                PUSH    EDI                                     ; /Options => LR_DEFAULTCOLOR
0100450F  |.  6A 10             PUSH    10                                      ; |Height = 10 (16.)
01004511  |.  6A 10             PUSH    10                                      ; |Width = 10 (16.)
01004513  |.  6A 01             PUSH    1                                       ; |Type = IMAGE_ICON
01004515  |.  6A 02             PUSH    2                                       ; |ResourceName = 2
01004517  |.  56                PUSH    ESI                                     ; |hInst
01004518  |.  8945 E8           MOV     [LOCAL.6], EAX                          ; |成员hIcon(大图标)
0100451B  |.  FF15 D4110001     CALL    DWORD PTR DS:[<&USER32.LoadImageW>]     ; \LoadImageW
01004521  |.  8945 FC           MOV     [LOCAL.1], EAX                          ; 成员hIconSm(小图标)
01004524  |.  8D45 D0           LEA     EAX, [LOCAL.12]
01004527  |.  50                PUSH    EAX                                     ; /参数pWndClassEx入栈
01004528  |.  C745 F4 01000000  MOV     [LOCAL.3], 1                            ; 成员lpszMenuName;
0100452F  |.  8975 E4           MOV     [LOCAL.7], ESI                          ; |hInstance=hInst;
01004532  |.  C745 F8 20900001  MOV     [LOCAL.2], 01009020                     ; 成员lpszClassName="Notepad"
01004539  |.  C745 D8 29340001  MOV     [LOCAL.10], 01003429                    ; |lpfnWndProc=01003429
                                                                                ; 窗口处理函数01003429
01004540  |.  C745 F0 06000000  MOV     [LOCAL.4], 6                            ; 成员hbrBackground
01004547  |.  897D D4           MOV     [LOCAL.11], EDI                         ; 成员style
0100454A  |.  897D DC           MOV     [LOCAL.9], EDI                          ; 成员cbClsExtra;
0100454D  |.  897D E0           MOV     [LOCAL.8], EDI                          ; |成员cbWndExtra;
01004550  |.  FF15 D0110001     CALL    DWORD PTR DS:[<&USER32.RegisterClassExW>; \RegisterClassExW
;................
;................

 

上一页  [1] [2] [3] [4] [5] 下一页

精彩推荐
hack菜鸟入门
VB 从零开始编外挂(完
IPC入侵全接触
QQ跨站漏洞巧利用,强
WinXP中CPU占用100%原
黑客新技术 灰鸽子巧妙
实例讲解 黑客入侵论坛
ADSL共享上网方式大总
BMP文件格式分析
十招教你学会破解
热门软件
网 友 评 论
关于我们 - 联系方式 - 招聘信息 - 合作伙伴 - 网站地图 - 广告服务 - 我要投稿 - 设为首页 - 加入收藏
黑色反击 力倡网络安全,崇尚互联共享,欢迎各种媒体转载我们的原创作品 [转载请注明出处]。
EMAIL:hf110.com@gmail.com 备案:苏ICP备05010002号