精装友情通讯录V2005 11.20注册码生成过程简单分析
下载地址:http://www.crsky.com/soft/2702.html[南通]欧网网络下载http://count.crsky.com/view_down.asp?down_url=http://9.jsdx2.crsky.com/200909/jzyq-11.20.rar&downd_id=37&ID=4408&SOFTID=2702&down=yes
新手学习下注册码生成过程,有兴趣的自己些注册机吧,很简单
输入订单号:1234567,然后跟踪分析
005152DB|. /75 0F jnz short 005152EC
005152DD|> |B8 00555100 mov eax, 00515500 ;注册信息没有填写齐全
005152E2|. |E8 B96AF2FF call 0043BDA0
005152E7|. |E9 80010000 jmp 0051546C
005152EC|> \8D95 6CFFFFFF lea edx, dword ptr
005152F2|.8B83 1C030000 mov eax, dword ptr
005152F8|.E8 AFD8F2FF call 00442BAC
005152FD|.8B85 6CFFFFFF mov eax, dword ptr
00515303|.50 push eax
00515304|.8D95 60FFFFFF lea edx, dword ptr
0051530A|.8B83 10030000 mov eax, dword ptr
00515310|.E8 97D8F2FF call 00442BAC
00515315|.8B85 60FFFFFF mov eax, dword ptr
0051531B|.E8 9042EFFF call 004095B0
00515320|.B9 40080000 mov ecx, 840
00515325|.99 cdq
00515326|.F7F9 idiv ecx ;订单号1234567 对 0x840求余
00515328|.8BC2 mov eax, edx ;余数0x487给EAX
0051532A|.8D95 64FFFFFF lea edx, dword ptr
00515330|.E8 1742EFFF call 0040954C
00515335|.FFB5 64FFFFFF push dword ptr ;余数0x487转换为10进制,得到字符串 1159 堆栈 ss:
=00BC1034, (ASCII "1159")
0051533B|.8D95 54FFFFFF lea edx, dword ptr
00515341|.8B83 10030000 mov eax, dword ptr
00515347|.E8 60D8F2FF call 00442BAC
0051534C|.8B85 54FFFFFF mov eax, dword ptr ;堆栈 ss:=00B92308, (ASCII "1234567")
00515352|.E8 5942EFFF call 004095B0
00515357|.8D95 58FFFFFF lea edx, dword ptr
0051535D|.E8 C6FCFFFF call 00515028 ;跟入分析(ASCII "170072684")的得来,参考PART1
00515362|.8B85 58FFFFFF mov eax, dword ptr ;堆栈 ss:=00BC47F4, (ASCII "170072684")
00515368|.E8 4342EFFF call 004095B0
0051536D|.8D95 5CFFFFFF lea edx, dword ptr
00515373|.E8 90FDFFFF call 00515108 ;跟入分析(ASCII "36l2y128{f5099")的的来,参考PART2
00515378|.FFB5 5CFFFFFF push dword ptr ;堆栈 ss:=00BC6714, (ASCII "36l2y128{f5099")
0051537E|.68 20555100 push 00515520 ;1在结果后面跟上字符1
00515383|.8D85 68FFFFFF lea eax, dword ptr
00515389|.BA 03000000 mov edx, 3
0051538E|.E8 01FAEEFF call 00404D94
00515393|.8B95 68FFFFFF mov edx, dword ptr ;得到注册码 (ASCII "115936l2y128{f50991")
00515399|.58 pop eax
0051539A|.E8 79FAEEFF call 00404E18
0051539F|.0F85 A3000000 jnz 00515448
005153A5|.B8 2C555100 mov eax, 0051552C ;注册码正确,感谢你的注册!
后面吧注册信息写入注册文件
005153D9|.B9 6C555100 mov ecx, 0051556C ;ASCII "\hdwl21.dll"
注册文件
=======================================PART 1=====================================
跟入分析(ASCII "170072684")的得来,参考PART1
00515028/$55 push ebp
00515029|.8BEC mov ebp, esp
0051502B|.33C9 xor ecx, ecx
0051502D|.51 push ecx
0051502E|.51 push ecx
0051502F|.51 push ecx
00515030|.51 push ecx
00515031|.53 push ebx
00515032|.56 push esi
00515033|.8BF2 mov esi, edx
00515035|.8BD8 mov ebx, eax
00515037|.33C0 xor eax, eax
00515039|.55 push ebp
0051503A|.68 F8505100 push 005150F8
0051503F|.64:FF30 push dword ptr fs:
00515042|.64:8920 mov dword ptr fs:, esp
00515045|.81F3 F1250B00 xor ebx, 0B25F1 ;1234567 XOR 0x0B25F1
0051504B|.8BC3 mov eax, ebx ;ebx=0019F376 结果为无符号数 1700726
0051504D|.33D2 xor edx, edx
0051504F|.52 push edx
00515050|.50 push eax
00515051|.8D45 FC lea eax, dword ptr
00515054|.E8 2345EFFF call 0040957C
00515059|.8B45 FC mov eax, dword ptr
0051505C|.0FB600 movzx eax, byte ptr
0051505F|.8B55 FC mov edx, dword ptr
00515062|.0FB652 01 movzx edx, byte ptr
00515066|.03C2 add eax, edx ;前两位相加
00515068|.B9 05000000 mov ecx, 5
0051506D|.99 cdq
0051506E|.F7F9 idiv ecx
00515070|.80C2 34 add dl, 34
00515073|.8855 F8 mov byte ptr , dl ;字符8
00515076|.8B45 FC mov eax, dword ptr
00515079|.0FB640 02 movzx eax, byte ptr
0051507D|.8B55 FC mov edx, dword ptr
00515080|.0FB652 03 movzx edx, byte ptr
00515084|.03C2 add eax, edx ;3,4位相加
00515086|.B9 05000000 mov ecx, 5
0051508B|.99 cdq
0051508C|.F7F9 idiv ecx
0051508E|.8BDA mov ebx, edx
00515090|.80C3 33 add bl, 33
00515093|.885D F9 mov byte ptr , bl ;字符4
00515096|.8D45 F4 lea eax, dword ptr
00515099|.8A55 F8 mov dl, byte ptr
0051509C|.E8 5BFBEEFF call 00404BFC
005150A1|.8B45 F4 mov eax, dword ptr
005150A4|.8D55 FC lea edx, dword ptr
005150A7|.B9 1B000000 mov ecx, 1B
005150AC|.E8 03FFEEFF call 00404FB4
005150B1|.8D45 F0 lea eax, dword ptr
005150B4|.8BD3 mov edx, ebx
005150B6|.E8 41FBEEFF call 00404BFC
005150BB|.8B45 F0 mov eax, dword ptr
005150BE|.8D55 FC lea edx, dword ptr
005150C1|.B9 19000000 mov ecx, 19
005150C6|.E8 E9FEEEFF call 00404FB4
005150CB|.8BC6 mov eax, esi
005150CD|.8B55 FC mov edx, dword ptr ;附加到数据后面得到新字符串 堆栈 ss:=00BC4788, (ASCII
"170072684")
005150D0|.E8 9BF9EEFF call 00404A70
005150D5|.33C0 xor eax, eax
005150D7|.5A pop edx
005150D8|.59 pop ecx
005150D9|.59 pop ecx
005150DA|.64:8910 mov dword ptr fs:, edx
005150DD|.68 FF505100 push 005150FF
005150E2|>8D45 F0 lea eax, dword ptr
005150E5|.BA 02000000 mov edx, 2
005150EA|.E8 51F9EEFF call 00404A40
005150EF|.8D45 FC lea eax, dword ptr
005150F2|.E8 25F9EEFF call 00404A1C
005150F7\.C3 retn
005150F8 .^ E9 C3F1EEFF jmp 004042C0
005150FD .^ EB E3 jmp short 005150E2
005150FF .5E pop esi
00515100 .5B pop ebx
00515101 .8BE5 mov esp, ebp
00515103 .5D pop ebp
00515104 .C3 retn
=====================
================================PART2======================
分析(ASCII "36l2y128{f5099")的的来
00515108/$55 push ebp
00515109|.8BEC mov ebp, esp
0051510B|.33C9 xor ecx, ecx
0051510D|.51 push ecx
0051510E|.51 push ecx
0051510F|.51 push ecx
00515110|.51 push ecx
00515111|.51 push ecx
00515112|.51 push ecx
00515113|.53 push ebx
00515114|.56 push esi
00515115|.8BF2 mov esi, edx
00515117|.8BD8 mov ebx, eax
00515119|.33C0 xor eax, eax
0051511B|.55 push ebp
0051511C|.68 54525100 push 00515254
00515121|.64:FF30 push dword ptr fs:
00515124|.64:8920 mov dword ptr fs:, esp
00515127|.81F3 8776FBDD xor ebx, DDFB7687 ;170072684 XOR 0xDDFB7687
0051512D|.8BC3 mov eax, ebx ;ebx=D7D86CEB无符号3621285099有符号-673682197
0051512F|.33D2 xor edx, edx
00515131|.52 push edx
00515132|.50 push eax
00515133|.8D45 FC lea eax, dword ptr
00515136|.E8 4144EFFF call 0040957C
0051513B|.8B45 FC mov eax, dword ptr ;得到无符号数 堆栈 ss:=00BC45B4, (ASCII "3621285099")
0051513E|.0FB600 movzx eax, byte ptr
00515141|.8B55 FC mov edx, dword ptr
00515144|.0FB652 01 movzx edx, byte ptr
00515148|.03C2 add eax, edx ;前两位HEX相加
0051514A|.B9 05000000 mov ecx, 5
0051514F|.99 cdq
00515150|.F7F9 idiv ecx ;结果对5求余
00515152|.80C2 66 add dl, 66 ;结果+0x66
00515155|.8855 F8 mov byte ptr , dl ;得到新的字符f
00515158|.8B45 FC mov eax, dword ptr
0051515B|.0FB640 02 movzx eax, byte ptr
0051515F|.8B55 FC mov edx, dword ptr
00515162|.0FB652 03 movzx edx, byte ptr
00515166|.03C2 add eax, edx ;3,4位相加处理
00515168|.B9 05000000 mov ecx, 5
0051516D|.99 cdq
0051516E|.F7F9 idiv ecx
00515170|.80C2 75 add dl, 75
00515173|.8855 F9 mov byte ptr , dl ;结果y
00515176|.8B45 FC mov eax, dword ptr
00515179|.0FB640 04 movzx eax, byte ptr
0051517D|.8B55 FC mov edx, dword ptr
00515180|.0FB652 05 movzx edx, byte ptr
00515184|.03C2 add eax, edx ;5,6位相加
00515186|.B9 05000000 mov ecx, 5
0051518B|.99 cdq
0051518C|.F7F9 idiv ecx
0051518E|.80C2 7A add dl, 7A
00515191|.8855 FA mov byte ptr , dl ;字符{
00515194|.8B45 FC mov eax, dword ptr
00515197|.0FB640 06 movzx eax, byte ptr
0051519B|.8B55 FC mov edx, dword ptr
0051519E|.0FB652 07 movzx edx, byte ptr
005151A2|.03C2 add eax, edx ;7,8位相加
005151A4|.8B55 FC mov edx, dword ptr
005151A7|.0FB652 08 movzx edx, byte ptr
005151AB|.03C2 add eax, edx ;7,8,9相加
005151AD|.B9 05000000 mov ecx, 5
005151B2|.99 cdq
005151B3|.F7F9 idiv ecx
005151B5|.80C2 69 add dl, 69
005151B8|.8855 FB mov byte ptr , dl ;结果l
005151BB|.8D45 F4 lea eax, dword ptr
005151BE|.8A55 F8 mov dl, byte ptr
005151C1|.E8 36FAEEFF call 00404BFC
005151C6|.8B45 F4 mov eax, dword ptr
005151C9|.8D55 FC lea edx, dword ptr
005151CC|.B9 07000000 mov ecx, 7
005151D1|.E8 DEFDEEFF call 00404FB4
005151D6|.8D45 F0 lea eax, dword ptr
005151D9|.8A55 FB mov dl, byte ptr
005151DC|.E8 1BFAEEFF call 00404BFC
005151E1|.8B45 F0 mov eax, dword ptr
005151E4|.8D55 FC lea edx, dword ptr
005151E7|.B9 03000000 mov ecx, 3
005151EC|.E8 C3FDEEFF call 00404FB4
005151F1|.8D45 EC lea eax, dword ptr
005151F4|.8A55 F9 mov dl, byte ptr
005151F7|.E8 00FAEEFF call 00404BFC
005151FC|.8B45 EC mov eax, dword ptr
005151FF|.8D55 FC lea edx, dword ptr
00515202|.B9 05000000 mov ecx, 5
00515207|.E8 A8FDEEFF call 00404FB4
0051520C|.8D45 E8 lea eax, dword ptr
0051520F|.8A55 FA mov dl, byte ptr
00515212|.E8 E5F9EEFF call 00404BFC
00515217|.8B45 E8 mov eax, dword ptr
0051521A|.8D55 FC lea edx, dword ptr
0051521D|.B9 09000000 mov ecx, 9
00515222|.E8 8DFDEEFF call 00404FB4
00515227|.8BC6 mov eax, esi
00515229|.8B55 FC mov edx, dword ptr ;把字符分别插入原数字字符串得到新结果 (ASCII "36l2y128{f5099")
0051522C|.E8 3FF8EEFF call 00404A70
00515231|.33C0 xor eax, eax
00515233|.5A pop edx
00515234|.59 pop ecx
00515235|.59 pop ecx
00515236|.64:8910 mov dword ptr fs:, edx
00515239|.68 5B525100 push 0051525B
0051523E|>8D45 E8 lea eax, dword ptr
00515241|.BA 04000000 mov edx, 4
00515246|.E8 F5F7EEFF call 00404A40
0051524B|.8D45 FC lea eax, dword ptr
0051524E|.E8 C9F7EEFF call 00404A1C
00515253\.C3 retn
00515254 .^ E9 67F0EEFF jmp 004042C0
00515259 .^ EB E3 jmp short 0051523E
0051525B .5E pop esi
0051525C .5B pop ebx
0051525D .8BE5 mov esp, ebp
0051525F .5D pop ebp
00515260 .C3 retn
======================================================== 本帖最后由 lonelyboy1 于 2010-6-1 15:14 编辑
谢谢兄弟分享哈,学习下了。
前面漏了一点。验证输入信息是否正确 这段。嘎嘎
页:
[1]