欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

试试这个注册码:cdoe1-111184,code2-785826 (3千字)

试试这个注册码:cdoe1-111184,code2-785826 (3千字)

http://www.winhex.com
输入注册码之后关闭该程序,然后用bpx GetVolumeInformationA设断点,
等中断下来后按两次F12,看见如下的判断:
0167:0044E150  MOV      AL,03
0167:0044E152  CALL      0040BEF8        //这里头调用GetVolumeInformationA
0167:0044E157  NOT      AX
0167:0044E15A  MOVZX    EAX,AX
0167:0044E15D  CMP      EAX,[0045321C]
0167:0044E163  JNZ      0044E186
0167:0044E165  MOV      EAX,00453258
0167:0044E16A  SUB      EAX,08
0167:0044E16D  SUB      EAX,10
0167:0044E170  MOV      EAX,[EAX]            //取出code1
0167:0044E172  CALL      0042E9E0            //检查code1,并计算code2
0167:0044E177  MOV      EDX,00453258
0167:0044E17C  SUB      EDX,04
0167:0044E17F  SUB      EDX,10
0167:0044E182  CMP      EAX,[EDX]            //比较真假code2
0167:0044E184  JZ        0044E18A
0167:0044E186  XOR      EAX,EAX            //bad flag
0167:0044E188  JMP      0044E18C
0167:0044E18A  MOV      AL,01              //good flag
0167:0044E18C  MOV      EDX,00455384
0167:0044E191  INC      EDX
0167:0044E192  MOV      [EDX],AL            //set a flag
0167:0044E194  JMP      0044E1DD
上面的CALL 0042E9E0中会检查code1的合法性,如果合法则返回计算出来的code2,否则返回-1。
对code1的检查是比较麻烦的,如果有兴趣可以跟踪一下,大致上是这样的:求code1的平方,并将该平方值转换为字符串,
再将串的首字符和尾字符去掉,得到一个新串,再将新串转换成整数,然后再进行其它处理。
MOV [EDX], AL这条指令会设一个标志,用BPM EDX设断点监视此标志,很快看见如下的判断,是用来检查code1的:
0167:0043D279  CMP      BYTE PTR [00455385],00
0167:0043D280  JNZ      0043D29F
0167:0043D282  CMP      DWORD PTR [EDI+00000088],02
0167:0043D289  JLE      0043D29F
0167:0043D28B  PUSH      00
0167:0043D28D  PUSH      000DBBA0
0167:0043D292  PUSH      02
0167:0043D294  MOV      EAX,[004562B0]
0167:0043D299  PUSH      EAX
0167:0043D29A  CALL      USER32!SetTimer
0167:0043D29F  LEA      EAX,[EDI+000000E0]
0167:0043D2A5  SUB      EAX,08
0167:0043D2A8  MOV      EAX,[EAX]                    //取出code1
0167:0043D2AA  MOV      [00455424],EAX
0167:0043D2AF  CMP      DWORD PTR [00455424],000D9038
0167:0043D2B9  JG        0043D31C
0167:0043D2BB  CMP      DWORD PTR [00455424],00008235
0167:0043D2C5  JL        0043D31C
0167:0043D2C7  MOV      EAX,[00455424]
0167:0043D2CC  MOV      EBX,000003E8
0167:0043D2D1  CDQ
0167:0043D2D2  IDIV      EBX
0167:0043D2D4  CMP      EDX,00000247
0167:0043D2DA  JZ        0043D31C
0167:0043D2DC  MOV      EAX,[00455424]
0167:0043D2E1  MOV      EBX,000003E8
0167:0043D2E6  CDQ
0167:0043D2E7  IDIV      EBX
0167:0043D2E9  CMP      EDX,00000315
0167:0043D2EF  JZ        0043D31C
0167:0043D2F1  MOV      EAX,[00455424]
0167:0043D2F6  MOV      EBX,000003E8
0167:0043D2FB  CDQ
0167:0043D2FC  IDIV      EBX
0167:0043D2FE  CMP      EDX,7B
0167:0043D301  JZ        0043D31C
0167:0043D303  MOV      EAX,[00455424]
0167:0043D308  MOV      ECX,00000064
0167:0043D30D  CDQ
0167:0043D30E  IDIV      ECX
0167:0043D310  MOV      ECX,EDX
0167:0043D312  CMP      ECX,07
0167:0043D315  JZ        0043D327
0167:0043D317  CMP      ECX,54
0167:0043D31A  JZ        0043D327
0167:0043D31C  MOV      EAX,004553A0
0167:0043D321  SUB      EAX,1B
0167:0043D324  MOV      BYTE PTR [EAX],00          //bad guy!
0167:0043D327  XOR      EAX,EAX
根据上面的代码可知code1还要满足如下几个条件:
1、code1取值范围为[0x8235,0xD9038];
2、code1除以1000的余数不能等于0x247或者0x315或者0x7B;
3、code1除以100的余数必须为7或者0x54。
经过几次试探就可以找到合适的code1,继而得到对应的code2。
code1:      111184
code2:      785826
dr0/China

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功