朋友你说的话总那么好听sid后第19位改大写O,然后删除7200

[原创]算法浅探——OpenCanvas V2.24 汉化版(2)
  进入关键CALL④:004F57A2 &call 004F545A* Referenced by a CALL at Address:|:004F57A2 &|:004F545A 8B442404 & & & & & & & &mov eax, dword ptr [esp+04]& & & & & & & & & & & & & & & & &====&EAX=AE315678-ABCD-EFGHIJK4 &试炼码:004F545E 8A4812 & & & & & & & & &mov cl, byte ptr [eax+12]& & & & & & & & & & & & & & & & &====&CL=49 &取试炼码第19位字符的HEX值:004FC & & & & & & & & &mov dl, byte ptr [eax+0C]& & & & & & & & & & & & & & & & &====&DL=44 &取试炼码第13位字符的HEX值:004F5464 03CA & & & & & & & & & &add ecx, edx& & & & & & & & & & & & & & & & &====&ECX= + 2F18D:004FF & & & & & & & & &and ecx, 0000000F& & & & & & & & & & & & & & & & &====&ECX=0082F18D AND 0000000F=D:004F4905000 & & & & & &mov al, byte ptr [ecx+3;& & & & & & & & & & & & & & & & &====&根据ECX值从[3;的表中取值!& & & & & & & & & & & & & & & & &====&AL=44 & &将和试炼码的第21位比较!☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆[3;内存中是一张表: 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 &ABCDEF☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆:004F546F C3 & & & & & & & & & & &ret小结:取第13、19位试炼码的HEX值,同上进行低位相加,再从表中取值。& & 4+9=D & & &[ + D]处是44,44和第21位比较,所以第21位是 D—————————————————————————————————两次进入CALL⑤、⑥:004F57C6 &call 004F53A6* Referenced by a CALL at Addresses:|:004F57C6 & , :004F57D3 &|:004F53A6 8B442404 & & & & & & & &mov eax, dword ptr [esp+04]& & & & & & & & & & & & & & & & &====&EAX=4E& & & & & & & & & & & & & & & & &====&EAX=53:004F53AA 25FF000000 & & & & & & &and eax, 000000FF:004F53AF 83F841 & & & & & & & & &cmp eax, :004F53B2 7C05 & & & & & & & & & &jl 004F53B9:004F53B4 83F85A & & & & & & & & &cmp eax, 0000005A:004F53B7 7E0D & & & & & & & & & &jle 004F53C6* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:004F53B2(C)|:004F53B9 83F861 & & & & & & & & &cmp eax, :004F53BC 7C05 & & & & & & & & & &jl 004F53C3:004F53BE 83F87A & & & & & & & & &cmp eax, 0000007A:004F53C1 7E03 & & & & & & & & & &jle 004F53C6* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:004F53BC(C)|:004F53C3 32C0 & & & & & & & & & &xor al, al:004F53C5 C3 & & & & & & & & & & &ret* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F53B7(C), :004F53C1(C)|:004F53C6 83F841 & & & & & & & & &cmp eax, :004F53C9 7C0F & & & & & & & & & &jl 004F53DA:004F53CB 83F85A & & & & & & & & &cmp eax, 0000005A:004F53CE 7F0A & & & & & & & & & &jg 004F53DA:004F53D0 83C0BF & & & & & & & & &add eax, FFFFFFBF& & & & & & & & & & & & & & & & &====&EAX=4E - 41=D& & & & & & & & & & & & & & & & &====&EAX=53 - 41=12:004F53D3 8A & & & & & &mov al, byte ptr [eax+3;& & & & & & & & & & & & & & & & &====&根据EAX值从[3;的表中取值!& & & & & & & & & & & & & & & & &====&AL=01& & & & & & & & & & & & & & & & &====&AL=01 &☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆[3;内存中是一张表: 01 00 01 01 01 01 01 01 01 01 00 01 01 01 01 &☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆:004F53D9 C3 & & & & & & & & & & &ret这2次取值运算的作用不太清楚,可能是检测第13位、19位的字符有没有踩上程序预埋的“地雷”吧?因为此处内存中有的值是00,如果你很走运就碰上此处的话,恭喜你:“Game Over”了!~@~~@~* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F53C9(C), :004F53CE(C)|:004F53DA 83C09F & & & & & & & & &add eax, FFFFFF9F:004F53DD 8A & & & & & &mov al, byte ptr [eax+3;:004F53E3 C3 & & & & & & & & & & &ret& & & & & & & & & & & & 关键CALL二 &结 束□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□&&◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆& & & & & & & & & & & & 关键CALL三 &开 始进入关键CALL:004AD889 & call 004F57F9* Referenced by a CALL at Addresses:|:004AD889 & , :004ADE7F & , :004C5E33 & , :004C77D2 & , :004C781F &|:004D2871 & , :004D3199 & , :004D3546 & , :004D4A1C & , :004D4CB7 &|:004D4F5A &|:004F57F9 53 & & & & & & & & & & &push ebx:004F57FA 56 & & & & & & & & & & &push esi:004F57FB 57 & & & & & & & & & & &push edi:004F57FC 8B7C2410 & & & & & & & &mov edi, dword ptr [esp+10]& & & & & & & & & & & & & & & & &====&EDI=AE315678-ABCD-EFGHIJD4因为在下面的运算中第7位和第12位必须满足几个条件,所以分析了几遍后把第7位改为4,第12位改为3AE315678-ABCD-EFGHIJD4 改为 AE315648-AB3D-EFGHIJD4:004F5800 0FBE4706 & & & & & & & &movsx eax, byte ptr [edi+06]& & & & & & & & & & & & & & & & &====&EAX=34 &取试炼码第7位字符的HEX值:004F & & & & & & & & &cmp eax, :004FA & & & & & & & & & &jl 004F5813:004F & & & & & & & & &cmp eax, :004F580C 7F05 & & & & & & & & & &jg 004F5813:004F580E 8D58D0 & & & & & & & & &lea ebx, dword ptr [eax-30]& & & & & & & & & & & & & & & & &====&如果第7位字符是数字则此处-30& & & & & & & & & & & & & & & & &====&EBX=34 - 30=4:004F5811 EB15 & & & & & & & & & &jmp 004F5828* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F5807(C), :004F580C(C)|:004F & & & & & & & & &cmp eax, :004FC & & & & & &jl 004F58AE:004F581C 83F846 & & & & & & & & &cmp eax, :004F581F 0F8F & & & & & &jg 004F58AE:004FC9 & & & & & & & & &lea ebx, dword ptr [eax-37]* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:004F5811(U)|:004F5828 0FBE470B & & & & & & & &movsx eax, byte ptr [edi+0B]& & & & & & & & & & & & & & & & &====&EAX=33 &取试炼码第12位字符的HEX值:004F582C 83F830 & & & & & & & & &cmp eax, :004F582F 7C0A & & & & & & & & & &jl 004F583B:004F & & & & & & & & &cmp eax, :004F & & & & & & & & & &jg 004F583B:004FD0 & & & & & & & & &lea esi, dword ptr [eax-30]& & & & & & & & & & & & & & & & &====&如果第12位字符是数字则此处-30& & & & & & & & & & & & & & & & &====&ESI=33 - 30=3:004F5839 EB0D & & & & & & & & & &jmp 004F5848* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F582F(C), :004F5834(C)|:004F583B 83F841 & & & & & & & & &cmp eax, :004F583E 7C6E & & & & & & & & & &jl 004F58AE:004F & & & & & & & & &cmp eax, :004F & & & & & & & & & &jg 004F58AE:004FC9 & & & & & & & & &lea esi, dword ptr [eax-37]* Referenced by a (U)nconditional or (C)onditional Jump at Address:|:004F5839(U)|:004F5848 57 & & & & & & & & & & &push edi:004FFCFFFF & & & & & & &call 004F5470& & & & & & & & & & & & & & & & &====&关键CALL!⑦进入!:004F584E 0FBE4F13 & & & & & & & &movsx ecx, byte ptr [edi+13]& & & & & & & & & & & & & & & & &====&ECX=4A &取试炼码第20位字符的HEX值:004F0000 & & & & & & &and eax, 000000FF:004F & & & & & & & & &add esp, :004F585A 3BC8 & & & & & & & & & &cmp ecx, eax& & & & & & & & & & & & & & & & &====&ECX=4A &试炼码第22位字符的HEX值& & & & & & & & & & & & & & & & &====&EAX=37 &上面4F5849处运算得出的值& & & & & & & & & & & & & & & & &====&所以注册码的第20位应是7因此把试炼码AE315648-AB3D-EFGHIJD4再次修改为AE315648-AB3D-EFGHI7D4好了,GAME OVER!不,是终于成功了!!^O^^O^^O^^O^:004F585C 7550 & & & & & & & & & &jne 004F58AE:004F585E C1E604 & & & & & & & & &shl esi, 04& & & & & & & & & & & & & & & & &====&ESI=3 SHL 4=30:004F & & & & & & & & & &add esi, ebx& & & & & & & & & & & & & & & & &====&ESI=30 + 4=34:004F000 & & & & & & &mov ecx, 0000000D& & & & & & & & & & & & & & & & &====&ECX=D:004F & & & & & & & & & &mov eax, esi:004F586A 99 & & & & & & & & & & &cdq:004F586B F7F9 & & & & & & & & & &idiv ecx& & & & & & & & & & & & & & & & &====&EDX=34 % D=0:004F586D 85D2 & & & & & & & & & &test edx, edx& & & & & & & & & & & & & & & & &====&余数是否为0?此处余数必须为0!:004F586F 753D & & & & & & & & & &jne 004F58AE& & & & & & & & & & & & & & & & &====&跳则OVER!:004F5871 B84FECC44E & & & & & & &mov eax, 4EC4EC4F:004F5876 F7EE & & & & & & & & & &imul esi:004F & & & & & & & & &sar edx, 02:004F587B 8BC2 & & & & & & & & & &mov eax, edx:004F587D C1E81F & & & & & & & & &shr eax, 1F:004F & & & & & & & & & &add edx, eax:004F & & & & & & & & &cmp edx, :004F & & & & & & & & & &jl 004F589E:004F & & & & & & & & &cmp edx, :004F588A 7F12 & & & & & & & & & &jg 004F589E:004F588C B & & & & & & &mov eax, :004F & & & & & & & & & &xor ecx, ecx:004F & & & & & & & & & &cmp eax, eax:004F5895 5F & & & & & & & & & & &pop edi:004FC1 & & & & & & & & &sete cl:004F5899 5E & & & & & & & & & & &pop esi:004F589A 8AC1 & & & & & & & & & &mov al, cl:004F589C 5B & & & & & & & & & & &pop ebx:004F589D C3 & & & & & & & & & & &ret* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F5885(C), :004F588A(C)|:004F589E 33C0 & & & & & & & & & &xor eax, eax:004F58A0 33C9 & & & & & & & & & &xor ecx, ecx:004F58A2 83F801 & & & & & & & & &cmp eax, :004F58A5 5F & & & & & & & & & & &pop edi:004F58A6 0F94C1 & & & & & & & & &sete cl:004F58A9 5E & & & & & & & & & & &pop esi:004F58AA 8AC1 & & & & & & & & & &mov al, cl:004F58AC 5B & & & & & & & & & & &pop ebx:004F58AD C3 & & & & & & & & & & &ret* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:|:004F5816(C), :004F581F(C), :004F583E(C), :004F5843(C), :004F585C(C)|:004F586F(C)|:004F58AE 5F & & & & & & & & & & &pop edi:004F58AF 5E & & & & & & & & & & &pop esi:004F58B0 32C0 & & & & & & & & & &xor al, al:004F58B2 5B & & & & & & & & & & &pop ebx:004F58B3 C3 & & & & & & & & & & &ret—————————————————————————————————进入关键CALL⑦:004F5849 &call 004F5470* Referenced by a CALL at Address:|:004F5849 &|:004F404 & & & & & & & &mov eax, dword ptr [esp+04]& & & & & & & & & & & & & & & & &====&EAX=AE315648-AB3D-EFGHIJD4:004FB & & & & & & & & &mov cl, byte ptr [eax+0B]& & & & & & & & & & & & & & & & &====&CL=33 &取试炼码第12位字符的HEX值:004F6 & & & & & & & & &mov dl, byte ptr [eax+06]& & & & & & & & & & & & & & & & &====&DL=34 &取试炼码第7位字符的HEX值:004F547A 03CA & & & & & & & & & &add ecx, edx& & & & & & & & & & & & & & & & &====&ECX= + 5E267:004F547C 83E10F & & & & & & & & &and ecx, 0000000F& & & & & & & & & & & & & & & & &====&ECX= &AND &:004F547F 8A & & & & & &mov al, byte ptr [ecx+3;& & & & & & & & & & & & & & & & &====&根据ECX值从[3;的表中取值!& & & & & & & & & & & & & & & & &====&AL=37 & &将和试炼码的第20位比较!☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆[3;内存中是一张表: 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 &ABCDEF☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆:004F5485 C3 & & & & & & & & & & &ret小结:取第12、7位试炼码的HEX值,同上进行低位相加,再从表中取值。& & &3+4=7 & &[ + 7]处是37,37和第20位比较,所以第20位是 7& & & & & & & & & & & & 关键CALL三 &结 束◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆—————————————————————————————————【算 法 &总 结】:实在是快在里面转晕了。简单理顺一下吧,说不明白的地方请多多指教。一、注册码需要22位。第9、14位固定为-二、注册码应该有五种组合的可能,但是第1、3、5组合最终是不行的,会弹出“Region code mismatch!”。& &晕,我好不容易按第一种组合求逆出一组注册码却提示我“错配”了。吐血!三、重新按第二种组合的可能进行求逆。注册码的第2、4位固定是E、1四、第1、10、16位应是大写字母。我的试炼码-ABCD-EFGHIJKL调整为:AE315678-ABCD-EFGHIJKL五、关键CALL 一:第1、10、16位字母的HEX值的低位相加再减4,以此为指针从[3;内存中的表中取值☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆[3;内存中是一张表: 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 &ABCDEF☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆1+2+6-4=4 &[ + 4]处是34,34和第22位比较,所以第22位是 4六、关键CALL 二:1、取第13、19位试炼码的HEX值,同上进行低位相加,再从表中取值。4+9=D & & &[ + D]处是44,44和第21位比较,所以第21位是 D我的试炼码AE315678-ABCD-EFGHIJKL再次调整为:AE315678-ABCD-EFGHIJD42、取第13、19位试炼码的HEX值,如果是数字则-30,是字母则-37。我的13位是44 - 37=D & 19位是49 - 37=12D+程序给的41=4E & & &12+程序给的41=53 &这2处最后从[3;内存的表中取值。可能是检测第13位、19位的字符有没有踩上程序预埋的“地雷”吧?^O^^O^七、关键CALL 三:1、取第12、7位试炼码的HEX值,如果是数字则-30,是字母则-37。我的12位是43 - 37=C &; C SHL 4=C0 & &; 7位是37 - 30=7 ;C0 + 7=C7 & & 此处的得数(C7)和程序给的D 求模,要求余数为0!所以简单穷举一下,找到符合条件的第12、7位。第12位3,第7位433-30=3 ;3 SHL 4=30 &;34-30=4; 30+4=34 ;34 % D=0当然,还有其它可行的选择。我的试炼码AE315678-ABCD-EFGHIJD4再次调整为:AE315648-AB3D-EFGHIJD42、取第12、7位试炼码的HEX值,同上进行低位相加,再从表中取值。3+4=7 & &[ + 7]处是37,37和第20位比较,所以第20位是 7其它未用到的各位可以是任意数字或字母!好了,至此求出一组可用的注册码:AE315648-AB3D-EFGHI7D4呵呵,很抱歉,如果看不明白的话我也没办法了,我的水平太低,只有这个分析水平了。—————————————————————————————————【注册信息保存】:REGEDIT4[HKEY_CLASSES_ROOTCLSID{4ACAA712-F2A3-44E6-A749-34C3BD05BECB}Version]&idx&=hex:86,1f,52,8d,8d,f9&id&=&AE315648-AB3D-EFGHI7D4&—————————————————————————————————【整 & & & &理】:一组可用的注册码:AE315648-AB3D-EFGHI7D4呵呵,还有很多,只要你愿意,你可以自己去找吧。^v^^v^
文章评论 以下网友留言只代表其个人观点,不代表本网站的观点和立场。

我要回帖

 

随机推荐