【18小组】中华灯谜算法分析【算法分析】【算法注册机】
本帖最后由 lixy8888 于 2010-6-3 09:17 编辑【文章标题】: 中华灯谜算法分析
【文章作者】: lixy8888
【下载地址】: 自己搜索下载
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
0054EE6C/.55 PUSH EBP
0054EE6D|.8BEC MOV EBP,ESP
0054EE6F|.B9 16000000 MOV ECX,16
0054EE74|>6A 00 /PUSH 0
0054EE76|.6A 00 |PUSH 0
0054EE78|.49 |DEC ECX
0054EE79|.^ 75 F9 \JNZ SHORT Unpacked.0054EE74
0054EE7B|.51 PUSH ECX
0054EE7C|.53 PUSH EBX
0054EE7D|.56 PUSH ESI
0054EE7E|.8BD8 MOV EBX,EAX
0054EE80|.33C0 XOR EAX,EAX
0054EE82|.55 PUSH EBP
0054EE83|.68 BEF05400 PUSH Unpacked.0054F0BE
0054EE88|.64:FF30 PUSH DWORD PTR FS:
0054EE8B|.64:8920 MOV DWORD PTR FS:,ESP
0054EE8E|.68 80000000 PUSH 80 ; /BufSize = 80 (128.)
0054EE93|.8D85 7BFFFFFF LEA EAX,DWORD PTR SS: ; |
0054EE99|.50 PUSH EAX ; |Buffer
0054EE9A|.E8 4584EBFF CALL <JMP.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
0054EE9F|.8D45 FC LEA EAX,DWORD PTR SS:
0054EEA2|.8D95 7BFFFFFF LEA EDX,DWORD PTR SS:
0054EEA8|.B9 81000000 MOV ECX,81
0054EEAD|.E8 665DEBFF CALL Unpacked.00404C18
0054EEB2|.8D95 74FFFFFF LEA EDX,DWORD PTR SS:
0054EEB8|.8B83 C8030000 MOV EAX,DWORD PTR DS:
0054EEBE|.E8 C58CEFFF CALL Unpacked.00447B88
0054EEC3|.83BD 74FFFFFF>CMP DWORD PTR SS:,0
0054EECA|.74 1A JE SHORT Unpacked.0054EEE6
0054EECC|.8D95 70FFFFFF LEA EDX,DWORD PTR SS:
0054EED2|.8B83 C0030000 MOV EAX,DWORD PTR DS:
0054EED8|.E8 AB8CEFFF CALL Unpacked.00447B88
0054EEDD|.83BD 70FFFFFF>CMP DWORD PTR SS:,0
0054EEE4|.75 0F JNZ SHORT Unpacked.0054EEF5
0054EEE6|>B8 D4F05400 MOV EAX,Unpacked.0054F0D4 ;注册信息没有填写齐全
0054EEEB|.E8 8C1EEFFF CALL Unpacked.00440D7C
0054EEF0|.E9 51010000 JMP Unpacked.0054F046
0054EEF5|>8D95 6CFFFFFF LEA EDX,DWORD PTR SS:
0054EEFB|.8B83 C8030000 MOV EAX,DWORD PTR DS:
0054EF01|.E8 828CEFFF CALL Unpacked.00447B88
0054EF06|.8B85 6CFFFFFF MOV EAX,DWORD PTR SS: ;假码
0054EF0C|.50 PUSH EAX ;假码入EAX
0054EF0D|.8D95 64FFFFFF LEA EDX,DWORD PTR SS:
0054EF13|.8B83 C0030000 MOV EAX,DWORD PTR DS:
0054EF19|.E8 6A8CEFFF CALL Unpacked.00447B88
0054EF1E|.8B85 64FFFFFF MOV EAX,DWORD PTR SS: ;订单号
0054EF24|.E8 DBA6EBFF CALL Unpacked.00409604 ;订单号转16进制
0054EF29|.B9 3A000000 MOV ECX,3A ;ecx=3A
0054EF2E|.99 CDQ
0054EF2F|.F7F9 IDIV ECX ;订单号 MOD 3A =20
0054EF31|.8BC2 MOV EAX,EDX ;注册码第一部分设为SN1=32
0054EF33|.8D95 68FFFFFF LEA EDX,DWORD PTR SS:
0054EF39|.E8 62A6EBFF CALL Unpacked.004095A0
0054EF3E|.8D85 68FFFFFF LEA EAX,DWORD PTR SS:
0054EF44|.50 PUSH EAX
0054EF45|.8D95 58FFFFFF LEA EDX,DWORD PTR SS:
0054EF4B|.8B83 C0030000 MOV EAX,DWORD PTR DS:
0054EF51|.E8 328CEFFF CALL Unpacked.00447B88
0054EF56|.8B85 58FFFFFF MOV EAX,DWORD PTR SS: ;订单号
0054EF5C|.E8 A3A6EBFF CALL Unpacked.00409604
0054EF61|.8D95 5CFFFFFF LEA EDX,DWORD PTR SS:
0054EF67|.E8 80DCFFFF CALL Unpacked.0054CBEC ;中间计算结果
0054EF6C|.8B85 5CFFFFFF MOV EAX,DWORD PTR SS:
0054EF72|.E8 8DA6EBFF CALL Unpacked.00409604
0054EF77|.8D95 60FFFFFF LEA EDX,DWORD PTR SS:
0054EF7D|.E8 4ADDFFFF CALL Unpacked.0054CCCC
0054EF82|.8B95 60FFFFFF MOV EDX,DWORD PTR SS: ;EDX=3615u412~f1449 注册码第2部分记为SN2
0054EF88|.58 POP EAX
0054EF89|.E8 E25CEBFF CALL Unpacked.00404C70 ;两部分连接SN1&SN2 这里可做内存注册机
0054EF8E|.8B95 68FFFFFF MOV EDX,DWORD PTR SS:
0054EF94|.58 POP EAX
0054EF95|.E8 125EEBFF CALL Unpacked.00404DAC
0054EF9A 0F85 8F000000 JNZ Unpacked.0054F02F
0054EFA0|.B8 F4F05400 MOV EAX,Unpacked.0054F0F4 ;注册成功,谢谢你的注册!
0054EFA5|.E8 D21DEFFF CALL Unpacked.00440D7C
0054EFAA|.BA 18F15400 MOV EDX,Unpacked.0054F118 ;本软件已注册
0054EFAF|.8B83 B0030000 MOV EAX,DWORD PTR DS:
0054EFB5|.E8 FE8BEFFF CALL Unpacked.00447BB8
0054EFBA|.8D85 54FFFFFF LEA EAX,DWORD PTR SS:
0054EFC0|.B9 30F15400 MOV ECX,Unpacked.0054F130 ;\dC0n.dll
0054EFC5|.8B55 FC MOV EDX,DWORD PTR SS:
0054EFC8|.E8 E75CEBFF CALL Unpacked.00404CB4
0054EFCD|.8B8D 54FFFFFF MOV ECX,DWORD PTR SS:
0054EFD3|.B2 01 MOV DL,1
0054EFD5|.A1 B8184700 MOV EAX,DWORD PTR DS:
0054EFDA|.E8 8929F2FF CALL Unpacked.00471968
0054EFDF|.8BF0 MOV ESI,EAX
0054EFE1|.8D95 50FFFFFF LEA EDX,DWORD PTR SS:
0054EFE7|.8B83 C0030000 MOV EAX,DWORD PTR DS:
0054EFED|.E8 968BEFFF CALL Unpacked.00447B88
0054EFF2|.8B85 50FFFFFF MOV EAX,DWORD PTR SS:
0054EFF8|.50 PUSH EAX
0054EFF9|.B9 44F15400 MOV ECX,Unpacked.0054F144 ;sepop
0054EFFE|.BA 54F15400 MOV EDX,Unpacked.0054F154 ;syssetup
0054F003|.8BC6 MOV EAX,ESI
0054F005|.8B18 MOV EBX,DWORD PTR DS:
0054F007|.FF53 04 CALL DWORD PTR DS:
0054F00A|.8D85 4CFFFFFF LEA EAX,DWORD PTR SS:
0054F010|.B9 30F15400 MOV ECX,Unpacked.0054F130 ;\dC0n.dll
0054F015|.8B55 FC MOV EDX,DWORD PTR SS:
0054F018|.E8 975CEBFF CALL Unpacked.00404CB4
0054F01D|.8B85 4CFFFFFF MOV EAX,DWORD PTR SS:
0054F023|.BA 02000000 MOV EDX,2
0054F028|.E8 03A9EBFF CALL Unpacked.00409930
0054F02D|.EB 17 JMP SHORT Unpacked.0054F046
0054F02F|>B8 68F15400 MOV EAX,Unpacked.0054F168 ;注册码错误,请重新输入!
0054F034|.E8 431DEFFF CALL Unpacked.00440D7C
0054F039|.33D2 XOR EDX,EDX
算法CALL1
0054CBEC/$55 PUSH EBP
0054CBED|.8BEC MOV EBP,ESP
0054CBEF|.33C9 XOR ECX,ECX
0054CBF1|.51 PUSH ECX
0054CBF2|.51 PUSH ECX
0054CBF3|.51 PUSH ECX
0054CBF4|.51 PUSH ECX
0054CBF5|.53 PUSH EBX
0054CBF6|.56 PUSH ESI
0054CBF7|.8BF2 MOV ESI,EDX
0054CBF9|.8BD8 MOV EBX,EAX ;EAX=1E240
0054CBFB|.33C0 XOR EAX,EAX
0054CBFD|.55 PUSH EBP
0054CBFE|.68 BCCC5400 PUSH Unpacked.0054CCBC
0054CC03|.64:FF30 PUSH DWORD PTR FS:
0054CC06|.64:8920 MOV DWORD PTR FS:,ESP
0054CC09|.81F3 F1250B00 XOR EBX,0B25F1 ;1E240 xor B25F1=AC7B1
0054CC0F|.8BC3 MOV EAX,EBX
0054CC11|.33D2 XOR EDX,EDX
0054CC13|.52 PUSH EDX ; /Arg2 => 00000000
0054CC14|.50 PUSH EAX ; |Arg1
0054CC15|.8D45 FC LEA EAX,DWORD PTR SS: ; |
0054CC18|.E8 B3C9EBFF CALL Unpacked.004095D0 ; \Unpacked.004095D0
0054CC1D|.8B45 FC MOV EAX,DWORD PTR SS: ;AC7B1转10进制=706481
0054CC20|.0FB600 MOVZX EAX,BYTE PTR DS: ;取第一位的ASC37
0054CC23|.8B55 FC MOV EDX,DWORD PTR SS:
0054CC26|.0FB652 01 MOVZX EDX,BYTE PTR DS: ;取第二位的ASC30
0054CC2A|.03C2 ADD EAX,EDX ;37+30=67
0054CC2C|.B9 05000000 MOV ECX,5 ;ECX=5
0054CC31|.99 CDQ
0054CC32|.F7F9 IDIV ECX ;67 MOD 5=3
0054CC34|.80C2 34 ADD DL,34 ;3+34=37
0054CC37|.8855 F8 MOV BYTE PTR SS:,DL
0054CC3A|.8B45 FC MOV EAX,DWORD PTR SS: ;EAX=706481
0054CC3D|.0FB640 02 MOVZX EAX,BYTE PTR DS: ;取第三位的ASC36
0054CC41|.8B55 FC MOV EDX,DWORD PTR SS:
0054CC44|.0FB652 03 MOVZX EDX,BYTE PTR DS: ;取第四位的ASC34
0054CC48|.03C2 ADD EAX,EDX ;EAX=34+36=6A
0054CC4A|.B9 05000000 MOV ECX,5 ;ECX=5
0054CC4F|.99 CDQ
0054CC50|.F7F9 IDIV ECX ;EDX=EAX mod 5=1
0054CC52|.8BDA MOV EBX,EDX
0054CC54|.80C3 33 ADD BL,33 ;BL=1+33=34
0054CC57|.885D F9 MOV BYTE PTR SS:,BL
0054CC5A|.8D45 F4 LEA EAX,DWORD PTR SS:
0054CC5D|.8A55 F8 MOV DL,BYTE PTR SS:
0054CC60|.E8 2B7FEBFF CALL Unpacked.00404B90
0054CC65|.8B45 F4 MOV EAX,DWORD PTR SS: ;37转为ASCII码为7
0054CC68|.8D55 FC LEA EDX,DWORD PTR SS:
0054CC6B|.B9 1B000000 MOV ECX,1B
0054CC70|.E8 D382EBFF CALL Unpacked.00404F48
0054CC75|.8D45 F0 LEA EAX,DWORD PTR SS:
0054CC78|.8BD3 MOV EDX,EBX
0054CC7A|.E8 117FEBFF CALL Unpacked.00404B90
0054CC7F|.8B45 F0 MOV EAX,DWORD PTR SS:
0054CC82|.8D55 FC LEA EDX,DWORD PTR SS:
0054CC85|.B9 19000000 MOV ECX,19
0054CC8A|.E8 B982EBFF CALL Unpacked.00404F48
0054CC8F|.8BC6 MOV EAX,ESI
0054CC91|.8B55 FC MOV EDX,DWORD PTR SS: ;706481 & 7 & 4=70648174
0054CC94|.E8 6B7DEBFF CALL Unpacked.00404A04
0054CC99|.33C0 XOR EAX,EAX
0054CC9B|.5A POP EDX
0054CC9C|.59 POP ECX
0054CC9D|.59 POP ECX
0054CC9E|.64:8910 MOV DWORD PTR FS:,EDX
0054CCA1|.68 C3CC5400 PUSH Unpacked.0054CCC3
0054CCA6|>8D45 F0 LEA EAX,DWORD PTR SS:
0054CCA9|.BA 02000000 MOV EDX,2
0054CCAE|.E8 217DEBFF CALL Unpacked.004049D4
0054CCB3|.8D45 FC LEA EAX,DWORD PTR SS:
0054CCB6|.E8 F57CEBFF CALL Unpacked.004049B0
0054CCBB\.C3 RETN
算法CALL2
0054CCCC/$55 PUSH EBP
0054CCCD|.8BEC MOV EBP,ESP
0054CCCF|.33C9 XOR ECX,ECX
0054CCD1|.51 PUSH ECX
0054CCD2|.51 PUSH ECX
0054CCD3|.51 PUSH ECX
0054CCD4|.51 PUSH ECX
0054CCD5|.51 PUSH ECX
0054CCD6|.51 PUSH ECX
0054CCD7|.53 PUSH EBX
0054CCD8|.56 PUSH ESI
0054CCD9|.8BF2 MOV ESI,EDX
0054CCDB|.8BD8 MOV EBX,EAX ;EAX=436016E
0054CCDD|.33C0 XOR EAX,EAX
0054CCDF|.55 PUSH EBP
0054CCE0|.68 18CE5400 PUSH Unpacked.0054CE18
0054CCE5|.64:FF30 PUSH DWORD PTR FS:
0054CCE8|.64:8920 MOV DWORD PTR FS:,ESP
0054CCEB|.81F3 8776FBDD XOR EBX,DDFB7687 ;EBX=436016E xor DDFB7687=D9CD77E9
0054CCF1|.8BC3 MOV EAX,EBX
0054CCF3|.33D2 XOR EDX,EDX
0054CCF5|.52 PUSH EDX ; /Arg2 => 00000000
0054CCF6|.50 PUSH EAX ; |Arg1
0054CCF7|.8D45 FC LEA EAX,DWORD PTR SS: ; |
0054CCFA|.E8 D1C8EBFF CALL Unpacked.004095D0 ; \D9CD77E9转10进制=3654121449设为A
0054CCFF|.8B45 FC MOV EAX,DWORD PTR SS:
0054CD02|.0FB600 MOVZX EAX,BYTE PTR DS: ;取A的第一位ASC 33
0054CD05|.8B55 FC MOV EDX,DWORD PTR SS:
0054CD08|.0FB652 01 MOVZX EDX,BYTE PTR DS: ;取A的第一位ASC36
0054CD0C|.03C2 ADD EAX,EDX ;36+33=69
0054CD0E|.B9 05000000 MOV ECX,5 ;ECX=5
0054CD13|.99 CDQ
0054CD14|.F7F9 IDIV ECX ;69 mod 5=0
0054CD16|.80C2 66 ADD DL,66 ;DL=0+66=66 注册码其中一位
0054CD19|.8855 F8 MOV BYTE PTR SS:,DL ;66=f
0054CD1C|.8B45 FC MOV EAX,DWORD PTR SS:
0054CD1F|.0FB640 02 MOVZX EAX,BYTE PTR DS: ;取A的第三位ASC 35
0054CD23|.8B55 FC MOV EDX,DWORD PTR SS:
0054CD26|.0FB652 03 MOVZX EDX,BYTE PTR DS: ;取A的第四位ASC 34
0054CD2A|.03C2 ADD EAX,EDX ;EAX=35+34=69
0054CD2C|.B9 05000000 MOV ECX,5 ;ECX=5
0054CD31|.99 CDQ
0054CD32|.F7F9 IDIV ECX ;69 mod 5=0
0054CD34|.80C2 75 ADD DL,75 ;DL=0+75=75 注册码其中一位
0054CD37|.8855 F9 MOV BYTE PTR SS:,DL ;u
0054CD3A|.8B45 FC MOV EAX,DWORD PTR SS:
0054CD3D|.0FB640 04 MOVZX EAX,BYTE PTR DS: ;取A的第五位ASC 31
0054CD41|.8B55 FC MOV EDX,DWORD PTR SS:
0054CD44|.0FB652 05 MOVZX EDX,BYTE PTR DS: ;取A的第六位ASC 32
0054CD48|.03C2 ADD EAX,EDX ;31+32=63
0054CD4A|.B9 05000000 MOV ECX,5 ;ECX=5
0054CD4F|.99 CDQ
0054CD50|.F7F9 IDIV ECX ;63 MOD 5=4
0054CD52|.80C2 7A ADD DL,7A ;DL=4+7A=7E 注册码其中一位
0054CD55|.8855 FA MOV BYTE PTR SS:,DL ;~
0054CD58|.8B45 FC MOV EAX,DWORD PTR SS:
0054CD5B|.0FB640 06 MOVZX EAX,BYTE PTR DS: ;取A的第七位ASC 31
0054CD5F|.8B55 FC MOV EDX,DWORD PTR SS:
0054CD62|.0FB652 07 MOVZX EDX,BYTE PTR DS: ;取A的第八位ASC 34
0054CD66|.03C2 ADD EAX,EDX ;31+34=65
0054CD68|.8B55 FC MOV EDX,DWORD PTR SS:
0054CD6B|.0FB652 08 MOVZX EDX,BYTE PTR DS: ;取A的第九位ASC 34
0054CD6F|.03C2 ADD EAX,EDX ;65+34=99
0054CD71|.B9 05000000 MOV ECX,5 ;ECX=5
0054CD76|.99 CDQ
0054CD77|.F7F9 IDIV ECX ;99 mod 5=3
0054CD79|.80C2 69 ADD DL,69 ;DL=3+69=6c 注册码其中一位
0054CD7C|.8855 FB MOV BYTE PTR SS:,DL
0054CD7F|.8D45 F4 LEA EAX,DWORD PTR SS:
0054CD82|.8A55 F8 MOV DL,BYTE PTR SS: ;DL=66
0054CD85|.E8 067EEBFF CALL Unpacked.00404B90 ;转为ASCII码f
0054CD8A|.8B45 F4 MOV EAX,DWORD PTR SS:
0054CD8D|.8D55 FC LEA EDX,DWORD PTR SS:
0054CD90|.B9 07000000 MOV ECX,7 ;应放在3654121449的第7位
0054CD95|.E8 AE81EBFF CALL Unpacked.00404F48 ;365412f1449
0054CD9A|.8D45 F0 LEA EAX,DWORD PTR SS:
0054CD9D|.8A55 FB MOV DL,BYTE PTR SS: ;DL=6C
0054CDA0|.E8 EB7DEBFF CALL Unpacked.00404B90 ;转为ASCII码l
0054CDA5|.8B45 F0 MOV EAX,DWORD PTR SS:
0054CDA8|.8D55 FC LEA EDX,DWORD PTR SS:
0054CDAB|.B9 03000000 MOV ECX,3 ;应放在365412f1449的第3位
0054CDB0|.E8 9381EBFF CALL Unpacked.00404F48 ;36l5412f1449
0054CDB5|.8D45 EC LEA EAX,DWORD PTR SS:
0054CDB8|.8A55 F9 MOV DL,BYTE PTR SS: ;DL=75
0054CDBB|.E8 D07DEBFF CALL Unpacked.00404B90 ;转为ASCII码u
0054CDC0|.8B45 EC MOV EAX,DWORD PTR SS:
0054CDC3|.8D55 FC LEA EDX,DWORD PTR SS:
0054CDC6|.B9 05000000 MOV ECX,5 ;应放在36l5412f1449的第5位
0054CDCB|.E8 7881EBFF CALL Unpacked.00404F48
0054CDD0|.8D45 E8 LEA EAX,DWORD PTR SS: ;36l5u412f1449
0054CDD3|.8A55 FA MOV DL,BYTE PTR SS: ;dl=7E
0054CDD6|.E8 B57DEBFF CALL Unpacked.00404B90 ;转为ASCII码~
0054CDDB|.8B45 E8 MOV EAX,DWORD PTR SS:
0054CDDE|.8D55 FC LEA EDX,DWORD PTR SS:
0054CDE1|.B9 09000000 MOV ECX,9 ;应放在36l5u412f1449的第9位
0054CDE6|.E8 5D81EBFF CALL Unpacked.00404F48 ;36l5u412~f1449注册码第二部分设为SN2
0054CDEB|.8BC6 MOV EAX,ESI
0054CDED|.8B55 FC MOV EDX,DWORD PTR SS:
0054CDF0|.E8 0F7CEBFF CALL Unpacked.00404A04
0054CDF5|.33C0 XOR EAX,EAX
0054CDF7|.5A POP EDX
0054CDF8|.59 POP ECX
0054CDF9|.59 POP ECX
0054CDFA|.64:8910 MOV DWORD PTR FS:,EDX
0054CDFD|.68 1FCE5400 PUSH Unpacked.0054CE1F
0054CE02|>8D45 E8 LEA EAX,DWORD PTR SS:
0054CE05|.BA 04000000 MOV EDX,4
0054CE0A|.E8 C57BEBFF CALL Unpacked.004049D4
0054CE0F|.8D45 FC LEA EAX,DWORD PTR SS:
0054CE12|.E8 997BEBFF CALL Unpacked.004049B0
0054CE17\.C3 RETN
--------------------------------------------------------------------------------
【经验总结】
算法很简单,回头有空写下注册机
--------------------------------------------------------------------------------
2010年06月01日 17:47:56 请按规矩把标题改下,
参看这里:https://www.chinapyg.com/viewthread.php?tid=56915&extra=page%3D1 补上算法注册机 很好很强大。晚上回来看。
分析的很清析 注册机呢 哈哈,没看到啊 感谢分享了,不错的教程哦 学习学习
页:
[1]