文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃破解文章 → 万能五笔2001注册码分析及暴力破解

万能五笔2001注册码分析及暴力破解

时间:2004/10/15 0:49:00来源:本站整理作者:蓝点我要评论(0)

     此软件比较复杂,未注册前,给出注册框,并限定了使用次数,使用两百次之后,不能继续使用,哪怕是输入正确的注册码也不行,重装也不行。输入注册码之后,软件退出,在每次启动时都要重新判断注册码正确与否。   
    它在注册时采用了从电脑获取电脑码,并将输入的注册码进行计算,算得的值同电脑码进行比较,相等则表示注册正确。由于每台电脑的电脑码不同,保证了一个注册码只能够用于同一台电脑。
    若用注册机的方法进行注册,由于在某些用户的机子上,已经超过了使用次数。这时注册已经晚了。所以没办法,最后还是采取暴力破解更可行。
    在注册方面,作者设置了很多的障碍:输入的注册码有固定的前四位和后四位,只有中间的几位才参与计算;在程序入口,也设置了相当多的障碍,加了许多的判断,让我几乎迷失在无穷的跳转中,即使在子程序也加入了跳转。最后很无赖,只好跟踪正确注册的程序,才找到正确的路径。
    写的有点长,对不起大家。
 
以下是对注册码的分析,然后是再对其进行暴力破解
运行TRW,装入!WNM,在出现对话框时,下BPX HMEMCPY,大家都是成年人,不用我说得太具体吧。
跟踪到以下代码:


016F:0048CB74  MOV      EDX,[00496D34]    此处存的是“tt98 0615"     
016F:0048CB7A  MOVSX    EAX,CX
016F:0048CB7D  MOV      DL,[EDX+EAX]      依次取出8,9,t,t
016F:0048CB80  CMP      DL,3F
016F:0048CB83  JZ      0048CB8B
016F:0048CB85  CMP      [ESP+EAX+1C],DL    依次输入的注册码的第4,3,2,1位
016F:0048CB89  JNZ      0048CB8F
016F:0048CB8B  DEC      CX
016F:0048CB8D  JNS      0048CB74          以上为比较前面四个字节是否为 tt98
016F:0048CB8F  CMP      CX,BYTE -01
016F:0048CB93  JNZ      0048CB9A
016F:0048CB95  MOV      EBP,01            =1  可能表示首四位是正确的
016F:0048CB9A  MOV      EDI,[00496CBC]    为 "0615"
016F:0048CBA0  MOV      ECX,FFFFFFFF       
016F:0048CBA5  SUB      EAX,EAX
016F:0048CBA7  REPNE SCASB
016F:0048CBA9  NOT      ECX               
016F:0048CBAB  DEC      ECX                算出为4位
016F:0048CBAC  LEA      EDI,[ESP+1C]      为输入的注册码
016F:0048CBB0  MOV      DX,CX
016F:0048CBB3  SUB      EAX,EAX
016F:0048CBB5  MOV      ECX,FFFFFFFF
016F:0048CBBA  REPNE SCASB
016F:0048CBBC  NOT      ECX         
016F:0048CBBE  DEC      ECX                算出输入的注册码位数
016F:0048CBBF  SUB      CX,DX              减去4位
016F:0048CBC2  TEST    CX,CX
016F:0048CBC5  JNG      0048CBF6
016F:0048CBC7  XOR      SI,SI
016F:0048CBCA  TEST    DX,DX
016F:0048CBCD  JNG      0048CBF0
016F:0048CBCF  MOV      EAX,[00496CBC]  存的是0615的地址
016F:0048CBD4  MOVSX    EDI,SI
016F:0048CBD7  MOV      AL,[EAX+EDI]    0615中的0
016F:0048CBDA  CMP      AL,3F            小于F
016F:0048CBDC  JZ      0048CBE9
016F:0048CBDE  MOVSX    EBX,CX
016F:0048CBE1  ADD      EBX,EDI
016F:0048CBE3  CMP      [ESP+EBX+1C],AL
016F:0048CBE7  JNZ      0048CBF0
016F:0048CBE9  INC      SI
016F:0048CBEB  CMP      DX,SI
016F:0048CBEE  JG      0048CBCF        以上几行比较后四位是否为0615
016F:0048CBF0  CMP      DX,SI
016F:0048CBF3  JNZ      0048CBF6
016F:0048CBF5  INC      EBP              由48CB95,可知道 EBP=2,可能表示首四位和末四位都正确
016F:0048CBF6  CMP      EBP,BYTE +02
016F:0048CBF9  JZ      0048CC05        跳到下面,

016F:0048CBFB  MOV      EBP,FFFFFFFE
016F:0048CC00  JMP      0048CD05

016F:0048CC05  MOV      EDI,[00496D34]      此处存的是“tt98 0615"
016F:0048CC0B  MOV      ECX,FFFFFFFF       
016F:0048CC10  SUB      EAX,EAX
016F:0048CC12  REPNE SCASB
016F:0048CC14  NOT      ECX                  ecx=5,这几行好像没什么用
016F:0048CC16  SUB      EAX,EAX
016F:0048CC18  LEA      ESI,[ESP+ECX+1B]  为输入的注册码后的第五位,即tt98后面的一位的地址
016F:0048CC1C  MOV      EDI,ESI           
016F:0048CC1E  MOV      ECX,FFFFFFFF
016F:0048CC23  REPNE SCASB
016F:0048CC25  NOT      ECX                ecx=b,即tt98后面剩余的位数+1,包括0615
016F:0048CC27  MOV      EDI,[00496CBC]      edi为0615地址
016F:0048CC2D  SUB      EAX,EAX           
016F:0048CC2F  LEA      EDX,[ECX-01]        edx=a,即tt98后面剩余的位数           
016F:0048CC32  MOV      ECX,FFFFFFFF
016F:0048CC37  REPNE SCASB
016F:0048CC39  NOT      ECX
016F:0048CC3B  DEC      ECX                ECX=4
016F:0048CC3C  MOV      EAX,ESI         
016F:0048CC3E  SUB      EAX,ECX            即输入的注册码位置               
016F:0048CC40  MOV      ECX,ESI           
016F:0048CC42  MOV      BYTE [EAX+EDX],00  即输入注册码的倒数第四位处,改位0,
                                            以便于下面调用函数判断注册码中部(除tt98和
                                            0165)的位数
016F:0048CC46  CALL    00491A20            !! : 判断输入的字符串是否满足要求,见子程序1
016F:0048CC4B  TEST    EAX,EAX           
016F:0048CC4D  JNZ      0048CC59            eax=1时,正确,跳转
016F:0048CC4F  MOV      EBP,FFFFFFFD
016F:0048CC54  JMP      0048CD05

016F:0048CC59  MOV      EDX,004930E8        此时存的“0604”字符
016F:0048CC5E  MOV      ECX,ESI            ESI为中间注册码首位地址
016F:0048CC60  MOV      EBP,FFFFFFFC
016F:0048CC65  CALL    00491A70            将其由字符串转换成二进制的数,见子程序2
016F:0048CC6A  CMP      WORD [00496D28],BYTE +01
016F:0048CC72  MOV      ESI,EAX
016F:0048CC74  JNZ      0048CCCF

016F:0048CC76  MOV      DI,[00496D2E]
016F:0048CC7D  MOV      EDX,[00496CB0]
016F:0048CC83  SHR      DI,08
016F:0048CC87  MOV      CX,[00496D2E]
016F:0048CC8E  AND      CX,FF
016F:0048CC93  CALL    0048C790
016F:0048CC98  ADD      ESI,EAX
016F:0048CC9A  TEST&

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程