asm : remove NAG on CimPACK 10.3.3

来源:互联网 发布:js获取select选中事件 编辑:程序博客网 时间:2024/05/18 13:48
Time Begin    :    2013-03-28 22:09
Time End        :    2013-03-29 00:22

实验环境: wmware9.0(build-812388) + WinXpSp3(2600.xpsp.080413-2111)
实验工具:    PEID V0.95 + OllyICE_1.10

实验过程:

* 查壳
    用PEID 0.95 载入 \Bin\CimPack.exe, 显示 Microsoft Visual C++ 6.0 [Overlay]
    google 资料, 说是 易语言写的程序, 脱壳不会, 就当没壳.
    
* 观察Nag窗口
    看到程序载入时, 有个Nag窗口.
    
* 在主程序中找Nag窗口调用
    
    OD载入CimPack.exe, 单步布过(F8)一遍, 初步确定Nag窗口弹出位置.
    00696648  |.  E8 53000100   call    006A66A0                               ;  窗口弹出

    步入(F7)    006A66A0, 进一步确定Nag窗口弹出位置
    006A66B0  |.  E8 08C80000   call    006B2EBD    ; 窗口弹出
    
    步入 006B2EBD, 进一步确定Nag窗口弹出位置
    006B2F01  |.  FF50 50       call    dword ptr [eax+50]    ; 弹窗
    0050B9FC   .  E8 FF000000   call    0050BB00    ; 弹窗
    0050BBA2   .  E8 59C21600   call    00677E00    ; 弹窗

    在0050C60C的下面几句call, 开始弹窗
    0050C60C   .  E8 73271100   call    0061ED84

    弹出NAG
    0050C61E   .  E8 CDCD1600   call    006793F0
    
* 开始发现下面的CALL 在RUN时, 运行到断点处, NAG窗口已经出来了
    开始一个一个弹窗的CALL下断点回溯, 都是用RUN方式, 运行到断点. 看看RUN到哪个断点处不弹窗
    0050C61E 弹窗
    0050C60C 弹窗
    0050BBA2 不弹窗
    
* 尝试注掉 弹窗调用
    将0050BBA2 处的弹窗调用 用NOP填充, 保存成CimPack1.exe.
    运行CimPack1.exe, 报错提示 "找不到CimPack1.dll". 推测主程序一定要命名为CimPack.exe
    将原版程序CimPack.exe 重命名 为 CimPack_org.exe,
    将修改版程序CimPack1.exe 重命名 为 CimPack.exe
    运行CimPack.exe, NAG窗口消失. 只出现主窗口.

实现 去除程序启动NAG窗口