吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 17665|回复: 14
收起左侧

[分享] 以某加速器为例,解释如何总结破解技巧

[复制链接]
ps520 发表于 2010-8-6 21:32
【文章标题】: 某网络加速器调试技巧
【文章作者】: Luck[LCG]
【作者邮箱】: 466748210@qq.com
【作者QQ号】: 466748210
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  之前发过文章,不过实在无聊得很。加上答应作者不放破解补丁,作为技术交流,写个文章总结下加密升级以后快速调试技巧。
  之所以要快速调试技巧,意思是不能每次都拿个按钮事件去查按钮事件啊之类的,实在蛋疼。所以我们直接通过分析程序某些特征
  定位程序关键点,达到快速调试技巧。
  
  1.对于加密数据的分析
  全是英文,翻译太难,我们选个比较简单的分析一下就可以得到大概意思。
  "ehhn"、"eggz"在解密过程中会得到"ok"、"no"
  所以我们猜测文本对应长度在加密后会*2,也就是原来长度为1的现在变成了2
  根据这个我们可以快速翻译加密字符串
  这样你就能大概翻译出加密字符串了。(感谢他们采用的加密技术)
  
  
  2.定位按钮入口事件
  实在蛋疼得不行,每次用按钮事件查找让我崩溃了!
  那么怎么快速定位呢?
  我分析了程序以后发现,原代码并未删除,3.7只是加密了字符串,并未发现实质性动作。但这么多的垃圾信息并未剔除。
  所以程序字符串分为3段:
  1.未加密文本,无用
  2.加密文本段1,无用
  3.加密文本段2,有用
  
  定位3太简单了,往下拉,过了2就是了。
  根据特点,下面的eggz再往下的几个加密串,进入后把代码往上拉,就可以看到push 0x?了,也就是我们的入口点了。直接下断即可。
  说半天是空话,我们来试试:
  打开OD,加载程序后查字符串(注意,3.8有加密壳,不过很垃圾,可以用脱壳机啊之类的处理掉,也可以自己动手脱。)
  往下拉。
  我们已经知道字符串的3部分构成,所以直接下拉找特征码
  hreoczeiejhscdbphuerdkar
  找到这个就OK了。
  Follow in cpu
  OD的版本不一样,所以翻译出来也会有很大的不同
  004124E0    6A FF           push    -1
  004124E2    68 0FDB4D00     push    004DDB0F                         ; ASCII ""B8,"?,B4,"P"
  004124E7    64:A1 00000000  mov     eax, dword ptr fs:[0]
  004124ED    50              push    eax
  004124EE    64:8925 0000000>mov     dword ptr fs:[0], esp
  004124F5    81EC A0010000   sub     esp, 1A0
  004124FB    53              push    ebx
  
  顺便提取个特征码,以后直接暴力搜索
  6A FF 68 0F DB 4D 00 64 A1 00 00 00 00 50 64 89 25 00 00 00 00 81 EC A0 01 00 00 53
  
  3.调试技巧
  我的调试技巧很简单,跳转即下断点,多测试。
  由于代码很龌龊,所以我们需要快速定位。举个例子:
  如何确定Vip线路限制
  我们知道Vip线路一定是个跳转,然后一定会有字符串解密。(因为VIP限制提示被加密了)
  所以如果没有加密字符串的跳转我们可以直接无视!
  00413D07   /74 49           je      short 00413D52
  00413D09   |6A 01           push    1
  00413D0B   |51              push    ecx
  00413D0C   |8BCC            mov     ecx, esp
  00413D0E   |896424 28       mov     dword ptr [esp+28], esp
  00413D12   |68 30064F00     push    004F0630                         ; bgieflgigyjigmcrcmeajfavjsiqfwbueeecajdmhidtfzaphzjmfnhfbtgwaninbrejhzfiamhxbieuiydhjghtgjffazfcdiapbmhldmighrglgejtdmfeepjrbjfudhatiwjfflgrcmanaphhfpiqgofiafcmcudzbkjnbsilabjqjnjrebjcgnhihwhlhtcihlaufjgbhfjtbicveoahbvjthmaxfmco
  00413D17   |FF15 28824E00   call    dword ptr [4E8228]               ; MFC71.#304
  00413D1D   |8D4424 1C       lea     eax, dword ptr [esp+1C]
  00413D21   |50              push    eax
  00413D22   |8BCD            mov     ecx, ebp
  00413D24   |E8 6707FFFF     call    00404490
  00413D29   |8D4C24 14       lea     ecx, dword ptr [esp+14]
  00413D2D   |C68424 B8010000>mov     byte ptr [esp+1B8], 4
  00413D35   |FF15 CC864E00   call    dword ptr [4E86CC]               ; MFC71.#3397
  00413D3B   |50              push    eax
  00413D3C   |8BCD            mov     ecx, ebp
  00413D3E   |E8 9D01FFFF     call    00403EE0
  00413D43   |8D4C24 14       lea     ecx, dword ptr [esp+14]
  00413D47   |FF15 D8864E00   call    dword ptr [4E86D8]               ; MFC71.#578
  00413D4D   |E9 AD040000     jmp     004141FF
  00413D52   \8D8C24 E8000000 lea     ecx, dword ptr [esp+E8]
  
  
  很明显,这里进入了一个解密段。
  00413D12    68 30064F00     push    004F0630                         ; bgieflgigyjigmcrcmeajfavjsiqfwbueeecajdmhidtfzaphzjmfnhfbtgwaninbrejhzfiamhxbieuiydhjghtgjffazfcdiapbmhldmighrglgejtdmfeepjrbjfudhatiwjfflgrcmanaphhfpiqgofiafcmcudzbkjnbsilabjqjnjrebjcgnhihwhlhtcihlaufjgbhfjtbicveoahbvjthmaxfmco
  
  bgieflgigyjigmcrcmeajfavjsiqfwbueeecajdmhidtfzaphzjmfnhfbtgwaninbrejhzfiamhxbieuiydhjghtgjffazfcdiapbmhldmighrglgejtdmfeepjrbjfudhatiwjfflgrcmanaphhfpiqgofiafcmcudzbkjnbsilabjqjnjrebjcgnhihwhlhtcihlaufjgbhfjtbicveoahbvjthmaxfmco
  很长,我们来计算下长度
  228
  按照刚才的算法,对应的字符串长度应该为114
  取消断点,F9.
  正在初始化...
        网际速递友好提示
  免费用户不能选择VIP 专用服务
  器组!欢迎您充值成为我们的付
  费VIP用户,享受尊贵的VIP服务
  
  在删除换行和空格之后:
  正在初始化...网际速递友好提示免费用户不能选择VIP专用服务器组!欢迎您充值成为我们的付费VIP用户,享受尊贵的VIP服务
  长度居然就是114!
  我们可以确定下来这里肯定是VIP限制段了。
  
  je不成立则提示VIP限制,那么跳过就不会限制了。
  Jmp掉,果然成功,证明了我们的猜想。
  
  
  
  这些只是一些小的调试技巧,需要个人总结。我的观点是:
  一个软件,不管是加壳还是啥的,如果要跟就应该从最开始的版本,因为框架是定了的,再变都是那个样子
  如果一个软件能够每次更新框架就大不一样,那说明你的对手是一个反破解高手,或者说他以娱乐破解为乐趣!
  那将是十分恐怖的一件事情。
  
--------------------------------------------------------------------------------
【经验总结】
  1.善于总结
  2.有想找捷径的欲望
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于Luck[LCG], 转载请注明作者并保持文章的完整, 谢谢!
                                                       2010年08月06日 21:33:36

免费评分

参与人数 1威望 +1 收起 理由
ximo + 1 恶意灌水!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| ps520 发表于 2010-8-6 21:33
作为一个沙发党

我毫不犹豫地占楼等回复
52013143 发表于 2010-8-6 21:44
我先来支持一下PS520了  老大 出个视频教程就好了
ly2008v 发表于 2010-8-6 21:51
烟头狂甩 发表于 2010-8-6 21:56
以后可能会有用吧
飞刀 发表于 2010-8-6 22:07
先回复再慢慢看
340598871 发表于 2010-8-6 22:15
学来看看
 楼主| ps520 发表于 2010-8-6 22:34
其实跟一个软件系列比较好

你可以学习很多

特别是总结技巧这方面
douforster 发表于 2010-8-6 22:35
这个绝对支持,顶一个!
ronmaoo 发表于 2010-8-6 23:02
不是很明白,有点昏,学习中
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 10:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表