破解软件:XFader
下载地址:www.21hh.net
破解难度:易
破解工具:TRW1.22
软件说明:方便的图像素材生成工具,可以从任意一个位图创建无穷多的纹理素材。只需执行XFader,打开一个
bitmap或jpeg文件然后按“渐变”按钮即可,注册用户可以及时预览效果。它本身并不具备太多图片的编修功
能,它对于制作不同风格的网页或是制作布景主题是蛮需要的。赶快试试吧,绝对让你大吃一惊。
任意输入用户名ShenGe和注册码12345678,下BPX HMEMCPY中断,点Register,程序被中断,按7下F12再按F10来到以下代码:
0167:00470BDD LEA EDX,[EBP-08]
0167:00470BE0 MOV EAX,[0049EB50]
0167:00470BE5 MOV EAX,[EAX+01F4]
0167:00470BEB CALL 0041D25C
0167:00470BF0 MOV EAX,[EBP-08] <---程序中断于此,取输入的注册码到EAX中
0167:00470BF3 PUSH EAX
0167:00470BF4 LEA EDX,[EBP-0C]
0167:00470BF7 MOV EAX,[0049EB50]
0167:00470BFC MOV EAX,[EAX+01F0]
0167:00470C02 CALL 0041D25C
0167:00470C07 MOV EDX,[EBP-0C] <---取输入的用户名到EDX中
0167:00470C0A MOV EAX,EBX
0167:00470C0C POP ECX <---ECX中为输入的注册码
0167:00470C0D CALL 00470530 <---关键的Call,跟进
0167:00470C12 TEST AL,AL
0167:00470C14 JZ NEAR 00470C9D <---关键跳转,要爆破改为JNZ即可
0167:00470C1A LEA EDX,[EBP-08]
0167:00470C1D MOV EAX,[0049EB50]
0167:00470C22 MOV EAX,[EAX+01F4]
0167:00470C28 CALL 0041D25C
0167:00470C2D MOV EAX,[EBP-08]
0167:00470C30 PUSH EAX
跟进上面的那个Call,来到如下代码处:
0167:00470530 PUSH EBP
0167:00470531 MOV EBP,ESP
0167:00470533 PUSH ECX
0167:00470534 MOV ECX,04
0167:00470539 PUSH BYTE +00
0167:0047053B PUSH BYTE +00
0167:0047053D DEC ECX
0167:0047053E JNZ 00470539
。。。。。。。
0167:004705B3 LEA ECX,[EBP-24]
0167:004705B6 MOV EDX,ESI
0167:004705B8 MOV EAX,[EBX+4C]
0167:004705BB MOV EDI,[EAX]
0167:004705BD CALL NEAR [EDI+0C]
0167:004705C0 MOV EDX,[EBP-24]
0167:004705C3 MOV ECX,08
0167:004705C8 MOV EAX,EBX
0167:004705CA CALL 00470674 <---此Call将我们输入的用户名进行转换:小写全部转换成大写;
0167:004705CF MOV ECX,[EBP-20] 若用户名不足8位,则不足部分依次从输入的用户名的第1位起
0167:004705D2 MOV EDX,ESI 取字符补齐,如我输入的为ShenGe,则转换后为SHENGESH
0167:004705D4 MOV EAX,[EBX+4C]
0167:004705D7 MOV EDI,[EAX]
0167:004705D9 CALL NEAR [EDI+20]
0167:004705DC INC ESI
0167:004705DD DEC DWORD [EBP-1C]
0167:004705E0 JNZ 004705AD
0167:004705E2 MOV EDX,[EBP-10]
0167:004705E5 MOV EAX,[EBX+4C]
0167:004705E8 MOV ECX,[EAX]
0167:004705EA CALL NEAR [ECX+50]
0167:004705ED TEST EAX,EAX
0167:004705EF JNL 0047062B
0167:004705F1 MOV EAX,[EBP-10]
0167:004705F4 CALL 00403BE4
0167:004705F9 TEST EAX,EAX
0167:004705FB JNG 0047062B
0167:004705FD MOV EAX,[EBP-14]
0167:00470600 CALL 00403BE4
0167:00470605 TEST EAX,EAX
0167:00470607 JNG 0047062B
0167:00470609 LEA EAX,[EBP-18]
0167:0047060C PUSH EAX
0167:0047060D MOV ECX,[EBP-10] <---D ECX可看到转换后的用户名
0167:00470610 MOV EDX,[EBP-14] <---D EDX可看到固定字符串“PXF12OKT”
0167:00470613 MOV EAX,EBX
0167:00470615 CALL 004707C0 <---计算注册码的Call,跟进
0167:0047061A MOV EAX,[EBP-18] <--- D EAX可看到正确的注册码
0167:0047061D MOV EDX,[EBP-08] <--- D EDX可看到我们输的假的注册码
0167:00470620 CALL 00403CF4 <--- 进行比较的Call
0167:00470625 JNZ 0047062B <---关键跳转
0167:00470627 MOV BYTE [EBP-09],01
0167:0047062B XOR EAX,EAX
0167:0047062D POP EDX
0167:0047062E POP ECX
0167:0047062F POP ECX
0167:00470630 MOV [FS:EAX],EDX
0167:00470633 PUSH DWORD 00470667
0167:00470638 LEA EAX,[EBP-24]
0167:0047063B MOV EDX,02
0167:00470640 CALL 0040398C
0167:00470645 LEA EAX,[EBP-18]
0167:00470648 MOV EDX,03
0167:0047064D CALL 0040398C
0167:00470652 LEA EAX,[EBP-08]
0167:00470655 MOV EDX,02
0167:0047065A CALL 0040398C
0167:0047065F RET
由上可看到,只要在 0167:0047061A 处下D EAX即可看到正确的注册码,但我们的目的是找出算法,跟进上面的那个Call可看到以下代码:
0167:004707C0 PUSH EBP
0167:004707C1 MOV EBP,ESP
0167:004707C3 ADD ESP,FFFFFEB4
0167:004707C9 PUSH EBX
0167:004707CA PUSH ESI
0167:004707CB PUSH EDI
0167:004707CC XOR EBX,EBX
0167:004707CE MOV [EBP+FFFFFED8],EBX
0167:004707D4 MOV [EBP+FFFFFED4],EBX
0167:004707DA MOV [EBP+FFFFFED0],EBX
。。。。。。。
0167:00470838 PUSH EAX
0167:00470839 MOV ECX,08
0167:0047083E MOV EDX,01
0167:00470843 MOV EAX,[EBP-04]
0167:00470846 CALL 00403DE8
0167:0047084B PUSH DWORD [EBP+FFFFFED4]
0167:00470851 LEA EAX,[EBP+FFFFFED0]
0167:00470857 PUSH EAX
0167:00470858 MOV ECX,08
0167:0047085D MOV EDX,01
0167:00470862 MOV EAX,[EBP-08]
0167:00470865 CALL 00403DE8
0167:0047086A PUSH DWORD [EBP+FFFFFED0] <---D *EBP+FFFFFED0可看到为转换后的用户名
0167:00470870 PUSH DWORD 004709DC <---D 004709DC可看到########
0167:00470875 LEA EAX,[EBP+FFFFFED8]
0167:0047087B MOV EDX,03
0167:00470880 CALL 00403CA4 <---这个Call将固定串“PXF12OKT”与转换后的用户名及"########"合并后存入[EBP+FFFFFED8]中
0167:00470885 MOV EDX,[EBP+FFFFFED8]
0167:0047088B LEA EAX,[EBP+FFFFFEDC]
0167:00470891 MOV ECX,FF
0167:00470896 CALL 00403BC0
0167:0047089B LEA EDX,[EBP+FFFFFEDC]
0167:004708A1 LEA EAX,[EBP-21]
0167:004708A4 MOV CL,18
0167:004708A6 CALL 004029AC
0167:004708AB PUSH BYTE +03 <---置入口参数 -----------|
0167:004708AD PUSH BYTE +05 <---置入口参数 |
0167:004708AF PUSH BYTE +07 <---置入口参数 |
0167:004708B1 LEA EDX,[EBP-21] |
0167:004708B4 MOV CL,01 |
0167:004708B6 MOV EAX,EBX |
0167:004708B8 CALL 00470784 <---此Call是对上面合并后的字符串进行处理 |
0167:004708BD MOV [EBP-10],AL <---运算后的结果存入[EBP-10]中 -----------|
0167:004708C0 PUSH BYTE +04 -----------------------|
0167:004708C2 PUSH BYTE +0A |
0167:004708C4 PUSH BYTE +0C |
0167:004708C6 LEA EDX,[EBP-21] |
0167:004708C9 MOV CL,02 |
0167:004708CB MOV EAX,EBX |
0167:004708CD CALL 00470784 |
0167:004708D2 MOV [EBP-0F],AL -----------------------|
0167:004708D5 PUSH BYTE +0B |
0167:004708D7 PUSH BYTE +0D |
0167:004708D9 PUSH BYTE +0F |
0167:004708DB LEA EDX,[EBP-21] |
0167:004708DE MOV CL,09 |
0167:004708E0 MOV EAX,EBX |
0167:004708E2 CALL 00470784 |
0167:004708E7 MOV [EBP-0E],AL ----------------------|
0167:004708EA PUSH BYTE +08 |
0167:004708EC PUSH BYTE +0E |
0167:004708EE PUSH BYTE +10 |
0167:004708F0 LEA EDX,[EBP-21] |
0167:004708F3 MOV CL,06 |
0167:004708F5 MOV EAX,EBX |
0167:004708F7 CALL 00470784 |
0167:004708FC MOV [EBP-0D],AL ----------------------|
0167:004708FF PUSH BYTE +10 |
0167:00470901 PUSH BYTE +02 |
0167:00470903 PUSH BYTE +0F |
0167:00470905 LEA EDX,[EBP-21] |
0167:00470908 MOV CL,01 |
0167:0047090A MOV EAX,EBX |
0167:0047090C CALL 00470784 |
0167:00470911 MOV [EBP-0C],AL ----------------------|
0167:00470914 PUSH BYTE +0E |
0167:00470916 PUSH BYTE +04 |
0167:00470918 PUSH BYTE +0D |
0167:0047091A LEA EDX,[EBP-21] |
0167:0047091D MOV CL,03 |
0167:0047091F MOV EAX,EBX |
0167:00470921 CALL 00470784 |
0167:00470926 MOV [EBP-0B],AL ----------------------|
0167:00470929 PUSH BYTE +0C |
0167:0047092B PUSH BYTE +06 |
0167:0047092D PUSH BYTE +0B |
0167:0047092F LEA EDX,[EBP-21] |
0167:00470932 MOV CL,05 |
0167:00470934 MOV EAX,EBX |
0167:00470936 CALL 00470784 |
0167:0047093B MOV [EBP-0A],AL ----------------------|
0167:0047093E PUSH BYTE +0A |
0167:00470940 PUSH BYTE +08 |
0167:00470942 PUSH BYTE +09 |
0167:00470944 LEA EDX,[EBP-21] |
0167:00470947 MOV CL,07 |
0167:00470949 MOV EAX,EBX |
0167:0047094B CALL 00470784 |
0167:00470950 MOV [EBP-09],AL -----------------------|
0167:00470953 MOV EBX,08
0167:00470958 LEA ECX,[EBP-10] <---取上面8次Call运算后的结果到[ECX]中
0167:0047095B XOR EAX,EAX <---EAX清零
0167:0047095D MOV AL,[ECX] <---按位取[ECX]中的值到EAX中
0167:0047095F MOV EDI,0A <---EDI中置为定值0AH
0167:00470964 CDQ <---EDX清零
0167:00470965 IDIV EDI
0167:00470967 ADD EDX,BYTE +30 <---将余数转化成十六进制数值(正确注册码)
0167:0047096A MOV [ECX],DL <---十六进制值存入[ECX]中
0167:0047096C INC ECX
0167:0047096D DEC EBX
0167:0047096E JNZ 0047095B <---循环判断,是否取完
0167:00470970 LEA EAX,[EBP+FFFFFEB4]
0167:00470976 PUSH EAX
0167:00470977 MOV ECX,08
0167:0047097C MOV EDX,11
0167:00470981 LEA EAX,[EBP-21]
0167:00470984 CALL 00402794 <---此Call将上面的计算结果(即正确注册码)存入[EBP+FFFFFEB4]中
0167:00470989 LEA EDX,[EBP+FFFFFEB4]
0167:0047098F MOV EAX,ESI
0167:00470991 CALL 00403B88
0167:00470996 XOR EAX,EAX
0167:00470998 POP EDX
0167:00470999 POP ECX
0167:0047099A POP ECX
0167:0047099B MOV [FS:EAX],EDX
0167:0047099E PUSH DWORD 004709C8
0167:004709A3 LEA EAX,[EBP+FFFFFED0]
0167:004709A9 MOV EDX,03
0167:004709AE CALL 0040398C
0167:004709B3 LEA EAX,[EBP-08]
0167:004709B6 MOV EDX,02
0167:004709BB CALL 0040398C
0167:004709C0 RET
0167:004709C1 JMP 00403388
0167:004709C6 JMP SHORT 004709A3
0167:004709C8 POP EDI
0167:004709C9 POP ESI
0167:004709CA POP EBX
0167:004709CB MOV ESP,EBP
0167:004709CD POP EBP
0167:004709CE RET 04
可看到上面调用8次CALL 00470784 ,然后根据此Call得到的结果再与0AH除得到注册码,我们不凡再跟进此Call看看它到底如何运算0167:00470784 PUSH EBP
0167:00470785 MOV EBP,ESP
0167:00470787 ADD ESP,BYTE -08
0167:0047078A MOV [EBP-05],CL <---CL的值存入[EBP-05]中
0167:0047078D MOV [EBP-04],EDX
0167:00470790 LEA EDX,[EBP-06]
0167:00470793 MOV EDI,[EBP-04] <---下D EDI可看到合并后的字符串
0167:00470796 XOR EBX,EBX <---EBX=0
0167:00470798 MOV BL,[EBP-05] <---取[EBP-05]中的值到EBX中,控制取第几位值
0167:0047079B MOV AL,[EDI+EBX] <---取合并后字符串的第BL位到AL中
0167:0047079E MOV BL,[EBP+10] <---[EBP+10]中为第1个入栈的参数值
0167:004707A1 XOR AL,[EDI+EBX]
0167:004707A4 MOV BL,[EBP+0C] <---[EBP+0C]中为第2个入栈的参数值
0167:004707A7 MOV CL,[EDI+EBX]
0167:004707AA ROL AL,CL
0167:004707AC MOV BL,[EBP+08] <---[EBP+08]中为第3个入栈的参数值
0167:004707AF XOR AL,[EDI+EBX]
0167:004707B2 MOV [EBP-06],AL <---结果存入[EBP-06]中
0167:004707B5 MOV AL,[EDX]
0167:004707B7 POP ECX
0167:004707B8 POP ECX
0167:004707B9 POP EBP
0167:004707BA RET 0C
我们可大概得出此Call的计算方法,即根据CL值及入口参数确定取合并字符串的的第几位,然后参与运算。
该程序注册成功后将注册信息保存在注册表的
“HKEY_LOCAL_MACHINE/Software/Pegtop/Xfader”中
我得到的为
用户名:ShenGe
注册码:99835539
总会有一些简单的遗憾 简单的一如从前
总会有一些一些改变 随着这岁月变迁
相关视频
相关阅读 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破解如何给软件脱壳基础教程
查看所有0条评论>>