Gif Movie Gear3.0的PJ此软件可能对于大多数人来说不适用。它是一个非常优秀的图片处理工具,是对动态gif压缩效果非常满意,真是一个图片处理的小精灵
、超级动画制作程序.没注册前它的NAG窗口很是烦人。我写上此文的目的是让初学者体会一下注册码的计算方法.这个软件是我昨天下载的。也不知道有没有相关的pj,在这里我现丑了,请不要见笑。
工具:TRW2000
方法:
1、运行TRW2000,装入Gif Movie Gear3.0并运行之,输入NAME:flyingfox 密码:mvg2s9899898后,
按CTRL+N,设中断BPX HMEMCPY,按CTRL+N,再按确定。拦截成功。清中断bpx *
2、此时不要输入PMODULE,否则跳出出错信息。要按F12,连续按9下,再按F10(一下),就会看到如下代码:
请看下面的分析:
0167:00431521 8D9424B4000000 LEA EDX,[ESP+B4]
0167:00431528 6A64 PUSH
BYTE +64
0167:0043152A 52 PUSH
EDX
0167:0043152B 6850040000 PUSH DWORD 0450
0167:00431530 56 PUSH
ESI
0167:00431531 FFD7 CALL
EDI
0167:00431533 50 PUSH
EAX
0167:00431534 FFD3 CALL
EBX
0167:00431536 8D8424B4000000 LEA EAX,[ESP+B4]
0167:0043153D 8D4C2450 LEA ECX,[ESP+50]
0167:00431541 50 PUSH
EAX 假码
0167:00431542 51 PUSH
ECX 你输入的NAME
0167:00431543 E888FDFFFF CALL 004312D0 必须按F8进入。见①处。
0167:00431548 83C408 ADD ESP,BYTE
+08
0167:0043154B 85C0 TEST
EAX,EAX
0167:0043154D 0F84AD000000 JZ NEAR 00431600错误就跳。
下面的代码是成功后的注册处理。
0167:00431553 8D542410 LEA EDX,[ESP+10]
0167:00431557 8D44240C LEA EAX,[ESP+0C]
0167:0043155B 52 PUSH
EDX
0167:0043155C 50 PUSH
EAX
0167:0043155D 6A00 PUSH
BYTE +00
0167:0043155F 683F000F00 PUSH DWORD 000F003F
0167:00431564 6A00 PUSH
BYTE +00
0167:00431566 68D4EF4400 PUSH DWORD 0044EFD4
0167:0043156B 6A00 PUSH
BYTE +00
0167:0043156D 68B8B34400 PUSH DWORD 0044B3B8
0167:00431572 6801000080 PUSH DWORD 80000001
①*********************************************************
0167:004312D0 PUSH EBX
0167:004312D1 PUSH EBP
0167:004312D2 MOV EBP,[ESP+10] 你输入的密码。
0167:004312D6 PUSH ESI
0167:004312D7 PUSH EDI
0167:004312D8 CMP BYTE [EBP+00],6D 比较第一个是否为m
0167:004312DC JNZ NEAR 00431382
0167:004312E2 CMP BYTE [EBP+01],76 比较第二个是否为v
0167:004312E6 JNZ NEAR 00431382
0167:004312EC CMP BYTE [EBP+02],67 比较第三个是否为g
0167:004312F0 JNZ NEAR 00431382
0167:004312F6 CMP BYTE [EBP+03],32 比较第四个是否为2
以上比较的是输入的密码的前四位。也就是正确密码的前四位必须是mvg2
0167:004312FA JNZ NEAR 00431382 如果不等于就错
以下从0167:00431300-0167:0043131B是比较你输入的密码是否是黑名单上的名单上的密码。黑名单上的名单上的密码很多。你可以快按F10。但要注意最后一次比较,也就是0167:00431320
CMP EBX,0044D57C 二者都是msvg20423396时。请看下面的代码:
0167:00431300 MOV EBX,0044D4A4
0167:00431305 MOV EDX,[EBX]
0167:00431307 OR ECX,BYTE -01
0167:0043130A MOV EDI,EDX
0167:0043130C XOR EAX,EAX
0167:0043130E REPNE SCASB
0167:00431310 NOT ECX
0167:00431312 DEC ECX
0167:00431313 MOV EDI,EDX
0167:00431315 MOV ESI,EBP
0167:00431317 XOR EAX,EAX
0167:00431319 REPE CMPSB
0167:0043131B JZ 00431382 如果是黑名单上的密码就错。如果正确往下执行。
0167:0043131D ADD EBX,BYTE +04
0167:00431320 CMP EBX,0044D57C同上。
0167:00431326 JL 00431305错误就跳。正确继续。
0167:00431328 CMP BYTE [EBP+04],73比较第五个字符是否为s
0167:0043132C JNZ 0043132F 如果不是就跳。
0167:0043132E INC EBP 密码的地址加1
也就是说正确的密码的的组合方式是mvg2s*******或mvg2*******
0167:0043132F ADD EBP,BYTE +07 加7
0167:00431332 PUSH EBP EBP是第八位以后或第七位以后的密码。
0167:00431333 CALL 0043F04C此处调用你可以进去看一看。处理第八位以后或第七位以后的密码。如果不进去,按F10,见②处。
②***************************************
以下的代码是处理你输入的名字,是计算后四位密码。你的名字可以是英文也可以是中文。但字符数必须大于或等于七。为什么?看下面的代码你就知道了。
0167:00431338 MOV EDX,[ESP+18] 你输入的名字
0167:0043133C ADD ESP,BYTE +04
0167:0043133F MOV EDI,EDX
0167:00431341 XOR ECX,ECX
0167:00431343 MOV DL,[EDX]第一个字母赋值给DL
0167:00431345 MOV ESI,06FE
0167:0043134A TEST DL,DL是否为空
0167:0043134C JZ 00431374是,就处理完毕,跳到下面进行比较。
0167:0043134E MOVSX EDX,DL
0167:00431351 INC ECX
0167:00431352 IMUL EDX,ECX相乘。
0167:00431355 ADD ESI,EDX
0167:00431357 CMP ESI,0DFD
0167:0043135D JNG 00431365
0167:0043135F SUB ESI,0DFD
0167:00431365 CMP ECX,BYTE +0A比较是否为A,它就是你输入的NAME的字符数。
0167:00431368 JNG 0043136C
0167:0043136A XOR ECX,ECX
0167:0043136C MOV DL,[EDI+01]
0167:0043136F INC EDI
0167:00431370 TEST DL,DL
0167:00431372 JNZ 0043134E没测试完,继续循环。测试完毕就进行比较
0167:00431374 CMP ESI,EAX ? ESI是真正密码的后四位,? EAX是假码。此时注册码计算完毕。
0167:00431376 JNZ 00431382不相等就跳
0167:00431378 POP EDI
0167:00431379 POP ESI
0167:0043137A POP EBP
0167:0043137B MOV EAX,01 赋值为1,是成功标志。
0167:00431380 POP EBX
ret
*******************************************************************************************
总结:1、不要被黑名单上的名字所迷惑,那可能版本pj者的密码。我当时看到时是欣喜若狂,可惜是错的。
2、输入的名字的字符数必须大于6位数。中、英文随便。
3、密码的组合方式有两种:
①、前五位是mvg2s时的密码是:mvg2s***@@@@。3个*号可以是3个任意的数字,后四位是通过你的姓名计算出来的数字。
②mvg2***@@@@。3个*号可以是3个任意的数字,后四位是通过你的姓名计算出来的数字。
如:flyingfox:mvg20003160.后面的3160也可能是2552。我忘记了(记的时候不仔细)