zoukankan      html  css  js  c++  java
  • 魔兽显血改键工具的脱壳和修改

    玩过魔兽的多少都接触过这个工具,然而昨天在我打算玩两把的时候在打开此工具时会弹出两个网页,以前也有过这种情况。果断不能忍,开始对他动刀。

    第一分析PE  查壳

    PEcompact  这是我第一次接触这个壳,好吧,也是第一次自己主动来脱壳。所以干脆手动脱壳。第一难度希望不要太大。

    OL载入

    这是EP代码  可以看到安装了一个异常处理。随后  xor eax,exa 然后访问[0]?当我傻?直接把OL设置为跳过所有异常。这样在触发403392处的异常后代码来到正确的位置

    代码右边是我作的注释虽然只有一点。但是可以看到整个程序的走向。他申请了一块区域在我这显示的起始地址是02000000 然后在00467eb5处调用该函数后分配的这块区域被填满。继续执行来到00467ED4处。下面的代码改变。变成如下

    00467EF8处近跳转来到这样的地方

    熟悉的代码熟悉的味道。嗯。OEP到了。此处开始dump,用importrec重建IAT。程序正常运行。接下来把弹出的网页给去掉。

    想到以下几种方法

    1.调用IE的函数找到NOP之

    2.并非每次都会弹出网页,找到跳转条件修改之

    我开始尝试第一种方面。该程序用VB编译。因此我找到VB中调用IE程序的办法。大概那么两种 1.建立IE.APPLICATION对象 2.用shell。无奈两种办法都找不到对应的__vba函数。也是因为我从没写过VB程序的原因吧。

    没办法用第二种方面。根据我的回忆。大概是每天第一次开的时候会跳出来网页。那么好办。那么我在调用getlocaltime上下断点,然后改了系统时间再次调试,果断程序停在了断点处。顺着栈往下往,直接到return to该程序的位置,找到。发现一个vba函数 .rtcdatevar。大概就是这个函数读取时间吧。在此处下断点。继续调试。直接下面的一个跳转。我对比了下弹出网页和未弹的跳转。直接把弹出的那个不同的跳转给改成了不弹出的。开始改了一个地方。发现继续出现。于是我继续找跳转。直接改了第二个。不会再弹出,GAME OVER。

    有没有高手能解答下一个疑问。为什么用ida调试VB程序时会无法转换成图表?会出现如下对话框

    另外在调试程序时发现改键精灵的一个配置文件。里面记载了上次打开程序的时间。发现只要和当前系统时间日期不同即弹出。无论系统时间快于或者慢于该时间。

    最后附上已经脱壳去网页的魔兽改键

    files.cnblogs.com/files/distanceblog/Dumped_3.rar

  • 相关阅读:
    java中的静态变量,静态方法与静态代码块详解
    增删改查简单的sql语句
    Java中的输入流与输出流
    Java向mysql中插入时间的方法
    java中Statement 对象
    request和session获取参数的区别
    Session 详解
    Java中静态变量与非静态变量的区别
    MYSQL基础操作之数据约束与关联查询
    MYSQL基础操作之单表的增删改查
  • 原文地址:https://www.cnblogs.com/distanceblog/p/5125265.html
Copyright © 2011-2022 走看看