首页
社区
课程
招聘
[原创]网吧语音大师 8.2--UPX变形壳脱壳破解
发表于: 2012-7-9 19:10 6229

[原创]网吧语音大师 8.2--UPX变形壳脱壳破解

2012-7-9 19:10
6229
【文章标题】: UPX变形壳手脱
【文章作者】: 李大春
【软件名称】: 网吧语音大师 8.2
【软件大小】: 3.多
【下载地址】: 自己搜索下载
【加壳方式】: UPX变形壳
【操作平台】: XP SP3
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!强调一句,本人绝对是第一次破解,恩恩!!
--------------------------------------------------------------------------------
【详细过程】
  我发现我写得文章不知道是水平太差还恩恩,是怎么的,没有多少人恢复,令人无语。严重打消鄙人的积极性。大家多恢复恢复,看帖不回,众人爆菊之
  
  
  首先PEID查壳,显示什么都没有,但是EP区段显示为UPX1,UPX的壳,应该是变形壳,不然PEID应该能显示UPX以及版本。昨天在看雪论坛看有位仁兄说是UPX 变形壳,并且整了半天没脱壳,在这里用绵薄之力予以脱壳,不为其他只为互相学习,希望能达到为新手朋友们解惑的目的。
  START:
  OD载入,发现程序停在了下面位置。提示:鄙人用的FLY的OD,大家应该都有,没有可以上工具区下载(严重的废话)
  
  
  007C6710 LB>  60                 pushad
  007C6711      BE 00E06100        mov esi,LBSserve.0061E000
  007C6716      8DBE 0030DEFF      lea edi,dword ptr ds:[esi+FFDE3000]
  007C671C      57                 push edi
  007C671D      EB 0B              jmp short LBSserve.007C672A
  007C671F      90                 nop
  007C6720      8A06               mov al,byte ptr ds:[esi]
  
  我就不用单步跟踪的办法了,呵呵(其实我刚才也是单步跟踪来着)
  用堪称与物理学-牛顿定律媲美的 ESP定律,在单步运行到007C6711时下硬件访问word断点,
  具体方法如下:1.单步到007C6711
                2.在寄存器窗口中找到ESP
                3.在ESP的值上右键---在转存中跟随
                4.在数据窗口处,选中第一行数据---断点----硬件访问word断点
  OK下好断点了,下面可以开始F9运行了。
  F9运行4次,来到一下代码处。我这机器是4次,别的机器上不一定。(看代码辨认)
  
  0056DA49      F8                 clc
  0056DA4A      EB 08              jmp short LBSserve.0056DA54
  0056DA4C      8230 08            xor byte ptr ds:[eax],8
  0056DA4F      46                 inc esi
  0056DA50    - E9 DD9CFCE9        jmp EA537732
  0056DA55      AC                 lods byte ptr ds:[esi]
  0056DA56      4B                 dec ebx
  0056DA57      FA                 cli
  0056DA58      FF8B CB83C304      dec dword ptr ds:[ebx+4C383CB]
  0056DA5E      8339 00            cmp dword ptr ds:[ecx],0
  0056DA61      7E 0F              jle short LBSserve.0056DA72
  0056DA63      8B13               mov edx,dword ptr ds:[ebx]
  0056DA65      8B43 04            mov eax,dword ptr ds:[ebx+4]
  0056DA68      89041A             mov dword ptr ds:[edx+ebx],eax
  
  可以取消硬件访问断点了。怎么取消???
  在OD最上面菜单中点调试---硬件断点---把能看到断点全部取消。
  取消断点以后可以单步了,已经离OEP很近了。单步两下到达OEP。
  00512605      55                 push ebp
  00512606      8BEC               mov ebp,esp
  00512608      6A FF              push -1
  0051260A      68 40CB6400        push LBSserve.0064CB40
  0051260F      68 94585100        push LBSserve.00515894
  00512614      64:A1 00000000     mov eax,dword ptr fs:[0]
  0051261A      50                 push eax
  0051261B      64:8925 00000000   mov dword ptr fs:[0],esp
  00512622      83EC 58            sub esp,58
  00512625      53                 push ebx
  00512626      56                 push esi
  00512627      57                 push edi
  00512628      8965 E8            mov dword ptr ss:[ebp-18],esp
  0051262B      FF15 0CE25600      call dword ptr ds:[56E20C]               ; kernel32.GetVersion
  
  看入口特征应该是C++写的,但是仔细一看,是E语言而且是5.XX版本独立编译的,恩恩不会错的!!
  到达OEP了,当然是脱壳之,脱壳完后用IMPORTREC修复一下,OK,程序可以运行。
  
  
  破解部分:
  载入脱壳修复的程序,运行起来,然后点验证程序。。。恩???提示无法取得机器码.....有个暗桩,找到这个暗桩去掉之,此程序有重启验证,注册表类型,比较简单,此处不再罗嗦。个人认为这个程序破解无大用,本身就是免费软件。恩,今天到此吧,牛人可以飘过。。。。。
付上源程序与脱壳破解后的文件
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于大春, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2012年07月09日 下午 06:47:24

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
太空步强势滑过~
2012-7-9 20:02
0
雪    币: 28
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
想问一下,为什么是运行4次F9呢,怎么看差不多可以达到OEP的?
2012-7-10 07:50
0
雪    币: 63
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
呵呵,这是单步跟踪的经验,此时壳已经把代码解压完毕了
任何什么取断点什么的啦,取特征码什么的都是单步跟踪的结论,呵呵,兄弟不嫌麻烦可以进行单步跟踪呵呵。。
2012-7-10 08:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
去掉客户端的广告比较有用。
2012-7-12 14:16
0
游客
登录 | 注册 方可回帖
返回
//