网站首页 | 网页制作 | 网络编程 | 图形图象 | 冲浪宝典 | 操作系统 | 软件教学 | 网络安全 | 认证考试 | 下载中心 | 游戏下载
| 网络安全首页 | 安全在线 | 病毒防治 | 黑客攻防 | 漏洞研究 | 黑客编程 | 破解手记 |
您现在的位置: 超人气学院 >> 网络安全 >> 破解手记 >> 文章正文 用户登录 新用户注册
如何突破crackcode的25位限制           
如何突破crackcode的25位限制
作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:46:43

1、突破crackcode的25位限制的经过
    在论坛中,有一些贴子常提到crackcode存在25位的限制。可是rufeng又隐退江湖,
(江湖盛传他可能在修炼内功,准备东山再起)。于是好友豆豆虾(学过一点汇编,知道
一些常用工具的使用),凡心欲动,本意是想一一步分析,对代码原理有个总的了解。
然后再对证下药。所谓手到病除。他说如果一一分析下去,也许在作修改的时候,就不
会在一个数据结构上兜圈子,当时猜想rufeng是定义一个25位的字符数组,没有考虑到
获得的结果会超过25位的情况。 【爆破,可以采取直捣黄龙;作注册机,得看懂整个注册
码;修改代码,得看懂程序的实现原理,然后再OEM自己的思路。】    

2、为什么crackcode存在25位限制(打算介绍简单些,因为它牵扯到的面比较广)
        crackcode调用getthreadcontext函数,返回一个结构指针,利用其读取被跟踪
程序的寄存器(eax、edx...)中的值(这个函数的功能非常的棒)。rufeng巧妙的应用
了六个寄存器(Edi,Esi,Ebx,Edx,Ecx,Eax),返回它们注册码,一个寄存器
只能存4个字符,所以6*4=24,确切的说,crackcode取到的字符长度不能超过24个。
比如EAX=44324432--->储存"D2D2"四个字符。

3、如何突破它的限制??
    如果把程序通读一遍,似乎发现没有办法去突破这个限制,因为这是设计上的
失误。如果细细去琢磨crackcode,会发现它两次调用getthreadcontext函数。其实第
一次的时候,就可以得到要读取注册码的地址。根据crackcode.ini中Save_Code_Address
的值,对应寄存器储存的值。为什么crackcode要去两次调用getthreadcontext函数,其中
的奥秘,把程序认认真真的通读几遍(读到凌晨4点,窗外一片寂寂。在路灯下,几个清洁
工的身影,默默无闻的清洗大地,在我们匆匆来往的街道,还以清爽的感觉。)
好了!上面既然第一次调用的时候,已经能确定注册码的位置,何不拿它示问。于是可以
调用ReadProcessMemory,把注册码得到。

4、修改程序(代码修改位置401448---40149B)
    我这有豆豆虾修改时的草稿:
=========判断save_code_address需要读取的寄存器===========    
----deal with ebp----
mov ebx,40a64c  -------crackcode对save_code_address处理后存放的地址
mov ecx,40a1cc
mov al,byte ptr [ebx]
cmp al,0f5      -------为什么要进行这样比较,crackcode代码分享笔记(三)中
            有讲述。我把相关的部分放在附录中。
je final
----deal with eax----
sub ecx,4
cmp al,0f0
je final
----deal with ecx----
sub ecx,4
cmp al,0f1
je final
----deal with edx----
sub ecx,4
cmp al,0f2
je final
----deal with ebx----
sub ecx,4
cmp al,0f3
je final
----deal with esi----
sub ecx,4
cmp al,090
je final
----deal with edi----
sub ecx,

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

[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda    责任编辑:kinda 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
     Softice使用指南---配[2610]
     中文编辑排版专家—Dr[2442]
     一个破解注册码的例子[1436]
     C语言学习系统v3.0破解[1413]
     获得键盘扫描码[1243]
     破解ComposerforRingT[1082]
     自动脱壳之ProcDump应[990]
     流光4.5完全破解[978]
     VisualBasic程序之Sma[978]
     PE文件结构剖析[891]
    相 关 文 章
    如何去掉netants1.22的广告
    破解NetAlertv2[热点]指导
    如何用upx解开ASPack+ASPr
    如何学好破解这门技术
    VB3.0的程序如何破解
    如何破解PB6.5编译的程序
    如何去掉软件在上任务栏加
    大老的打狗教程第三篇(最终
    如何计算PE头部校验和
    如何让crackcode变得具有粘
    如何访问一个进程中的内存
    如何用TRW2000脱壳
    rufeng教程第一章如何成为
    Win2K下如何直接读写磁盘扇
    如何计算批量文件设置器2.
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)