bt仓库的算法分析:
这个软件的算法其实并不难,只是进行的算法过长,让人看了有点晕晕的感觉
这个软件是由用户名得到注册码的,它首先对用户名进行判断,不足16位的用
00填充,大于的话只取前16位,然后把它分成4组,下面用c1,c3,c4,c5表示
同时还有3个中间量,c2,c6,c7.
运行软件后用olldbg的附加功能加载程序,点注册选项,下断点bp getdlgitem
输入假码,regname:ligyuan,regcode:123456789点击注册,被断下,Alt+F9返回
到这里:
0042D947 |>mov ecx,eax
0042D949 |>call <jmp.&MFC42.#3874> //获取用户名
0042D94E |>lea ecx,dword ptr ss:[ebp-10]
0042D951 |>push ecx
0042D952 |>push 414
0042D957 |>mov ecx,dword ptr ss:[ebp-24]
0042D95A |>call <jmp.&MFC42.#3092>
0042D95F |>mov ecx,eax
0042D961 |>call <jmp.&MFC42.#3874> //获取注册码
0042D966 |>push ecx
0042D967 |>mov ecx,esp
0042D969 |>mov dword ptr ss:[ebp-18],esp
0042D96C |>lea edx,dword ptr ss:[ebp-10]
0042D96F |>push edx
0042D970 |>call <jmp.&MFC42.#535>
0042D975 |>mov dword ptr ss:[ebp-28],eax
0042D978 |>mov eax,dword ptr ss:[ebp-28]
0042D97B |>mov dword ptr ss:[ebp-2C],eax
0042D97E |>mov byte ptr ss:[ebp-4],2
0042D982 |>push ecx
0042D983 |>mov ecx,esp
0042D985 |>mov dword ptr ss:[ebp-1C],esp
0042D988 |>lea edx,dword ptr ss:[ebp-14]
0042D98B |>push edx
0042D98C |>call <jmp.&MFC42.#535>
0042D991 |>mov dword ptr ss:[ebp-30],eax ; |
0042D994 |>mov ecx,BTLocal.0045C528 ; |
0042D999 |>mov byte ptr ss:[ebp-4],1 ; |这里就是关键call
0042D99D |>call BTLocal.00436F88 ; \BTLocal.00436F88
0042D9A2 |>mov dword ptr ss:[ebp-34],eax
0042D9A5 |>cmp dword ptr ss:[ebp-34],0
0042D9A9 |>jnz short BTLocal.0042D9EB
跟进后很快你就回找到一个处理用户名的call,处理完后,在下面见call就F7,不久
就可以来到这里,具体的就不说了,很简单的,下面的几百行代码都是它的注册码
生成代码,熬了一个晚上才把它搞定。晕!!!!
/////////////////////////////////////////////////////
0043273B /$ >push ebp
0043273C |. >mov ebp,esp
0043273E |. >sub esp,20
00432741 |. >mov dword ptr ss:[ebp-20],ecx ; 一数据地址存栈
00432744 |. >mov eax,dword ptr ss:[ebp+8] ; 取用户地址
00432747 |. >mov ecx,dword ptr ds:[eax] ; 取c1
00432749 |. >mov edx,dword ptr ss:[ebp-20] ;
0043274C |. >add ecx,dword ptr ds:[edx+4] ; 与一数据相加
0043274F |. >mov dword ptr ss:[ebp-4],ecx ; 存于栈中
00432752 |. >mov eax,dword ptr ss:[ebp+8]
00432755 |. >mov ecx,dword ptr ds:[eax+4] ; 取c3
00432758 |. >mov edx,dword ptr ss:[ebp-20]
0043275B |. >add ecx,dword ptr ds:[edx+8] ; 与一数据相加
0043275E |. >mov dword ptr ss:[ebp-C],ecx ; 存于栈中
00432761 |. >mov eax,dword ptr ss:[ebp+8]
00432764 |. >mov ecx,dword ptr ds:[eax+8] ; 取c4
00432767 |. >mov edx,dword ptr ss:[ebp-20]
0043276A |. >add ecx,dword ptr ds:[edx+C] ; 与一数据相加
0043276D |. >mov dword ptr ss:[ebp-10],ecx ; 存于栈中
00432770 |. >mov eax,dword ptr ss:[ebp+8]
00432773 |. >mov ecx,dword ptr ds:[eax+C] ; 取c5
00432776 |. >mov edx,dword ptr ss:[ebp-20]
00432779 |. >add ecx,dword ptr ds:[edx+10] ; 与一数据相加
0043277C |. >mov dword ptr ss:[ebp-14],ecx ; 存于栈中
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
下面这段是对上面变换后的用户名进行处理的一个阶段,分8个部分,每部分执行的都是类似
操作,取一组用户名比如c1,循环右移0x8后得到c2,然后取c1的低8位值,由它在表中得到
一数据,把它与下一组(这里是c3)异或,并替换c3,取c1的低8位值,由它在表中得到一
数据与c3异或替换c3;c1循环右移0x10替换c2,c1循环右移0x18替换c1;取c2低8位,得一表
中数据并与再下一组相加并替换(这里是c4);取c1的低8位,得一数据与最后一组异或并替疑惑
换(这里是c5);只有少许不同。
0043277F |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
00432782 |. >ror eax,8 ; 循环右移0x8
00432785 |. >mov dword ptr ss:[ebp-8],eax ; 存为c2
00432788 |. >mov ecx,dword ptr ss:[ebp-4] ; 取c1
0043278B |. >and ecx,0FF ; 取低8位
00432791 |. >mov edx,dword ptr ss:[ebp-C] ; 取c3
00432794 |. >xor edx,dword ptr ds:[ecx*4+45B3C0] ; 用一数据与edx异或
0043279B |. >mov dword ptr ss:[ebp-C],edx ; 替换原数据
0043279E |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
004327A1 |. >and eax,0FF ; 取低2位
004327A6 |. >mov ecx,dword ptr ss:[ebp-C] ; 取c3
004327A9 |. >add ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据加
004327B0 |. >mov dword ptr ss:[ebp-C],ecx ; 替换c3
004327B3 |. >mov edx,dword ptr ss:[ebp-4] ; 取c1
004327B6 |. >ror edx,10 ; 循环右移0x10
004327B9 |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
004327BC |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
004327BF |. >ror eax,18 ; 循环右移0x18
004327C2 |. >mov dword ptr ss:[ebp-4],eax ; 替换c1
004327C5 |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
004327C8 |. >and ecx,0FF ; 取低8位
004327CE |. >mov edx,dword ptr ss:[ebp-10] ; 取c4
004327D1 |. >add edx,dword ptr ds:[ecx*4+45B3C0] ; 与表中一数据相加
004327D8 |. >mov dword ptr ss:[ebp-10],edx ; 替换c4
004327DB |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
004327DE |. >and eax,0FF ; 取低8位
004327E3 |. >mov ecx,dword ptr ss:[ebp-14] ; 取c5
004327E6 |. >xor ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据异或
004327ED |. >mov dword ptr ss:[ebp-14],ecx ; 替换c5
004327F0 |. >mov edx,dword ptr ss:[ebp-4] ; 取c1
004327F3 |. >add edx,dword ptr ss:[ebp-14] ; 与c5相加
004327F6 |. >mov dword ptr ss:[ebp-4],edx ; 替换c1
/////////////////////////////////////////////////////////////////
004327F9 |. >mov eax,dword ptr ss:[ebp-C] ; 取c3
004327FC |. >ror eax,8 ; 循环右移0x8
004327FF |. >mov dword ptr ss:[ebp-8],eax ; 替换c2
00432802 |. >mov ecx,dword ptr ss:[ebp-C] ; 取c3
00432805 |. >and ecx,0FF ; 取低2位
0043280B |. >mov edx,dword ptr ss:[ebp-10] ; 取c4
0043280E |. >xor edx,dword ptr ds:[ecx*4+45B3C0] ; 与表中一数据异或
00432815 |. >mov dword ptr ss:[ebp-10],edx ; 替换c4
00432818 |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
0043281B |. >and eax,0FF ; 取低2位
00432820 |. >mov ecx,dword ptr ss:[ebp-10] ; 取c4
00432823 |. >add ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据相加
0043282A |. >mov dword ptr ss:[ebp-10],ecx ; 替换c4
0043282D |. >mov edx,dword ptr ss:[ebp-C] ; 取c3
00432830 |. >ror edx,10 ; 取低2位
00432833 |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
00432836 |. >mov eax,dword ptr ss:[ebp-C] ; 取c3
00432839 |. >ror eax,18 ; 循环右移0x18
0043283C |. >mov dword ptr ss:[ebp-C],eax ; 替换c3
0043283F |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
00432842 |. >and ecx,0FF ; 取低2位
00432848 |. >mov edx,dword ptr ss:[ebp-14] ; 取c5
0043284B |. >add edx,dword ptr ds:[ecx*4+45B3C0] ; 与表中一数据相加
00432852 |. >mov dword ptr ss:[ebp-14],edx ; 替换c5
00432855 |. >mov eax,dword ptr ss:[ebp-C] ; 取c3
00432858 |. >and eax,0FF ; 取低2位
0043285D |. >mov ecx,dword ptr ss:[ebp-4] ; 取c1
00432860 |. >xor ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据异或
00432867 |. >mov dword ptr ss:[ebp-4],ecx ; 替换c1
0043286A |. >mov edx,dword ptr ss:[ebp-C] ; 取c3
0043286D |. >add edx,dword ptr ss:[ebp-10] ; 与表中一数据相加
00432870 |. >mov dword ptr ss:[ebp-C],edx ; 替换c3
////////////////////////////////////////////////////////////////////////
00432873 |. >mov eax,dword ptr ss:[ebp-10] ; 取c4
00432876 |. >ror eax,8 ; 循环右移0x8
00432879 |. >mov dword ptr ss:[ebp-8],eax ; 替换c2
0043287C |. >mov ecx,dword ptr ss:[ebp-10] ; 取c4
0043287F |. >and ecx,0FF ; 取低2位
00432885 |. >mov edx,dword ptr ss:[ebp-14] ; 取c5
00432888 |. >xor edx,dword ptr ds:[ecx*4+45B3C0] ; 与表中一数据异或
0043288F |. >mov dword ptr ss:[ebp-14],edx ; 替换c5
00432892 |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
00432895 |. >and eax,0FF ; 取低2位
0043289A |. >mov ecx,dword ptr ss:[ebp-14] ; 取c5
0043289D |. >add ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据加
004328A4 |. >mov dword ptr ss:[ebp-14],ecx ; 替换c5
004328A7 |. >mov edx,dword ptr ss:[ebp-10] ; 取c4
004328AA |. >ror edx,10 ; 循环右移 0x10
004328AD |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
004328B0 |. >mov eax,dword ptr ss:[ebp-10] ; 取c4
004328B3 |. >ror eax,18 ; 循环右移0x18
004328B6 |. >mov dword ptr ss:[ebp-10],eax ; 替换c4
004328B9 |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
004328BC |. >and ecx,0FF ; 取低2位
004328C2 |. >mov edx,dword ptr ss:[ebp-4] ; 取c1
004328C5 |. >add edx,dword ptr ds:[ecx*4+45B3C0] ; 与表中一数据加
004328CC |. >mov dword ptr ss:[ebp-4],edx ; 替换c1
004328CF |. >mov eax,dword ptr ss:[ebp-10] ; 取c4
004328D2 |. >and eax,0FF ; 取低2位
004328D7 |. >mov ecx,dword ptr ss:[ebp-C] ; 取c3
004328DA |. >xor ecx,dword ptr ds:[eax*4+45B7C0] ; 与表中一数据异或
004328E1 |. >mov dword ptr ss:[ebp-C],ecx ; 替换c3
//////////////////////////////////////////////////////////////////////
004328E4 |. >mov edx,dword ptr ss:[ebp-14] ; 取c5
004328E7 |. >ror edx,8 ; 循环右移0x8
004328EA |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
004328ED |. >mov eax,dword ptr ss:[ebp-14] ; 取c5
004328F0 |. >and eax,0FF ; 取低2位
004328F5 |. >mov ecx,dword ptr ss:[ebp-4] ; 取c1
004328F8 |. >xor ecx,dword ptr ds:[eax*4+45B3C0] ; 与表中一数据异或
004328FF |. >mov dword ptr ss:[ebp-4],ecx ; 替换c1
00432902 |. >mov edx,dword ptr ss:[ebp-8] ; 取c2
00432905 |. >and edx,0FF ; 取低2位
0043290B |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
0043290E |. >add eax,dword ptr ds:[edx*4+45B7C0] ; 与表中一数据加
00432915 |. >mov dword ptr ss:[ebp-4],eax ; 替换c1
00432918 |. >mov ecx,dword ptr ss:[ebp-14] ; 取c5
0043291B |. >ror ecx,10 ; 循环右移0x10
0043291E |. >mov dword ptr ss:[ebp-8],ecx ; 替换c2
00432921 |. >mov edx,dword ptr ss:[ebp-14] ; 取c5
00432924 |. >ror edx,18 ; 循环右移0x18
00432927 |. >mov dword ptr ss:[ebp-14],edx ; 替换c5
0043292A |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
0043292D |. >and eax,0FF ; 取低2位
00432932 |. >mov ecx,dword ptr ss:[ebp-C] ; 取c3
00432935 |. >add ecx,dword ptr ds:[eax*4+45B3C0] ; 与表中一数据加
0043293C |. >mov dword ptr ss:[ebp-C],ecx ; 替换c3
0043293F |. >mov edx,dword ptr ss:[ebp-14] ; 取c5
00432942 |. >and edx,0FF ; 取低位
00432948 |. >mov eax,dword ptr ss:[ebp-10] ; 取c4
0043294B |. >xor eax,dword ptr ds:[edx*4+45B7C0] ; 与表中一数据异或
00432952 |. >mov dword ptr ss:[ebp-10],eax ; 替换c4
/////////////////////////////////////////////////////////////////////////
下面这一段代码和上面的是完全一样的操作,相当于上面执行了两个回合
00432955 |. >mov ecx,dword ptr ss:[ebp-4]
00432958 |. >ror ecx,8
0043295B |. >mov dword ptr ss:[ebp-8],ecx
0043295E |. >mov edx,dword ptr ss:[ebp-4]
00432961 |. >and edx,0FF
00432967 |. >mov eax,dword ptr ss:[ebp-C]
0043296A |. >xor eax,dword ptr ds:[edx*4+45B3C0]
00432971 |. >mov dword ptr ss:[ebp-C],eax
00432974 |. >mov ecx,dword ptr ss:[ebp-8]
00432977 |. >and ecx,0FF
0043297D |. >mov edx,dword ptr ss:[ebp-C]
00432980 |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432987 |. >mov dword ptr ss:[ebp-C],edx
0043298A |. >mov eax,dword ptr ss:[ebp-4]
0043298D |. >ror eax,10
00432990 |. >mov dword ptr ss:[ebp-8],eax
00432993 |. >mov ecx,dword ptr ss:[ebp-4]
00432996 |. >ror ecx,18
00432999 |. >mov dword ptr ss:[ebp-4],ecx
0043299C |. >mov edx,dword ptr ss:[ebp-8]
0043299F |. >and edx,0FF
004329A5 |. >mov eax,dword ptr ss:[ebp-10]
004329A8 |. >add eax,dword ptr ds:[edx*4+45B3C0]
004329AF |. >mov dword ptr ss:[ebp-10],eax
004329B2 |. >mov ecx,dword ptr ss:[ebp-4]
004329B5 |. >and ecx,0FF
004329BB |. >mov edx,dword ptr ss:[ebp-14]
004329BE |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
004329C5 |. >mov dword ptr ss:[ebp-14],edx
004329C8 |. >mov eax,dword ptr ss:[ebp-4]
004329CB |. >add eax,dword ptr ss:[ebp-14]
004329CE |. >mov dword ptr ss:[ebp-4],eax
004329D1 |. >mov ecx,dword ptr ss:[ebp-C]
004329D4 |. >ror ecx,8
004329D7 |. >mov dword ptr ss:[ebp-8],ecx
004329DA |. >mov edx,dword ptr ss:[ebp-C]
004329DD |. >and edx,0FF
004329E3 |. >mov eax,dword ptr ss:[ebp-10]
004329E6 |. >xor eax,dword ptr ds:[edx*4+45B3C0]
004329ED |. >mov dword ptr ss:[ebp-10],eax
004329F0 |. >mov ecx,dword ptr ss:[ebp-8]
004329F3 |. >and ecx,0FF
004329F9 |. >mov edx,dword ptr ss:[ebp-10]
004329FC |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432A03 |. >mov dword ptr ss:[ebp-10],edx
00432A06 |. >mov eax,dword ptr ss:[ebp-C]
00432A09 |. >ror eax,10
00432A0C |. >mov dword ptr ss:[ebp-8],eax
00432A0F |. >mov ecx,dword ptr ss:[ebp-C]
00432A12 |. >ror ecx,18
00432A15 |. >mov dword ptr ss:[ebp-C],ecx
00432A18 |. >mov edx,dword ptr ss:[ebp-8]
00432A1B |. >and edx,0FF
00432A21 |. >mov eax,dword ptr ss:[ebp-14]
00432A24 |. >add eax,dword ptr ds:[edx*4+45B3C0]
00432A2B |. >mov dword ptr ss:[ebp-14],eax
00432A2E |. >mov ecx,dword ptr ss:[ebp-C]
00432A31 |. >and ecx,0FF
00432A37 |. >mov edx,dword ptr ss:[ebp-4]
00432A3A |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
00432A41 |. >mov dword ptr ss:[ebp-4],edx
00432A44 |. >mov eax,dword ptr ss:[ebp-C]
00432A47 |. >add eax,dword ptr ss:[ebp-10]
00432A4A |. >mov dword ptr ss:[ebp-C],eax
00432A4D |. >mov ecx,dword ptr ss:[ebp-10]
00432A50 |. >ror ecx,8
00432A53 |. >mov dword ptr ss:[ebp-8],ecx
00432A56 |. >mov edx,dword ptr ss:[ebp-10]
00432A59 |. >and edx,0FF
00432A5F |. >mov eax,dword ptr ss:[ebp-14]
00432A62 |. >xor eax,dword ptr ds:[edx*4+45B3C0]
00432A69 |. >mov dword ptr ss:[ebp-14],eax
00432A6C |. >mov ecx,dword ptr ss:[ebp-8]
00432A6F |. >and ecx,0FF
00432A75 |. >mov edx,dword ptr ss:[ebp-14]
00432A78 |. >add edx,dword ptr ds:[ecx*4+45B7C0]
00432A7F |. >mov dword ptr ss:[ebp-14],edx
00432A82 |. >mov eax,dword ptr ss:[ebp-10]
00432A85 |. >ror eax,10
00432A88 |. >mov dword ptr ss:[ebp-8],eax
00432A8B |. >mov ecx,dword ptr ss:[ebp-10]
00432A8E |. >ror ecx,18
00432A91 |. >mov dword ptr ss:[ebp-10],ecx
00432A94 |. >mov edx,dword ptr ss:[ebp-8]
00432A97 |. >and edx,0FF
00432A9D |. >mov eax,dword ptr ss:[ebp-4]
00432AA0 |. >add eax,dword ptr ds:[edx*4+45B3C0]
00432AA7 |. >mov dword ptr ss:[ebp-4],eax
00432AAA |. >mov ecx,dword ptr ss:[ebp-10]
00432AAD |. >and ecx,0FF
00432AB3 |. >mov edx,dword ptr ss:[ebp-C]
00432AB6 |. >xor edx,dword ptr ds:[ecx*4+45B7C0]
00432ABD |. >mov dword ptr ss:[ebp-C],edx
00432AC0 |. >mov eax,dword ptr ss:[ebp-14]
00432AC3 |. >ror eax,8
00432AC6 |. >mov dword ptr ss:[ebp-8],eax
00432AC9 |. >mov ecx,dword ptr ss:[ebp-14]
00432ACC |. >and ecx,0FF
00432AD2 |. >mov edx,dword ptr ss:[ebp-4]
00432AD5 |. >xor edx,dword ptr ds:[ecx*4+45B3C0]
00432ADC |. >mov dword ptr ss:[ebp-4],edx
00432ADF |. >mov eax,dword ptr ss:[ebp-8]
00432AE2 |. >and eax,0FF
00432AE7 |. >mov ecx,dword ptr ss:[ebp-4]
00432AEA |. >add ecx,dword ptr ds:[eax*4+45B7C0]
00432AF1 |. >mov dword ptr ss:[ebp-4],ecx
00432AF4 |. >mov edx,dword ptr ss:[ebp-14]
00432AF7 |. >ror edx,10
00432AFA |. >mov dword ptr ss:[ebp-8],edx
00432AFD |. >mov eax,dword ptr ss:[ebp-14]
00432B00 |. >ror eax,18
00432B03 |. >mov dword ptr ss:[ebp-14],eax
00432B06 |. >mov ecx,dword ptr ss:[ebp-8]
00432B09 |. >and ecx,0FF
00432B0F |. >mov edx,dword ptr ss:[ebp-C]
00432B12 |. >add edx,dword ptr ds:[ecx*4+45B3C0]
00432B19 |. >mov dword ptr ss:[ebp-C],edx
00432B1C |. >mov eax,dword ptr ss:[ebp-14]
00432B1F |. >and eax,0FF
00432B24 |. >mov ecx,dword ptr ss:[ebp-10]
00432B27 |. >xor ecx,dword ptr ds:[eax*4+45B7C0]
00432B2E |. >mov dword ptr ss:[ebp-10],ecx
/////////////////////////////////////////////////////////////////////////////1
这里是对用户名处理的第二阶段:
找几段分析一下,看看规律
00432B31 |. >mov edx,dword ptr ss:[ebp-20]
00432B34 |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
00432B37 |. >add eax,dword ptr ds:[edx+14] ; 与一数据加
00432B3A |. >mov dword ptr ss:[ebp-1C],eax ; 给c6赋值
00432B3D |. >mov ecx,dword ptr ss:[ebp-4] ; 取c1
00432B40 |. >rol ecx,0D ; 循环左移0xd
00432B43 |. >mov dword ptr ss:[ebp-4],ecx ; 替换c1
00432B46 |. >mov edx,dword ptr ss:[ebp-20]
00432B49 |. >mov eax,dword ptr ss:[ebp-4] ; 取c1
00432B4C |. >imul eax,dword ptr ds:[edx+18] ; 与一数据相乘
00432B50 |. >mov dword ptr ss:[ebp-8],eax ; 替换c2
00432B53 |. >mov ecx,dword ptr ss:[ebp-1C] ; 取c6
00432B56 |. >and ecx,1FF ; 取低9位(2进制)
00432B5C |. >mov edx,dword ptr ds:[ecx*4+45B3C0] ; 取一数据
00432B63 |. >mov dword ptr ss:[ebp-18],edx ; 存于c7
00432B66 |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
00432B69 |. >rol eax,5 ; 循环左移0x5
00432B6C |. >mov dword ptr ss:[ebp-8],eax ; 替换c2
00432B6F |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
00432B72 |. >mov edx,dword ptr ss:[ebp-1C] ; 取c6
00432B75 |. >rol edx,cl ; 循环左移cl
00432B77 |. >mov eax,dword ptr ss:[ebp-10] ; 取c4
00432B7A |. >add eax,edx
00432B7C |. >mov dword ptr ss:[ebp-10],eax ; 替换c4
00432B7F |. >mov ecx,dword ptr ss:[ebp-18] ; 取c7
00432B82 |. >xor ecx,dword ptr ss:[ebp-8] ; 与c2异或
00432B85 |. >mov dword ptr ss:[ebp-18],ecx ; 替换c7
00432B88 |. >mov edx,dword ptr ss:[ebp-8] ; 取c2
00432B8B |. >rol edx,5 ; 循环左移0x5
00432B8E |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
00432B91 |. >mov eax,dword ptr ss:[ebp-18] ; 取c7
00432B94 |. >xor eax,dword ptr ss:[ebp-8] ; 与c2异或
00432B97 |. >mov dword ptr ss:[ebp-18],eax ; 替换c7
00432B9A |. >mov ecx,dword ptr ss:[ebp-14] ; 取c5
00432B9D |. >xor ecx,dword ptr ss:[ebp-8] ; 与c2异或
00432BA0 |. >mov dword ptr ss:[ebp-14],ecx ; 替换c5
00432BA3 |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
00432BA6 |. >mov edx,dword ptr ss:[ebp-18] ; 取c7
00432BA9 |. >rol edx,cl ; 循环左移cl
00432BAB |. >mov eax,dword ptr ss:[ebp-C] ; 取c3
00432BAE |. >add eax,edx
00432BB0 |. >mov dword ptr ss:[ebp-C],eax ; 替换c3
///////////////////////////////////////////////////////////2
00432BB3 |. >mov ecx,dword ptr ss:[ebp-20]
00432BB6 |. >mov edx,dword ptr ss:[ebp-C] ; 取c3
00432BB9 |. >add edx,dword ptr ds:[ecx+1C] ; 与一数据加
00432BBC |. >mov dword ptr ss:[ebp-1C],edx ; 替换c6
00432BBF |. >mov eax,dword ptr ss:[ebp-C] ; 取c3
00432BC2 |. >rol eax,0D ; 循环左移0xd
00432BC5 |. >mov dword ptr ss:[ebp-C],eax ; 替换c3
00432BC8 |. >mov ecx,dword ptr ss:[ebp-20]
00432BCB |. >mov edx,dword ptr ss:[ebp-C] ; 取c3
00432BCE |. >imul edx,dword ptr ds:[ecx+20] ; 与一数据乘
00432BD2 |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
00432BD5 |. >mov eax,dword ptr ss:[ebp-1C] ; 取c6
00432BD8 |. >and eax,1FF ; 取低9位(2进制)
00432BDD |. >mov ecx,dword ptr ds:[eax*4+45B3C0] ; 取 一数据
00432BE4 |. >mov dword ptr ss:[ebp-18],ecx ; 替换c7
00432BE7 |. >mov edx,dword ptr ss:[ebp-8] ; 取c2
00432BEA |. >rol edx,5 ; 循环左移0x5
00432BED |. >mov dword ptr ss:[ebp-8],edx ; 替换c2
00432BF0 |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
00432BF3 |. >mov eax,dword ptr ss:[ebp-1C] ; 取c6
00432BF6 |. >rol eax,cl ; 循环左移cl
00432BF8 |. >mov ecx,dword ptr ss:[ebp-14] ; 取 c5
00432BFB |. >add ecx,eax
00432BFD |. >mov dword ptr ss:[ebp-14],ecx ; 替换c5
00432C00 |. >mov edx,dword ptr ss:[ebp-18] ; 取c7
00432C03 |. >xor edx,dword ptr ss:[ebp-8] ; 与c2异或
00432C06 |. >mov dword ptr ss:[ebp-18],edx ; 替换c7
00432C09 |. >mov eax,dword ptr ss:[ebp-8] ; 取c2
00432C0C |. >rol eax,5 ; 循环左移0x5
00432C0F |. >mov dword ptr ss:[ebp-8],eax ; 替换c2
00432C12 |. >mov ecx,dword ptr ss:[ebp-18] ; 取c7
00432C15 |. >xor ecx,dword ptr ss:[ebp-8] ; 异或c2
00432C18 |. >mov dword ptr ss:[ebp-18],ecx ; 替换c7
00432C1B |. >mov edx,dword ptr ss:[ebp-4] ; 取c1
00432C1E |. >xor edx,dword ptr ss:[ebp-8] ; 异或c2
00432C21 |. >mov dword ptr ss:[ebp-4],edx ; 替换c1
00432C24 |. >mov ecx,dword ptr ss:[ebp-8] ; 取c2
00432C27 |. >mov eax,dword ptr ss:[ebp-18] ; 取c7
00432C2A |. >rol eax,cl ; 循环左移cl
00432C2C |. >mov ecx,dword ptr ss:[ebp-10] ; 取c4
00432C2F |. >add ecx,eax
00432C31 |. >mov dword ptr ss:[ebp-10],ecx ; 替换c4
/////////////////////////////////////////////////////////////////3
下面这13个操做几乎都是雷同的代码,看都看花了
00432C34 |. >mov edx,dword ptr ss:[ebp-20]
00432C37 |. >mov eax,dword ptr ss:[ebp-10]
00432C3A |. >add eax,dword ptr ds:[edx+24]
00432C3D |. >mov dword ptr ss:[ebp-1C],eax
00432C40 |. >mov ecx,dword ptr ss:[ebp-10]
00432C43 |. >rol ecx,0D
00432C46 |. >mov dword ptr ss:[ebp-10],ecx
00432C49 |. >mov edx,dword ptr ss:[ebp-20]
00432C4C |. >mov eax,dword ptr ss:[ebp-10]
00432C4F |. >imul eax,dword ptr ds:[edx+28]
00432C53 |. >mov dword ptr ss:[ebp-8],eax
00432C56 |. >mov ecx,dword ptr ss:[ebp-1C]
00432C59 |. >and ecx,1FF
00432C5F |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432C66 |. >mov dword ptr ss:[ebp-18],edx
00432C69 |. >mov eax,dword ptr ss:[ebp-8]
00432C6C |. >rol eax,5
00432C6F |. >mov dword ptr ss:[ebp-8],eax
00432C72 |. >mov ecx,dword ptr ss:[ebp-8]
00432C75 |. >mov edx,dword ptr ss:[ebp-1C]
00432C78 |. >rol edx,cl
00432C7A |. >mov eax,dword ptr ss:[ebp-4]
00432C7D |. >add eax,edx
00432C7F |. >mov dword ptr ss:[ebp-4],eax
00432C82 |. >mov ecx,dword ptr ss:[ebp-18]
00432C85 |. >xor ecx,dword ptr ss:[ebp-8]
00432C88 |. >mov dword ptr ss:[ebp-18],ecx
00432C8B |. >mov edx,dword ptr ss:[ebp-8]
00432C8E |. >rol edx,5
00432C91 |. >mov dword ptr ss:[ebp-8],edx
00432C94 |. >mov eax,dword ptr ss:[ebp-18]
00432C97 |. >xor eax,dword ptr ss:[ebp-8]
00432C9A |. >mov dword ptr ss:[ebp-18],eax
00432C9D |. >mov ecx,dword ptr ss:[ebp-C]
00432CA0 |. >xor ecx,dword ptr ss:[ebp-8]
00432CA3 |. >mov dword ptr ss:[ebp-C],ecx
00432CA6 |. >mov ecx,dword ptr ss:[ebp-8]
00432CA9 |. >mov edx,dword ptr ss:[ebp-18]
00432CAC |. >rol edx,cl
00432CAE |. >mov eax,dword ptr ss:[ebp-14]
00432CB1 |. >add eax,edx
00432CB3 |. >mov dword ptr ss:[ebp-14],eax
00432CB6 |. >mov ecx,dword ptr ss:[ebp-20]
00432CB9 |. >mov edx,dword ptr ss:[ebp-14]
00432CBC |. >add edx,dword ptr ds:[ecx+2C]
00432CBF |. >mov dword ptr ss:[ebp-1C],edx
00432CC2 |. >mov eax,dword ptr ss:[ebp-14]
00432CC5 |. >rol eax,0D
00432CC8 |. >mov dword ptr ss:[ebp-14],eax
00432CCB |. >mov ecx,dword ptr ss:[ebp-20]
00432CCE |. >mov edx,dword ptr ss:[ebp-14]
00432CD1 |. >imul edx,dword ptr ds:[ecx+30]
00432CD5 |. >mov dword ptr ss:[ebp-8],edx
00432CD8 |. >mov eax,dword ptr ss:[ebp-1C]
00432CDB |. >and eax,1FF
00432CE0 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432CE7 |. >mov dword ptr ss:[ebp-18],ecx
00432CEA |. >mov edx,dword ptr ss:[ebp-8]
00432CED |. >rol edx,5
00432CF0 |. >mov dword ptr ss:[ebp-8],edx
00432CF3 |. >mov ecx,dword ptr ss:[ebp-8]
00432CF6 |. >mov eax,dword ptr ss:[ebp-1C]
00432CF9 |. >rol eax,cl
00432CFB |. >mov ecx,dword ptr ss:[ebp-C]
00432CFE |. >add ecx,eax
00432D00 |. >mov dword ptr ss:[ebp-C],ecx
00432D03 |. >mov edx,dword ptr ss:[ebp-18]
00432D06 |. >xor edx,dword ptr ss:[ebp-8]
00432D09 |. >mov dword ptr ss:[ebp-18],edx
00432D0C |. >mov eax,dword ptr ss:[ebp-8]
00432D0F |. >rol eax,5
00432D12 |. >mov dword ptr ss:[ebp-8],eax
00432D15 |. >mov ecx,dword ptr ss:[ebp-18]
00432D18 |. >xor ecx,dword ptr ss:[ebp-8]
00432D1B |. >mov dword ptr ss:[ebp-18],ecx
00432D1E |. >mov edx,dword ptr ss:[ebp-10]
00432D21 |. >xor edx,dword ptr ss:[ebp-8]
00432D24 |. >mov dword ptr ss:[ebp-10],edx
00432D27 |. >mov ecx,dword ptr ss:[ebp-8]
00432D2A |. >mov eax,dword ptr ss:[ebp-18]
00432D2D |. >rol eax,cl
00432D2F |. >mov ecx,dword ptr ss:[ebp-4]
00432D32 |. >add ecx,eax
00432D34 |. >mov dword ptr ss:[ebp-4],ecx
/////////////////////////////////////////////////
00432D37 |. >mov edx,dword ptr ss:[ebp-20]
00432D3A |. >mov eax,dword ptr ss:[ebp-4]
00432D3D |. >add eax,dword ptr ds:[edx+34]
00432D40 |. >mov dword ptr ss:[ebp-1C],eax
00432D43 |. >mov ecx,dword ptr ss:[ebp-4]
00432D46 |. >rol ecx,0D
00432D49 |. >mov dword ptr ss:[ebp-4],ecx
00432D4C |. >mov edx,dword ptr ss:[ebp-20]
00432D4F |. >mov eax,dword ptr ss:[ebp-4]
00432D52 |. >imul eax,dword ptr ds:[edx+38]
00432D56 |. >mov dword ptr ss:[ebp-8],eax
00432D59 |. >mov ecx,dword ptr ss:[ebp-1C]
00432D5C |. >and ecx,1FF
00432D62 |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432D69 |. >mov dword ptr ss:[ebp-18],edx
00432D6C |. >mov eax,dword ptr ss:[ebp-8]
00432D6F |. >rol eax,5
00432D72 |. >mov dword ptr ss:[ebp-8],eax
00432D75 |. >mov ecx,dword ptr ss:[ebp-8]
00432D78 |. >mov edx,dword ptr ss:[ebp-1C]
00432D7B |. >rol edx,cl
00432D7D |. >mov eax,dword ptr ss:[ebp-10]
00432D80 |. >add eax,edx
00432D82 |. >mov dword ptr ss:[ebp-10],eax
00432D85 |. >mov ecx,dword ptr ss:[ebp-18]
00432D88 |. >xor ecx,dword ptr ss:[ebp-8]
00432D8B |. >mov dword ptr ss:[ebp-18],ecx
00432D8E |. >mov edx,dword ptr ss:[ebp-8]
00432D91 |. >rol edx,5
00432D94 |. >mov dword ptr ss:[ebp-8],edx
00432D97 |. >mov eax,dword ptr ss:[ebp-18]
00432D9A |. >xor eax,dword ptr ss:[ebp-8]
00432D9D |. >mov dword ptr ss:[ebp-18],eax
00432DA0 |. >mov ecx,dword ptr ss:[ebp-14]
00432DA3 |. >xor ecx,dword ptr ss:[ebp-8]
00432DA6 |. >mov dword ptr ss:[ebp-14],ecx
00432DA9 |. >mov ecx,dword ptr ss:[ebp-8]
00432DAC |. >mov edx,dword ptr ss:[ebp-18]
00432DAF |. >rol edx,cl
00432DB1 |. >mov eax,dword ptr ss:[ebp-C]
00432DB4 |. >add eax,edx
00432DB6 |. >mov dword ptr ss:[ebp-C],eax
///////////////////////////////////////////////
00432DB9 |. >mov ecx,dword ptr ss:[ebp-20]
00432DBC |. >mov edx,dword ptr ss:[ebp-C]
00432DBF |. >add edx,dword ptr ds:[ecx+3C]
00432DC2 |. >mov dword ptr ss:[ebp-1C],edx
00432DC5 |. >mov eax,dword ptr ss:[ebp-C]
00432DC8 |. >rol eax,0D
00432DCB |. >mov dword ptr ss:[ebp-C],eax
00432DCE |. >mov ecx,dword ptr ss:[ebp-20]
00432DD1 |. >mov edx,dword ptr ss:[ebp-C]
00432DD4 |. >imul edx,dword ptr ds:[ecx+40]
00432DD8 |. >mov dword ptr ss:[ebp-8],edx
00432DDB |. >mov eax,dword ptr ss:[ebp-1C]
00432DDE |. >and eax,1FF
00432DE3 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432DEA |. >mov dword ptr ss:[ebp-18],ecx
00432DED |. >mov edx,dword ptr ss:[ebp-8]
00432DF0 |. >rol edx,5
00432DF3 |. >mov dword ptr ss:[ebp-8],edx
00432DF6 |. >mov ecx,dword ptr ss:[ebp-8]
00432DF9 |. >mov eax,dword ptr ss:[ebp-1C]
00432DFC |. >rol eax,cl
00432DFE |. >mov ecx,dword ptr ss:[ebp-14]
00432E01 |. >add ecx,eax
00432E03 |. >mov dword ptr ss:[ebp-14],ecx
00432E06 |. >mov edx,dword ptr ss:[ebp-18]
00432E09 |. >xor edx,dword ptr ss:[ebp-8]
00432E0C |. >mov dword ptr ss:[ebp-18],edx
00432E0F |. >mov eax,dword ptr ss:[ebp-8]
00432E12 |. >rol eax,5
00432E15 |. >mov dword ptr ss:[ebp-8],eax
00432E18 |. >mov ecx,dword ptr ss:[ebp-18]
00432E1B |. >xor ecx,dword ptr ss:[ebp-8]
00432E1E |. >mov dword ptr ss:[ebp-18],ecx
00432E21 |. >mov edx,dword ptr ss:[ebp-4]
00432E24 |. >xor edx,dword ptr ss:[ebp-8]
00432E27 |. >mov dword ptr ss:[ebp-4],edx
00432E2A |. >mov ecx,dword ptr ss:[ebp-8]
00432E2D |. >mov eax,dword ptr ss:[ebp-18]
00432E30 |. >rol eax,cl
00432E32 |. >mov ecx,dword ptr ss:[ebp-10]
00432E35 |. >add ecx,eax
00432E37 |. >mov dword ptr ss:[ebp-10],ecx
///////////////////////////////////////////
00432E3A |. >mov edx,dword ptr ss:[ebp-20]
00432E3D |. >mov eax,dword ptr ss:[ebp-10]
00432E40 |. >add eax,dword ptr ds:[edx+44]
00432E43 |. >mov dword ptr ss:[ebp-1C],eax
00432E46 |. >mov ecx,dword ptr ss:[ebp-10]
00432E49 |. >rol ecx,0D
00432E4C |. >mov dword ptr ss:[ebp-10],ecx
00432E4F |. >mov edx,dword ptr ss:[ebp-20]
00432E52 |. >mov eax,dword ptr ss:[ebp-10]
00432E55 |. >imul eax,dword ptr ds:[edx+48]
00432E59 |. >mov dword ptr ss:[ebp-8],eax
00432E5C |. >mov ecx,dword ptr ss:[ebp-1C]
00432E5F |. >and ecx,1FF
00432E65 |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432E6C |. >mov dword ptr ss:[ebp-18],edx
00432E6F |. >mov eax,dword ptr ss:[ebp-8]
00432E72 |. >rol eax,5
00432E75 |. >mov dword ptr ss:[ebp-8],eax
00432E78 |. >mov ecx,dword ptr ss:[ebp-8]
00432E7B |. >mov edx,dword ptr ss:[ebp-1C]
00432E7E |. >rol edx,cl
00432E80 |. >mov eax,dword ptr ss:[ebp-4]
00432E83 |. >add eax,edx
00432E85 |. >mov dword ptr ss:[ebp-4],eax
00432E88 |. >mov ecx,dword ptr ss:[ebp-18]
00432E8B |. >xor ecx,dword ptr ss:[ebp-8]
00432E8E |. >mov dword ptr ss:[ebp-18],ecx
00432E91 |. >mov edx,dword ptr ss:[ebp-8]
00432E94 |. >rol edx,5
00432E97 |. >mov dword ptr ss:[ebp-8],edx
00432E9A |. >mov eax,dword ptr ss:[ebp-18]
00432E9D |. >xor eax,dword ptr ss:[ebp-8]
00432EA0 |. >mov dword ptr ss:[ebp-18],eax
00432EA3 |. >mov ecx,dword ptr ss:[ebp-C]
00432EA6 |. >xor ecx,dword ptr ss:[ebp-8]
00432EA9 |. >mov dword ptr ss:[ebp-C],ecx
00432EAC |. >mov ecx,dword ptr ss:[ebp-8]
00432EAF |. >mov edx,dword ptr ss:[ebp-18]
00432EB2 |. >rol edx,cl
00432EB4 |. >mov eax,dword ptr ss:[ebp-14]
00432EB7 |. >add eax,edx
00432EB9 |. >mov dword ptr ss:[ebp-14],eax
/////////////////////////////////////////////////////
00432EBC |. >mov ecx,dword ptr ss:[ebp-20]
00432EBF |. >mov edx,dword ptr ss:[ebp-14]
00432EC2 |. >add edx,dword ptr ds:[ecx+4C]
00432EC5 |. >mov dword ptr ss:[ebp-1C],edx
00432EC8 |. >mov eax,dword ptr ss:[ebp-14]
00432ECB |. >rol eax,0D
00432ECE |. >mov dword ptr ss:[ebp-14],eax
00432ED1 |. >mov ecx,dword ptr ss:[ebp-20]
00432ED4 |. >mov edx,dword ptr ss:[ebp-14]
00432ED7 |. >imul edx,dword ptr ds:[ecx+50]
00432EDB |. >mov dword ptr ss:[ebp-8],edx
00432EDE |. >mov eax,dword ptr ss:[ebp-1C]
00432EE1 |. >and eax,1FF
00432EE6 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432EED |. >mov dword ptr ss:[ebp-18],ecx
00432EF0 |. >mov edx,dword ptr ss:[ebp-8]
00432EF3 |. >rol edx,5
00432EF6 |. >mov dword ptr ss:[ebp-8],edx
00432EF9 |. >mov ecx,dword ptr ss:[ebp-8]
00432EFC |. >mov eax,dword ptr ss:[ebp-1C]
00432EFF |. >rol eax,cl
00432F01 |. >mov ecx,dword ptr ss:[ebp-C]
00432F04 |. >add ecx,eax
00432F06 |. >mov dword ptr ss:[ebp-C],ecx
00432F09 |. >mov edx,dword ptr ss:[ebp-18]
00432F0C |. >xor edx,dword ptr ss:[ebp-8]
00432F0F |. >mov dword ptr ss:[ebp-18],edx
00432F12 |. >mov eax,dword ptr ss:[ebp-8]
00432F15 |. >rol eax,5
00432F18 |. >mov dword ptr ss:[ebp-8],eax
00432F1B |. >mov ecx,dword ptr ss:[ebp-18]
00432F1E |. >xor ecx,dword ptr ss:[ebp-8]
00432F21 |. >mov dword ptr ss:[ebp-18],ecx
00432F24 |. >mov edx,dword ptr ss:[ebp-10]
00432F27 |. >xor edx,dword ptr ss:[ebp-8]
00432F2A |. >mov dword ptr ss:[ebp-10],edx
00432F2D |. >mov ecx,dword ptr ss:[ebp-8]
00432F30 |. >mov eax,dword ptr ss:[ebp-18]
00432F33 |. >rol eax,cl
00432F35 |. >mov ecx,dword ptr ss:[ebp-4]
00432F38 |. >add ecx,eax
00432F3A |. >mov dword ptr ss:[ebp-4],ecx
/////////////////////////////////////////////////////
00432F3D |. >mov edx,dword ptr ss:[ebp-20]
00432F40 |. >mov eax,dword ptr ss:[ebp-4]
00432F43 |. >add eax,dword ptr ds:[edx+54]
00432F46 |. >mov dword ptr ss:[ebp-1C],eax
00432F49 |. >mov ecx,dword ptr ss:[ebp-4]
00432F4C |. >rol ecx,0D
00432F4F |. >mov dword ptr ss:[ebp-4],ecx
00432F52 |. >mov edx,dword ptr ss:[ebp-20]
00432F55 |. >mov eax,dword ptr ss:[ebp-4]
00432F58 |. >imul eax,dword ptr ds:[edx+58]
00432F5C |. >mov dword ptr ss:[ebp-8],eax
00432F5F |. >mov ecx,dword ptr ss:[ebp-1C]
00432F62 |. >and ecx,1FF
00432F68 |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00432F6F |. >mov dword ptr ss:[ebp-18],edx
00432F72 |. >mov eax,dword ptr ss:[ebp-8]
00432F75 |. >rol eax,5
00432F78 |. >mov dword ptr ss:[ebp-8],eax
00432F7B |. >mov ecx,dword ptr ss:[ebp-8]
00432F7E |. >mov edx,dword ptr ss:[ebp-1C]
00432F81 |. >rol edx,cl
00432F83 |. >mov eax,dword ptr ss:[ebp-10]
00432F86 |. >add eax,edx
00432F88 |. >mov dword ptr ss:[ebp-10],eax
00432F8B |. >mov ecx,dword ptr ss:[ebp-18]
00432F8E |. >xor ecx,dword ptr ss:[ebp-8]
00432F91 |. >mov dword ptr ss:[ebp-18],ecx
00432F94 |. >mov edx,dword ptr ss:[ebp-8]
00432F97 |. >rol edx,5
00432F9A |. >mov dword ptr ss:[ebp-8],edx
00432F9D |. >mov eax,dword ptr ss:[ebp-18]
00432FA0 |. >xor eax,dword ptr ss:[ebp-8]
00432FA3 |. >mov dword ptr ss:[ebp-18],eax
00432FA6 |. >mov ecx,dword ptr ss:[ebp-C]//取c3
00432FA9 |. >xor ecx,dword ptr ss:[ebp-8]//与c2异或
00432FAC |. >mov dword ptr ss:[ebp-C],ecx//替换c3
00432FAF |. >mov ecx,dword ptr ss:[ebp-8]
00432FB2 |. >mov edx,dword ptr ss:[ebp-18]
00432FB5 |. >rol edx,cl
00432FB7 |. >mov eax,dword ptr ss:[ebp-14]
00432FBA |. >add eax,edx
00432FBC |. >mov dword ptr ss:[ebp-14],eax
00432FBF |. >mov ecx,dword ptr ss:[ebp-20]
00432FC2 |. >mov edx,dword ptr ss:[ebp-C]
00432FC5 |. >add edx,dword ptr ds:[ecx+5C]
00432FC8 |. >mov dword ptr ss:[ebp-1C],edx
00432FCB |. >mov eax,dword ptr ss:[ebp-C]
00432FCE |. >rol eax,0D
00432FD1 |. >mov dword ptr ss:[ebp-C],eax
/////////////////////////////////////////////////////
00432FD4 |. >mov ecx,dword ptr ss:[ebp-20]
00432FD7 |. >mov edx,dword ptr ss:[ebp-C]
00432FDA |. >imul edx,dword ptr ds:[ecx+60]
00432FDE |. >mov dword ptr ss:[ebp-8],edx
00432FE1 |. >mov eax,dword ptr ss:[ebp-1C]
00432FE4 |. >and eax,1FF
00432FE9 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00432FF0 |. >mov dword ptr ss:[ebp-18],ecx
00432FF3 |. >mov edx,dword ptr ss:[ebp-8]
00432FF6 |. >rol edx,5
00432FF9 |. >mov dword ptr ss:[ebp-8],edx
00432FFC |. >mov ecx,dword ptr ss:[ebp-8]
00432FFF |. >mov eax,dword ptr ss:[ebp-1C]
00433002 |. >rol eax,cl
00433004 |. >mov ecx,dword ptr ss:[ebp-14]
00433007 |. >add ecx,eax
00433009 |. >mov dword ptr ss:[ebp-14],ecx
0043300C |. >mov edx,dword ptr ss:[ebp-18]
0043300F |. >xor edx,dword ptr ss:[ebp-8]
00433012 |. >mov dword ptr ss:[ebp-18],edx
00433015 |. >mov eax,dword ptr ss:[ebp-8]
00433018 |. >rol eax,5
0043301B |. >mov dword ptr ss:[ebp-8],eax
0043301E |. >mov ecx,dword ptr ss:[ebp-18]
00433021 |. >xor ecx,dword ptr ss:[ebp-8]
00433024 |. >mov dword ptr ss:[ebp-18],ecx
00433027 |. >mov edx,dword ptr ss:[ebp-10]
0043302A |. >xor edx,dword ptr ss:[ebp-8]
0043302D |. >mov dword ptr ss:[ebp-10],edx
00433030 |. >mov ecx,dword ptr ss:[ebp-8]
00433033 |. >mov eax,dword ptr ss:[ebp-18]
00433036 |. >rol eax,cl
00433038 |. >mov ecx,dword ptr ss:[ebp-4]
0043303B |. >add ecx,eax
0043303D |. >mov dword ptr ss:[ebp-4],ecx
//////////////////////////////////////////////////////////////
00433040 |. >mov edx,dword ptr ss:[ebp-20]
00433043 |. >mov eax,dword ptr ss:[ebp-10]
00433046 |. >add eax,dword ptr ds:[edx+64]
00433049 |. >mov dword ptr ss:[ebp-1C],eax
0043304C |. >mov ecx,dword ptr ss:[ebp-10]
0043304F |. >rol ecx,0D
00433052 |. >mov dword ptr ss:[ebp-10],ecx
00433055 |. >mov edx,dword ptr ss:[ebp-20]
00433058 |. >mov eax,dword ptr ss:[ebp-10]
0043305B |. >imul eax,dword ptr ds:[edx+68]
0043305F |. >mov dword ptr ss:[ebp-8],eax
00433062 |. >mov ecx,dword ptr ss:[ebp-1C]
00433065 |. >and ecx,1FF
0043306B |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433072 |. >mov dword ptr ss:[ebp-18],edx
00433075 |. >mov eax,dword ptr ss:[ebp-8]
00433078 |. >rol eax,5
0043307B |. >mov dword ptr ss:[ebp-8],eax
0043307E |. >mov ecx,dword ptr ss:[ebp-8]
00433081 |. >mov edx,dword ptr ss:[ebp-1C]
00433084 |. >rol edx,cl
00433086 |. >mov eax,dword ptr ss:[ebp-4]
00433089 |. >add eax,edx
0043308B |. >mov dword ptr ss:[ebp-4],eax
0043308E |. >mov ecx,dword ptr ss:[ebp-18]
00433091 |. >xor ecx,dword ptr ss:[ebp-8]
00433094 |. >mov dword ptr ss:[ebp-18],ecx
00433097 |. >mov edx,dword ptr ss:[ebp-8]
0043309A |. >rol edx,5
0043309D |. >mov dword ptr ss:[ebp-8],edx
004330A0 |. >mov eax,dword ptr ss:[ebp-18]
004330A3 |. >xor eax,dword ptr ss:[ebp-8]
004330A6 |. >mov dword ptr ss:[ebp-18],eax
004330A9 |. >mov ecx,dword ptr ss:[ebp-14]
004330AC |. >xor ecx,dword ptr ss:[ebp-8]
004330AF |. >mov dword ptr ss:[ebp-14],ecx
004330B2 |. >mov ecx,dword ptr ss:[ebp-8]
004330B5 |. >mov edx,dword ptr ss:[ebp-18]
004330B8 |. >rol edx,cl
004330BA |. >mov eax,dword ptr ss:[ebp-C]
004330BD |. >add eax,edx
004330BF |. >mov dword ptr ss:[ebp-C],eax
004330C2 |. >mov ecx,dword ptr ss:[ebp-20]
004330C5 |. >mov edx,dword ptr ss:[ebp-14]
004330C8 |. >add edx,dword ptr ds:[ecx+6C]
004330CB |. >mov dword ptr ss:[ebp-1C],edx
004330CE |. >mov eax,dword ptr ss:[ebp-14]
004330D1 |. >rol eax,0D
004330D4 |. >mov dword ptr ss:[ebp-14],eax
//////////////////////////////////////////////////////////////////
004330D7 |. >mov ecx,dword ptr ss:[ebp-20]
004330DA |. >mov edx,dword ptr ss:[ebp-14]
004330DD |. >imul edx,dword ptr ds:[ecx+70]
004330E1 |. >mov dword ptr ss:[ebp-8],edx
004330E4 |. >mov eax,dword ptr ss:[ebp-1C]
004330E7 |. >and eax,1FF
004330EC |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
004330F3 |. >mov dword ptr ss:[ebp-18],ecx
004330F6 |. >mov edx,dword ptr ss:[ebp-8]
004330F9 |. >rol edx,5
004330FC |. >mov dword ptr ss:[ebp-8],edx
004330FF |. >mov ecx,dword ptr ss:[ebp-8]
00433102 |. >mov eax,dword ptr ss:[ebp-1C]
00433105 |. >rol eax,cl
00433107 |. >mov ecx,dword ptr ss:[ebp-C]
0043310A |. >add ecx,eax
0043310C |. >mov dword ptr ss:[ebp-C],ecx
0043310F |. >mov edx,dword ptr ss:[ebp-18]
00433112 |. >xor edx,dword ptr ss:[ebp-8]
00433115 |. >mov dword ptr ss:[ebp-18],edx
00433118 |. >mov eax,dword ptr ss:[ebp-8]
0043311B |. >rol eax,5
0043311E |. >mov dword ptr ss:[ebp-8],eax
00433121 |. >mov ecx,dword ptr ss:[ebp-18]
00433124 |. >xor ecx,dword ptr ss:[ebp-8]
00433127 |. >mov dword ptr ss:[ebp-18],ecx
0043312A |. >mov edx,dword ptr ss:[ebp-4]
0043312D |. >xor edx,dword ptr ss:[ebp-8]
00433130 |. >mov dword ptr ss:[ebp-4],edx
00433133 |. >mov ecx,dword ptr ss:[ebp-8]
00433136 |. >mov eax,dword ptr ss:[ebp-18]
00433139 |. >rol eax,cl
0043313B |. >mov ecx,dword ptr ss:[ebp-10]
0043313E |. >add ecx,eax
00433140 |. >mov dword ptr ss:[ebp-10],ecx
///////////////////////////////////////////////////////
00433143 |. >mov edx,dword ptr ss:[ebp-20]
00433146 |. >mov eax,dword ptr ss:[ebp-4]
00433149 |. >add eax,dword ptr ds:[edx+74]
0043314C |. >mov dword ptr ss:[ebp-1C],eax
0043314F |. >mov ecx,dword ptr ss:[ebp-4]
00433152 |. >rol ecx,0D
00433155 |. >mov dword ptr ss:[ebp-4],ecx
00433158 |. >mov edx,dword ptr ss:[ebp-20]
0043315B |. >mov eax,dword ptr ss:[ebp-4]
0043315E |. >imul eax,dword ptr ds:[edx+78]
00433162 |. >mov dword ptr ss:[ebp-8],eax
00433165 |. >mov ecx,dword ptr ss:[ebp-1C]
00433168 |. >and ecx,1FF
0043316E |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433175 |. >mov dword ptr ss:[ebp-18],edx
00433178 |. >mov eax,dword ptr ss:[ebp-8]
0043317B |. >rol eax,5
0043317E |. >mov dword ptr ss:[ebp-8],eax
00433181 |. >mov ecx,dword ptr ss:[ebp-8]
00433184 |. >mov edx,dword ptr ss:[ebp-1C]
00433187 |. >rol edx,cl
00433189 |. >mov eax,dword ptr ss:[ebp-10]
0043318C |. >add eax,edx
0043318E |. >mov dword ptr ss:[ebp-10],eax
00433191 |. >mov ecx,dword ptr ss:[ebp-18]
00433194 |. >xor ecx,dword ptr ss:[ebp-8]
00433197 |. >mov dword ptr ss:[ebp-18],ecx
0043319A |. >mov edx,dword ptr ss:[ebp-8]
0043319D |. >rol edx,5
004331A0 |. >mov dword ptr ss:[ebp-8],edx
004331A3 |. >mov eax,dword ptr ss:[ebp-18]
004331A6 |. >xor eax,dword ptr ss:[ebp-8]
004331A9 |. >mov dword ptr ss:[ebp-18],eax
004331AC |. >mov ecx,dword ptr ss:[ebp-C]
004331AF |. >xor ecx,dword ptr ss:[ebp-8]
004331B2 |. >mov dword ptr ss:[ebp-C],ecx
004331B5 |. >mov ecx,dword ptr ss:[ebp-8]
004331B8 |. >mov edx,dword ptr ss:[ebp-18]
004331BB |. >rol edx,cl
004331BD |. >mov eax,dword ptr ss:[ebp-14]
004331C0 |. >add eax,edx
004331C2 |. >mov dword ptr ss:[ebp-14],eax
///////////////////////////////////////////////////////
004331C5 |. >mov ecx,dword ptr ss:[ebp-20]
004331C8 |. >mov edx,dword ptr ss:[ebp-C]
004331CB |. >add edx,dword ptr ds:[ecx+7C]
004331CE |. >mov dword ptr ss:[ebp-1C],edx
004331D1 |. >mov eax,dword ptr ss:[ebp-C]
004331D4 |. >rol eax,0D
004331D7 |. >mov dword ptr ss:[ebp-C],eax
004331DA |. >mov ecx,dword ptr ss:[ebp-20]
004331DD |. >mov edx,dword ptr ss:[ebp-C]
004331E0 |. >imul edx,dword ptr ds:[ecx+80]
004331E7 |. >mov dword ptr ss:[ebp-8],edx
004331EA |. >mov eax,dword ptr ss:[ebp-1C]
004331ED |. >and eax,1FF
004331F2 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
004331F9 |. >mov dword ptr ss:[ebp-18],ecx
004331FC |. >mov edx,dword ptr ss:[ebp-8]
004331FF |. >rol edx,5
00433202 |. >mov dword ptr ss:[ebp-8],edx
00433205 |. >mov ecx,dword ptr ss:[ebp-8]
00433208 |. >mov eax,dword ptr ss:[ebp-1C]
0043320B |. >rol eax,cl
0043320D |. >mov ecx,dword ptr ss:[ebp-14]
00433210 |. >add ecx,eax
00433212 |. >mov dword ptr ss:[ebp-14],ecx
00433215 |. >mov edx,dword ptr ss:[ebp-18]
00433218 |. >xor edx,dword ptr ss:[ebp-8]
0043321B |. >mov dword ptr ss:[ebp-18],edx
0043321E |. >mov eax,dword ptr ss:[ebp-8]
00433221 |. >rol eax,5
00433224 |. >mov dword ptr ss:[ebp-8],eax
00433227 |. >mov ecx,dword ptr ss:[ebp-18]
0043322A |. >xor ecx,dword ptr ss:[ebp-8]
0043322D |. >mov dword ptr ss:[ebp-18],ecx
00433230 |. >mov edx,dword ptr ss:[ebp-10]
00433233 |. >xor edx,dword ptr ss:[ebp-8]
00433236 |. >mov dword ptr ss:[ebp-10],edx
00433239 |. >mov ecx,dword ptr ss:[ebp-8]
0043323C |. >mov eax,dword ptr ss:[ebp-18]
0043323F |. >rol eax,cl
00433241 |. >mov ecx,dword ptr ss:[ebp-4]
00433244 |. >add ecx,eax
00433246 |. >mov dword ptr ss:[ebp-4],ecx
//////////////////////////////////////////////
00433249 |. >mov edx,dword ptr ss:[ebp-20]
0043324C |. >mov eax,dword ptr ss:[ebp-10]
0043324F |. >add eax,dword ptr ds:[edx+84]
00433255 |. >mov dword ptr ss:[ebp-1C],eax
00433258 |. >mov ecx,dword ptr ss:[ebp-10]
0043325B |. >rol ecx,0D
0043325E |. >mov dword ptr ss:[ebp-10],ecx
00433261 |. >mov edx,dword ptr ss:[ebp-20]
00433264 |. >mov eax,dword ptr ss:[ebp-10]
00433267 |. >imul eax,dword ptr ds:[edx+88]
0043326E |. >mov dword ptr ss:[ebp-8],eax
00433271 |. >mov ecx,dword ptr ss:[ebp-1C]
00433274 |. >and ecx,1FF
0043327A |. >mov edx,dword ptr ds:[ecx*4+45B3C0]
00433281 |. >mov dword ptr ss:[ebp-18],edx
00433284 |. >mov eax,dword ptr ss:[ebp-8]
00433287 |. >rol eax,5
0043328A |. >mov dword ptr ss:[ebp-8],eax
0043328D |. >mov ecx,dword ptr ss:[ebp-8]
00433290 |. >mov edx,dword ptr ss:[ebp-1C]
00433293 |. >rol edx,cl
00433295 |. >mov eax,dword ptr ss:[ebp-4]
00433298 |. >add eax,edx
0043329A |. >mov dword ptr ss:[ebp-4],eax
0043329D |. >mov ecx,dword ptr ss:[ebp-18]
004332A0 |. >xor ecx,dword ptr ss:[ebp-8]
004332A3 |. >mov dword ptr ss:[ebp-18],ecx
004332A6 |. >mov edx,dword ptr ss:[ebp-8]
004332A9 |. >rol edx,5
004332AC |. >mov dword ptr ss:[ebp-8],edx
004332AF |. >mov eax,dword ptr ss:[ebp-18]
004332B2 |. >xor eax,dword ptr ss:[ebp-8]
004332B5 |. >mov dword ptr ss:[ebp-18],eax
004332B8 |. >mov ecx,dword ptr ss:[ebp-14]
004332BB |. >xor ecx,dword ptr ss:[ebp-8]
004332BE |. >mov dword ptr ss:[ebp-14],ecx
004332C1 |. >mov ecx,dword ptr ss:[ebp-8]
004332C4 |. >mov edx,dword ptr ss:[ebp-18]
004332C7 |. >rol edx,cl
004332C9 |. >mov eax,dword ptr ss:[ebp-C]
004332CC |. >add eax,edx
004332CE |. >mov dword ptr ss:[ebp-C],eax
/////////////////////////////////////////////////
004332D1 |. >mov ecx,dword ptr ss:[ebp-20]
004332D4 |. >mov edx,dword ptr ss:[ebp-14]
004332D7 |. >add edx,dword ptr ds:[ecx+8C]
004332DD |. >mov dword ptr ss:[ebp-1C],edx
004332E0 |. >mov eax,dword ptr ss:[ebp-14]
004332E3 |. >rol eax,0D
004332E6 |. >mov dword ptr ss:[ebp-14],eax
004332E9 |. >mov ecx,dword ptr ss:[ebp-20]
004332EC |. >mov edx,dword ptr ss:[ebp-14]
004332EF |. >imul edx,dword ptr ds:[ecx+90]
004332F6 |. >mov dword ptr ss:[ebp-8],edx
004332F9 |. >mov eax,dword ptr ss:[ebp-1C]
004332FC |. >and eax,1FF
00433301 |. >mov ecx,dword ptr ds:[eax*4+45B3C0]
00433308 |. >mov dword ptr ss:[ebp-18],ecx
0043330B |. >mov edx,dword ptr ss:[ebp-8]
0043330E |. >rol edx,5
00433311 |. >mov dword ptr ss:[ebp-8],edx
00433314 |. >mov ecx,dword ptr ss:[ebp-8]
00433317 |. >mov eax,dword ptr ss:[ebp-1C]
0043331A |. >rol eax,cl
0043331C |. >mov ecx,dword ptr ss:[ebp-C]
0043331F |. >add ecx,eax
00433321 |. >mov dword ptr ss:[ebp-C],ecx
00433324 |. >mov edx,dword ptr ss:[ebp-18]
00433327 |. >xor edx,dword ptr ss:[ebp-8]
0043332A |. >mov dword ptr ss:[ebp-18],edx
0043332D |. >mov eax,dword ptr ss:[ebp-8]
00433330 |. >rol eax,5
00433333 |. >mov dword ptr ss:[ebp-8],eax
00433336 |. >mov ecx,dword ptr ss:[ebp-18]
00433339 |. >xor ecx,dword ptr ss:[ebp-8]
0043333C |. >mov dword ptr ss:[ebp-18],ecx
0043333F |. >mov edx,dword ptr ss:[ebp-4]
00433342 |. >xor edx,dword ptr ss:[ebp-8]
00433345 |. >mov dword ptr ss:[ebp-4],edx
00433348 |. >mov ecx,dword ptr ss:[ebp-8]
0043334B |. >mov eax,dword ptr ss:[ebp-18]
0043334E |. >rol eax,cl
00433350 |. >mov ecx,dword ptr ss:[ebp-10]
00433353 |. >add ecx,eax
00433355 |. >mov dword ptr ss:[ebp-10],ecx
/////////////////////////////////////////////////////////////////////1
00433358 |>mov edx,dword ptr ss:[ebp-4] ; 取c1
0043335B |>rol edx,8 ; 循环左移0x8
0043335E |>mov dword ptr ss:[ebp-8],edx ; 替换c2
00433361 |>mov eax,dword ptr ss:[ebp-4] ; 取c1
00433364 |>and eax,0FF ; 取低16位
00433369 |>mov ecx,dword ptr ss:[ebp-C] ; 取c3
0043336C |>xor ecx,dword ptr ds:[eax*4+45B7C0] ; 与一数据异或
00433373 |>mov dword ptr ss:[ebp-C],ecx ; 替换c3
00433376 |>mov edx,dword ptr ss:[ebp-8] ; 取c2
00433379 |>and edx,0FF ; 取低16位
0043337F |>mov eax,dword ptr ss:[ebp-10] ; 取c4
00433382 |>sub eax,dword ptr ds:[edx*4+45B3C0] ; 与一数据减
00433389 |>mov dword ptr ss:[ebp-10],eax ; 替换c4
0043338C |>mov ecx,dword ptr ss:[ebp-4] ; 取c1
0043338F |>rol ecx,10 ; 循环左移0x10
00433392 |>mov dword ptr ss:[ebp-8],ecx ; 替换c2
00433395 |>mov edx,dword ptr ss:[ebp-4] ; 取c1
00433398 |>rol edx,18 ; 循环左移0x18
0043339B |>mov dword ptr ss:[ebp-4],edx ; 替换c1
0043339E |>mov eax,dword ptr ss:[ebp-8] ; 取c2
004333A1 |>and eax,0FF ; 取低16位
004333A6 |>mov ecx,dword ptr ss:[ebp-14] ; 取c5
004333A9 |>sub ecx,dword ptr ds:[eax*4+45B7C0] ; 与一数据减
004333B0 |>mov dword ptr ss:[ebp-14],ecx ; 替换c5
004333B3 |>mov edx,dword ptr ss:[ebp-4] ; 取c1
004333B6 |>and edx,0FF ; 取低16位
004333BC |>mov eax,dword ptr ss:[ebp-14] ; 取c5
004333BF |>xor eax,dword ptr ds:[edx*4+45B3C0] ; 与一数据异或
004333C6 |>mov dword ptr ss:[ebp-14],eax ; 替换c5
004333C9 |>mov ecx,dword ptr ss:[ebp-C] ; ///////////////2
///////////////////////////////////////////////////////////////////
下面7个变换几乎都是差不多的分析,不做过多的说明了
反正觉得这个软件就是很无聊
004333CC |>rol ecx,8
004333CF |>mov dword ptr ss:[ebp-8],ecx
004333D2 |>mov edx,dword ptr ss:[ebp-C]
004333D5 |>and edx,0FF
004333DB |>mov eax,dword ptr ss:[ebp-10]
004333DE |>xor eax,dword ptr ds:[edx*4+45B7C0]
004333E5 |>mov dword ptr ss:[ebp-10],eax
004333E8 |>mov ecx,dword ptr ss:[ebp-8]
004333EB |>and ecx,0FF
004333F1 |>mov edx,dword ptr ss:[ebp-14]
004333F4 |>sub edx,dword ptr ds:[ecx*4+45B3C0]
004333FB |>mov dword ptr ss:[ebp-14],edx
004333FE |>mov eax,dword ptr ss:[ebp-C]
00433401 |>rol eax,10
00433404 |>mov dword ptr ss:[ebp-8],eax
00433407 |>mov ecx,dword ptr ss:[ebp-C]
0043340A |>rol ecx,18
0043340D |>mov dword ptr ss:[ebp-C],ecx
00433410 |>mov edx,dword ptr ss:[ebp-8]
00433413 |>and edx,0FF
00433419 |>mov eax,dword ptr ss:[ebp-4]
0043341C |>sub eax,dword ptr ds:[edx*4+45B7C0]
00433423 |>mov dword ptr ss:[ebp-4],eax
00433426 |>mov ecx,dword ptr ss:[ebp-C]
00433429 |>and ecx,0FF
0043342F |>mov edx,dword ptr ss:[ebp-4]
00433432 |>xor edx,dword ptr ds:[ecx*4+45B3C0]
00433439 |>mov dword ptr ss:[ebp-4],edx////////////////////////3
0043343C |>mov eax,dword ptr ss:[ebp-10]
0043343F |>sub eax,dword ptr ss:[ebp-C]
00433442 |>mov dword ptr ss:[ebp-10],eax
00433445 |>mov ecx,dword ptr ss:[ebp-10]
00433448 |>rol ecx,8
0043344B |>mov dword ptr ss:[ebp-8],ecx
0043344E |>mov edx,dword ptr ss:[ebp-10]
00433451 |>and edx,0FF
00433457 |>mov eax,dword ptr ss:[ebp-14]
0043345A |>xor eax,dword ptr ds:[edx*4+45B7C0]
00433461 |>mov dword ptr ss:[ebp-14],eax
00433464 |>mov ecx,dword ptr ss:[ebp-8]
00433467 |>and ecx,0FF
0043346D |>mov edx,dword ptr ss:[ebp-4]
00433470 |>sub edx,dword ptr ds:[ecx*4+45B3C0]
00433477 |>mov dword ptr ss:[ebp-4],edx
0043347A |>mov eax,dword ptr ss:[ebp-10]
0043347D |>rol eax,10
00433480 |>mov dword ptr ss:[ebp-8],eax
00433483 |>mov ecx,dword ptr ss:[ebp-10]
00433486 |>rol ecx,18
00433489 |>mov dword ptr ss:[ebp-10],ecx
0043348C |>mov edx,dword ptr ss:[ebp-8]
0043348F |>and edx,0FF
00433495 |>mov eax,dword ptr ss:[ebp-C]
00433498 |>sub eax,dword ptr ds:[edx*4+45B7C0]
0043349F |>mov dword ptr ss:[ebp-C],eax
004334A2 |>mov ecx,dword ptr ss:[ebp-10]
004334A5 |>and ecx,0FF
004334AB |>mov edx,dword ptr ss:[ebp-C]
004334AE |>xor edx,dword ptr ds:[ecx*4+45B3C0]
004334B5 |>mov dword ptr ss:[ebp-C],edx//////////////////////////4
004334B8 |>mov eax,dword ptr ss:[ebp-14]
004334BB |>sub eax,dword ptr ss:[ebp-4]
004334BE |>mov dword ptr ss:[ebp-14],eax
004334C1 |>mov ecx,dword ptr ss:[ebp-14]
004334C4 |>rol ecx,8
004334C7 |>mov dword ptr ss:[ebp-8],ecx
004334CA |>mov edx,dword ptr ss:[ebp-14]
004334CD |>and edx,0FF
004334D3 |>mov eax,dword ptr ss:[ebp-4]
004334D6 |>xor eax,dword ptr ds:[edx*4+45B7C0]
004334DD |>mov dword ptr ss:[ebp-4],eax
004334E0 |>mov ecx,dword ptr ss:[ebp-8]
004334E3 |>and ecx,0FF
004334E9 |>mov edx,dword ptr ss:[ebp-C]
004334EC |>sub edx,dword ptr ds:[ecx*4+45B3C0]
004334F3 |>mov dword ptr ss:[ebp-C],edx
004334F6 |>mov eax,dword ptr ss:[ebp-14]
004334F9 |>rol eax,10
004334FC |>mov dword ptr ss:[ebp-8],eax
004334FF |>mov ecx,dword ptr ss:[ebp-14]
00433502 |>rol ecx,18
00433505 |>mov dword ptr ss:[ebp-14],ecx
00433508 |>mov edx,dword ptr ss:[ebp-8]
0043350B |>and edx,0FF
00433511 |>mov eax,dword ptr ss:[ebp-10]
00433514 |>sub eax,dword ptr ds:[edx*4+45B7C0]
0043351B |>mov dword ptr ss:[ebp-10],eax
0043351E |>mov ecx,dword ptr ss:[ebp-14]
00433521 |>and ecx,0FF
00433527 |>mov edx,dword ptr ss:[ebp-10]
0043352A |>xor edx,dword ptr ds:[ecx*4+45B3C0]
00433531 |>mov dword ptr ss:[ebp-10],edx
00433534 |>mov eax,dword ptr ss:[ebp-4] //////////////////////////5
00433537 |>rol eax,8
0043353A |>mov dword ptr ss:[ebp-8],eax
0043353D |>mov ecx,dword ptr ss:[ebp-4]
00433540 |>and ecx,0FF
00433546 |>mov edx,dword ptr ss:[ebp-C]
00433549 |>xor edx,dword ptr ds:[ecx*4+45B7C0]
00433550 |>mov dword ptr ss:[ebp-C],edx
00433553 |>mov eax,dword ptr ss:[ebp-8]
00433556 |>and eax,0FF
0043355B |>mov ecx,dword ptr ss:[ebp-10]
0043355E |>sub ecx,dword ptr ds:[eax*4+45B3C0]
00433565 |>mov dword ptr ss:[ebp-10],ecx
00433568 |>mov edx,dword ptr ss:[ebp-4]
0043356B |>rol edx,10
0043356E |>mov dword ptr ss:[ebp-8],edx
00433571 |>mov eax,dword ptr ss:[ebp-4]
00433574 |>rol eax,18
00433577 |>mov dword ptr ss:[ebp-4],eax
0043357A |>mov ecx,dword ptr ss:[ebp-8]
0043357D |>and ecx,0FF
00433583 |>mov edx,dword ptr ss:[ebp-14]
00433586 |>sub edx,dword ptr ds:[ecx*4+45B7C0]
0043358D |>mov dword ptr ss:[ebp-14],edx
00433590 |>mov eax,dword ptr ss:[ebp-4]
00433593 |>and eax,0FF
00433598 |>mov ecx,dword ptr ss:[ebp-14]
0043359B |>xor ecx,dword ptr ds:[eax*4+45B3C0]
004335A2 |>mov dword ptr ss:[ebp-14],ecx ///////////////////////////////6
004335A5 |>mov edx,dword ptr ss:[ebp-C]
004335A8 |>rol edx,8
004335AB |>mov dword ptr ss:[ebp-8],edx
004335AE |>mov eax,dword ptr ss:[ebp-C]
004335B1 |>and eax,0FF
004335B6 |>mov ecx,dword ptr ss:[ebp-10]
004335B9 |>xor ecx,dword ptr ds:[eax*4+45B7C0]
004335C0 |>mov dword ptr ss:[ebp-10],ecx
004335C3 |>mov edx,dword ptr ss:[ebp-8]
004335C6 |>and edx,0FF
004335CC |>mov eax,dword ptr ss:[ebp-14]
004335CF |>sub eax,dword ptr ds:[edx*4+45B3C0]
004335D6 |>mov dword ptr ss:[ebp-14],eax
004335D9 |>mov ecx,dword ptr ss:[ebp-C]
004335DC |>rol ecx,10
004335DF |>mov dword ptr ss:[ebp-8],ecx
004335E2 |>mov edx,dword ptr ss:[ebp-C]
004335E5 |>rol edx,18
004335E8 |>mov dword ptr ss:[ebp-C],edx
004335EB |>mov eax,dword ptr ss:[ebp-8]
004335EE |>and eax,0FF
004335F3 |>mov ecx,dword ptr ss:[ebp-4]
004335F6 |>sub ecx,dword ptr ds:[eax*4+45B7C0]
004335FD |>mov dword ptr ss:[ebp-4],ecx
00433600 |>mov edx,dword ptr ss:[ebp-C]
00433603 |>and edx,0FF
00433609 |>mov eax,dword ptr ss:[ebp-4]
0043360C |>xor eax,dword ptr ds:[edx*4+45B3C0]
00433613 |>mov dword ptr ss:[ebp-4],eax /////////////////////////////7
00433616 |>mov ecx,dword ptr ss:[ebp-10]
00433619 |>sub ecx,dword ptr ss:[ebp-C]
0043361C |>mov dword ptr ss:[ebp-10],ecx
0043361F |>mov edx,dword ptr ss:[ebp-10]
00433622 |>rol edx,8
00433625 |>mov dword ptr ss:[ebp-8],edx
00433628 |>mov eax,dword ptr ss:[ebp-10]
0043362B |>and eax,0FF
00433630 |>mov ecx,dword ptr ss:[ebp-14]
00433633 |>xor ecx,dword ptr ds:[eax*4+45B7C0]
0043363A |>mov dword ptr ss:[ebp-14],ecx
0043363D |>mov edx,dword ptr ss:[ebp-8]
00433640 |>and edx,0FF
00433646 |>mov eax,dword ptr ss:[ebp-4]
00433649 |>sub eax,dword ptr ds:[edx*4+45B3C0]
00433650 |>mov dword ptr ss:[ebp-4],eax
00433653 |>mov ecx,dword ptr ss:[ebp-10]
00433656 |>rol ecx,10
00433659 |>mov dword ptr ss:[ebp-8],ecx
0043365C |>mov edx,dword ptr ss:[ebp-10]
0043365F |>rol edx,18
00433662 |>mov dword ptr ss:[ebp-10],edx
00433665 |>mov eax,dword ptr ss:[ebp-8]
00433668 |>and eax,0FF
0043366D |>mov ecx,dword ptr ss:[ebp-C]
00433670 |>sub ecx,dword ptr ds:[eax*4+45B7C0]
00433677 |>mov dword ptr ss:[ebp-C],ecx
0043367A |>mov edx,dword ptr ss:[ebp-10]
0043367D |>and edx,0FF
00433683 |>mov eax,dword ptr ss:[ebp-C]
00433686 |>xor eax,dword ptr ds:[edx*4+45B3C0]
0043368D |>mov dword ptr ss:[ebp-C],eax //////////////////8
00433690 |>mov ecx,dword ptr ss:[ebp-14]
00433693 |>sub ecx,dword ptr ss:[ebp-4]
00433696 |>mov dword ptr ss:[ebp-14],ecx
00433699 |>mov edx,dword ptr ss:[ebp-14]
0043369C |>rol edx,8
0043369F |>mov dword ptr ss:[ebp-8],edx
004336A2 |>mov eax,dword ptr ss:[ebp-14]
004336A5 |>and eax,0FF
004336AA |>mov ecx,dword ptr ss:[ebp-4]
004336AD |>xor ecx,dword ptr ds:[eax*4+45B7C0]
004336B4 |>mov dword ptr ss:[ebp-4],ecx
004336B7 |>mov edx,dword ptr ss:[ebp-8]
004336BA |>and edx,0FF
004336C0 |>mov eax,dword ptr ss:[ebp-C]
004336C3 |>sub eax,dword ptr ds:[edx*4+45B3C0]
004336CA |>mov dword ptr ss:[ebp-C],eax
004336CD |>mov ecx,dword ptr ss:[ebp-14]
004336D0 |>rol ecx,10
004336D3 |>mov dword ptr ss:[ebp-8],ecx
004336D6 |>mov edx,dword ptr ss:[ebp-14]
004336D9 |>rol edx,18
004336DC |>mov dword ptr ss:[ebp-14],edx
004336DF |>mov eax,dword ptr ss:[ebp-8]
004336E2 |>and eax,0FF
004336E7 |>mov ecx,dword ptr ss:[ebp-10]
004336EA |>sub ecx,dword ptr ds:[eax*4+45B7C0]
004336F1 |>mov dword ptr ss:[ebp-10],ecx
004336F4 |>mov edx,dword ptr ss:[ebp-14]
004336F7 |>and edx,0FF
004336FD |>mov eax,dword ptr ss:[ebp-10]
00433700 |>xor eax,dword ptr ds:[edx*4+45B3C0]
00433707 |>mov dword ptr ss:[ebp-10],eax
/////////////////////////////////////////////////////////////结束
终于到头了,搞了一通宵,终于看见了太阳
0043370A |>mov ecx,dword ptr ss:[ebp-20]
0043370D |>mov edx,dword ptr ss:[ebp-4]
00433710 |>sub edx,dword ptr ds:[ecx+94]
00433716 |>mov eax,dword ptr ss:[ebp+C]
00433719 |>mov dword ptr ds:[eax],edx //开始生成真正的第一部分注册码
0043371B |>mov ecx,dword ptr ss:[ebp-20]
0043371E |>mov edx,dword ptr ss:[ebp-C]
00433721 |>sub edx,dword ptr ds:[ecx+98]
00433727 |>mov eax,dword ptr ss:[ebp+C]
0043372A |>mov dword ptr ds:[eax+4],edx //这里是第二部分注册码
0043372D |>mov ecx,dword ptr ss:[ebp-20]
00433730 |>mov edx,dword ptr ss:[ebp-10]
00433733 |>sub edx,dword ptr ds:[ecx+9C]
00433739 |>mov eax,dword ptr ss:[ebp+C]
0043373C |>mov dword ptr ds:[eax+8],edx //这里是第三部分
0043373F |>mov ecx,dword ptr ss:[ebp-20]
00433742 |>mov edx,dword ptr ss:[ebp-14]
00433745 |>sub edx,dword ptr ds:[ecx+A0]
0043374B |>mov eax,dword ptr ss:[ebp+C]
0043374E |>mov dword ptr ds:[eax+C],edx //这里是第四部分
00433751 |>mov esp,ebp
00433753 |>pop ebp
00433754 \>retn 8
总共生成32个字符,从这里返回后就开始进行比较。没有什么可以看的,就是只用
简单的strcmp这个函数来进行校对。
void main()
{
char list1[]="\xD0\xB3\x4C\x5D\x57\xC8\xF9\xEC\x39\xA7\x4E\x7D\x8D\x9D\x2C\xAC\xAA\xE0\xC4\xA7"
"\x8B\x90\x41\x72\xCF\xB3\x10\x76\x4F\x6F\xFA\x17\xBB\x6D\x73\x3A\xAF\x8E\x44\x1F"
"\xF9\x3F\x30\x7E\xBF\x23\x8B\xCA\x71\x82\xFF\x1F\xD7\x42\xA0\xEF\x11\x10\xC8\x15"
"\x0F\x88\x94\x7F\x68\x97\xAC\xA6\xAF\xA0\x7B\x4A\x7C\x8C\x35\xBA\x5F\x37\x41\xEC"
"\x1B\x3E\x5F\x0C\x9F\x28\x3B\x15\x02\x11\x4B\x37\x3F\x5C\x40\x44\x9C\xE8\xFA\x85"
"\x07\x89\x0B\x18\xBC\x6B\x76\x7B\xFB\x16\xF5\x13\x02\x25\x4A\xA8\x2F\x39\x52\xC0"
"\x9B\x5A\xE6\x4C\x33\xE5\x26\x5D\xFF\x26\x94\xCC\x43\xF0\x28\xB8\xEC\x68\x77\xE7"
"\x77\x2A\x86\x9C\x84\x65\x05\x7C\x52\xA4\xF0\xCC\xC5\x99\xA6\x4B\x3A\xCE\x42\x04";
char list2[]="\x79\xC4\xD0\x09\xE0\xFF\xC8\x28\x39\x6C\xAA\x84\x87\x72\xAD\x9D\xE3\x9B\xFF\x7D"
"\x61\x83\x26\xD4\xD4\xA1\x6D\xC9\x93\xCC\x74\x79\x2E\x58\xD0\x85\x05\x57\x4B\x2A"
"\x62\x6A\xA1\x1C\x9D\x27\xBD\xC3\xE5\x25\x1F\x0F\x2F\x37\x60\x51\xFB\xC1\x95\xC6"
"\xE4\xF1\x7F\x4D\xF4\x6B\x5F\xAE\x46\xEE\x72\x0D\x8A\xDE\x23\xFF\x83\x8E\xCF\xB1"
"\xE2\x02\x49\xF1\x42\x1E\x98\x3E\xB6\x3E\xF5\x8B\xAC\xF8\x4B\x7F\x83\x1F\x63\x83"
"\x05\x02\x97\x25\x84\xE7\xAF\x76\xD4\x31\x79\x3A\x50\x64\x84\x4F\xF6\xC3\x64\x5C"
"\x18\x5F\x0A\x21\x26\x6A\x98\xC6\x26\xE8\xF4\x28\x1C\xA8\x60\x3A\x64\xA6\x40\xD3"
"\xC4\x20\xA8\x7E\xC5\x87\x66\x52\x2B\xD1\xDD\x7E\x1D\x1D\xA1\x32\x86\xF0\x9E\x9C"
"\x31\xE8\xF6\x80\xAD\x04\x6F\xAB\x53\x9B\xFB\x56\x5C\x09\x2E\x8B\xAE\x56\x85\xB6"
"\x0D\x0B\x25\xD2\x21\x77\x4A\x29\x53\xB2\x1F\xE2\x49\x67\x13\xAE\x86\xAE\x2A\xE8"
"\x04\x51\x36\x93\x66\x4A\x40\x99\xDC\x84\xA7\x78\x4B\xA8\x9B\xB6\x93\x67\x04\x04"
"\x1E\x5C\xDB\x23\xD6\xE1\xCA\x46\x34\x81\xE2\x2F\x42\x39\x22\x5A\x5B\xCD\x63\x18"
"\xE3\xC6\x90\xC1\x46\xB8\xDF\x07\x16\x88\xB8\x6E\x4A\xCC\x0D\x2D\x59\xAE\xCC\xA4"
"\x0D\x67\x98\x37\x93\x94\xFA\xCB\x45\x1D\x48\x4F\xA8\x8C\xFC\xEA\xD6\x29\x11\xDB"
"\x20\x9E\x44\xB0\xFB\x07\x54\x0F\xA8\xD9\x67\x61\x63\x57\xF4\xD1\xC3\x96\xAA\x4D"
"\x58\x59\xEC\x3B\x14\xA0\xAB\xAB\x01\xD2\xCC\xB6\x9F\x27\xD6\x38\x15\x22\x68\x02"
"\xD5\x6C\x37\x8F\x7E\x23\x2C\x09\x93\x65\xC5\xBF\x2C\x9D\x88\x32\x95\x3E\x4B\x85"
"\x43\x9B\xBB\x05\xCD\x5D\xCD\x7D\x6C\x92\x2E\xA0\xE5\x27\xE5\xFA\x30\xC3\xA1\x36"
"\xAE\xE1\x12\x34\x62\xF4\x57\xF2\x71\x1D\x4F\x3C\x09\xE8\xA2\x30\x51\xF5\xE5\x68"
"\x44\xBA\x61\x9C\xB8\x0A\xED\x5D\xC8\x09\xCE\x75\x3E\xF9\x54\x96\xCA\x0C\x8C\x69"
"\xE4\xB3\x3C\x24\x97\x2B\x06\x2B\x9E\x8D\x3B\x0F\xDF\x50\xE0\x00\x66\x61\x5D\xFC"
"\x88\x92\x5F\xE3\x0D\x55\x79\xC0\xE8\xAE\x91\x05\x74\x1E\x53\x8E\x78\x35\xFE\x75"
"\x9A\x82\x6D\x2F\xAE\x21\x0B\xF6\x8D\xEB\xE8\x95\x6B\x48\x99\x66\x9B\x7D\x1D\x90"
"\x31\x6E\x6D\xFD\xEF\xAC\x90\x10\xD8\x0D\x67\xE0\x92\xE6\xB2\xDA\x65\x43\x6D\xCD"
"\x14\x35\x39\xE5\xF0\x45\xF3\x3A\x4D\xFC\x41\x62\xA3\xA3\x0D\x46\x29\x37\xCF\x7B"
"\xE0\xD1\xF1\x8B\x70\xC0\xAA\x14\x55\xED\x87\x15\x3E\x7D\xFD\x3A\x01\x9E\xF2\xD2"
"\xF6\xD1\xA9\x29\x53\x0C\xB1\xEF\x0F\x87\x3B\xCF\x5C\x93\x14\xB4\xED\x65\x44\x66"
"\xC7\xCA\x4A\x02\xC1\x44\xA7\x59\xA7\x36\x29\x1D\xA6\x0A\x58\xDC\xA8\x4C\x57\xCF"
"\x10\x7A\x0A\x04\x07\x18\xD8\x6C\x4C\xBE\x98\x8A\x63\xA0\xCE\xAC\xB5\x92\x3E\xC3"
"\x3D\xE0\xE0\xD1\x7E\x51\x22\xB3\x13\xBD\x92\x20\x4A\x2C\x6B\x38\x58\xDD\xE8\x52"
"\xFB\x6D\x65\x58\x71\x03\x82\x50\x96\x18\x81\x41\x7E\xEF\x37\xE3\x19\xB1\x9F\xD3"
"\xF6\x0D\x7F\xC9\x1B\xA0\xFE\x68\xE5\xA6\x50\xA1\x62\x89\x25\x55\x1B\xF4\x6F\xEB"
"\x7A\xCD\xC9\xD7\x9E\xCD\x19\xA6\x76\x95\xF0\xBC\x73\xC0\x72\x26\x3C\xFB\x03\xF0"
"\x0B\xA5\xB7\x4A\x6A\x12\x84\x14\xB1\xA9\x7B\x48\xC6\xC9\x4F\xA6\x49\x7D\x95\xF6"
"\x75\x6A\xB0\x38\xCD\x5F\x80\xDD\xCF\x94\xD0\x63\x9E\x99\x1C\xF5\x43\xD3\xA4\x1A"
"\x94\x52\x49\xB8\x99\x8E\x9F\xCE\x70\xD7\xFC\xBF\xCC\x75\xC2\xC7\xA7\x53\x84\x37"
"\x33\xBE\x21\x7B\xBD\x41\x7F\x39\x31\xD1\x94\x4E\x98\x1F\xCC\x92\x51\xEA\x15\x59"
"\xB7\x61\xF8\x99\x88\x0A\x98\xC9\x5F\xFD\x74\x1D\xF8\x95\xA4\xB0\xD0\xEE\x4D\x61"
"\xEA\x8E\x77\xB5\x2D\x79\x41\x59\xF8\xC1\x90\xFA\xB4\x24\xF8\x33\x72\x53\x96\xC4"
"\x50\xD5\xF6\x3F\xC0\xFE\xA5\x4C\x64\xE9\x30\x86\xD6\xBB\x3F\x5B\x48\x6A\xA2\x7D"
"\x1A\x23\x03\xB2\x14\x75\x29\x04\x06\x93\x63\x2D\x49\x31\xB1\x2E\x72\x52\xA4\x16"
"\xA0\x59\x24\x53\x72\x48\x5F\x8E\xD9\xC7\x66\xF9\xC0\x8D\x12\x07\x62\xDB\x44\x0D"
"\x2D\xD5\xC8\xAF\x31\x61\x31\x06\xCE\xE7\x38\xD8\x00\x1D\xC4\x1B\x0F\x8C\x2E\x3A"
"\x7E\x83\x83\xEA\x7D\x73\x84\xB9\x91\x48\xBA\x13\x49\xB9\xF8\xC4\xB3\xAC\xD6\xA6"
"\xCE\xCD\x15\xA2\x8B\x83\x59\x83\x31\xAA\xD1\x6B\x52\xDD\x79\xF5\x93\x3F\xB9\x21"
"\x81\x67\x17\xF5\xDE\xFD\x7D\x18\x76\xEB\x4A\xE9\x54\xFD\x38\x2B\xDA\xE1\x1D\x43"
"\x25\x48\x39\xAB\x8F\x04\xD3\x9A\xAA\x32\xEA\xDF\xE3\x73\x94\x65\x63\x78\x3F\x62"
"\x59\x6C\x34\xF3\x85\xB6\x3A\xAB\x0B\xD9\x49\x33\x3E\x44\x56\x6B\xF8\x01\xDE\xC6"
"\xC0\x1F\x42\x8D\x0C\xD1\x0E\x9B\xE9\x01\xF1\x88\x29\xF0\xC1\x54\x7B\xD5\xEA\x7D"
"\x26\xA4\x7B\x8D\x8A\x17\xF5\x4C\xCA\x7C\x1A\x55\x08\x5F\x9A\x1A\xB9\x51\xD6\xFC"
"\x82\x51\x60\x25\xC3\xC6\x1F\xE1\x76\x96\xFD\xB6\x27\x30\x7B\x33\x14\xEB\xC8\xB7"
"\x30\xD0\x5F\x9E\x54\xE3\x57\x6B\xF7\x3C\x91\xAD\x8D\x68\x16\x7E\x69\x2A\x87\x58"
"\xDF\xC7\x2F\x2C\xC6\xCC\x89\xE3\xF1\x8D\x73\x30\x34\xA7\x24\x08\x8B\x7A\x79\xE1"
"\x7B\xD5\xA8\xA4\x3B\x19\x5D\x5B\x9B\x30\xA8\xC8\x78\xA9\xF9\x73\x32\x8D\x39\x73"
"\x3E\x57\x59\x0F\x03\x2B\xDF\xE9\xC8\xB6\xA5\xE8\x04\x07\x8D\x84\xC2\x93\xDF\x98"
"\xC3\x1D\x0A\x72\x9A\x25\x4F\x68\x48\xA8\x3B\x94\x52\x01\x37\xA6\xA3\x5E\x3B\x86"
"\x8B\x97\x7B\xD1\xEF\x58\x9B\x6D\xD4\x0D\x70\x0A\xBF\x36\x3D\xA7\x29\x08\x6A\x8E"
"\x14\xBC\x95\x86\x47\x34\x5B\xE3\x68\xC5\x3A\x93\x22\xB0\x94\x88\x27\x1C\x51\x2F"
"\x3C\xCC\xFB\xDD\xB6\x62\x66\x00\xFE\x83\x7C\x11\x14\xB4\x12\x4E\x66\xA7\xBC\xC2"
"\x10\xEC\x2F\x3A\x20\x24\x56\xF4\x2A\x2E\x79\x55\x57\xD8\xF5\x46\xCE\x25\xDA\xCE"
"\x3B\x1D\x60\xC3\x46\xAB\x00\x6C\x28\x9C\xAC\xEF\x47\x50\xC3\xB3\xE3\xFE\x1D\x61"
"\x07\x32\x7C\x25\x82\x84\xD5\xFD\x4F\xD8\x14\x3B\x64\xCB\xBE\x23\xA3\xF3\x75\xA0"
"\xAD\x8E\x8F\x08\x58\xF1\xAD\x07\x3C\x94\x96\x77\x3D\xBF\xCA\xFA\xCD\x30\x97\xC0"
"\x69\x99\x67\xF7\xED\xE9\x44\xDA\x12\x4C\x85\x2C\xA3\x5F\x93\x35\x9F\x7D\x05\x2F"
"\xF8\x24\x06\x69\xFD\xBA\xB0\x1C\xC6\xBD\x0D\x7B\xBB\x23\x0F\x81\x1A\x9A\x92\xFA"
"\x17\x9A\x96\x6D\x9B\x97\x42\x67\x05\x7D\xAC\x74\xC4\x65\x0E\x01\x63\xD9\xA3\x86"
"\xA0\xB5\x07\xF9\xD3\x2B\x04\xD0\x03\x7D\x8D\x15\x55\x82\x7A\x28\x6F\x36\xA8\xBB"
"\x33\xDC\x6E\x09\x7B\x6A\x91\x21\x86\x6B\xB5\x77\xF9\x22\x16\x95\x50\xE6\xC5\xA6"
"\xD1\x17\xEA\x8C\xBC\x62\x8C\xCD\x33\x34\xD6\xA3\xFD\x68\x8A\x35\x3C\x9D\x9B\x0F"
"\x5B\x29\xAA\xD6\x4A\x38\x33\xFE\x8E\x73\x00\xC0\x2F\xEB\x67\xCD\xC2\x6D\xEB\xE2"
"\x02\x8B\x33\x97\x46\xF2\xC9\x06\xAD\xF1\x9C\x41\x45\xC0\x83\x2B\x8A\xF1\x23\x37"
"\x89\x30\x5B\xCB\xD7\xEA\x0B\x16\x56\x46\x49\x5D\x4B\xA7\xF8\x35\x9E\x6C\x4E\x1E"
"\xBD\x99\x03\x00\x80\x68\x46\x67\x31\x48\x17\xB4\xB2\x23\xF4\xAC\xB3\x5A\x81\xCA"
"\xE7\x95\x63\x5A\xC5\x67\x2A\x30\x6B\x44\xDB\x8B\xA4\x8F\x8F\x10\xDA\x3E\x22\x10"
"\x8B\xB4\xB8\x92\xEE\xD0\x38\x7F\xD4\x01\x27\xAB\x15\xD4\x62\x02\x30\x4A\x22\xAF"
"\xBA\x8A\xD8\xB3\xAF\xC3\xB2\xF8\x70\xEF\xF7\xDA\xB7\xD3\x97\xCC\x6C\x4B\x61\xE9"
"\xF4\xBF\xAE\x2B\xCF\x87\xF6\x70\x56\x91\x6C\x38\xE5\x2E\x09\xCE\xA6\x7D\xE8\x01"
"\x6A\x1E\xE9\x6C\x84\xCC\x7B\xBB\x20\x2C\x92\xC7\xFD\x71\x3B\x9D\xC6\x41\x0E\x06"
"\x15\x0F\x59\xD7\x47\xBB\x03\x4E\x8E\x19\x3C\x18\x40\xB2\xEE\x63\x9A\xF4\xDB\x2D"
"\x54\xBA\x5C\x6D\xAF\x50\x37\x92\x36\x42\xE1\xF9\x2B\x16\x38\x78\x72\x6C\x72\x59"
"\x60\x67\xB6\x81\xC1\x26\x29\xBB\x0D\xCE\xA0\x48\x6D\x49\xC0\xA6\x7B\x50\x43\xAD"
"\x6A\x49\x8D\x71\xAF\x57\xF0\x9D\xE6\xBD\xB1\x44\xDC\x56\x43\x05\x35\xED\x7C\xDE"
"\x8B\x13\x1A\xD5\xC9\x8C\x08\x62\x11\x03\x83\x35\xA2\xFC\x6E\xC9\xEC\x86\x6F\x68"
"\x68\xCB\x77\x8E\xB8\xD6\xE1\x63\x78\x97\x0F\xC8\xFD\x91\xC4\x79\xF2\x67\x4C\x1B"
"\x7D\x8D\x69\x72\x31\x8C\x36\x5E\x2E\x5E\xD9\xF7\x3F\x49\xD3\xA1\x3E\x43\xD9\xDC"
"\x52\x15\x6F\x89\x7A\xCA\xC4\x4B\xF4\xBA\xD1\xA6\xCC\x6D\xA9\xA5\x46\x8B\xEF\x0B"
"\xA7\xFD\x69\xA1\xB7\x40\xDF\x74\x04\x88\x20\x4E\x07\x66\x75\x9A\xC8\x87\x8E\x03"
"\x44\x1E\x21\x20\xBF\xD4\x7A\x8B\x35\x3F\x40\xC6\x6D\xE3\x48\x18\x38\xB0\xBD\x80"
"\x1C\x89\x62\x1E\x07\x21\x3D\x64\xF8\xD6\x04\xBF\x8C\x2C\x09\x21\x89\xF3\x44\xF6"
"\x4E\x40\x78\x07\xB8\xAD\x78\x7B\x53\x2D\xC5\xA2\xBE\x7A\x15\x42\x2E\x3E\x25\xA2"
"\xAE\xF4\xF3\x7B\xF9\x94\xF5\x80\xE7\x94\x31\x95\xED\x92\xEB\x77\x30\x69\x81\xB3"
"\x36\x93\x8D\xDA\x69\x74\x44\xBF\x83\x94\x6D\xF2\xD5\xAE\x6F\xEE\x35\x12\x37\x71"
"\x73\x5F\x42\xDE\x43\x9F\xE5\xB4\x4E\x2D\xBE\x7D\x85\xB1\x37\x2D\x63\x9A\xDC\x49"
"\x98\x9D\xC3\x98\xA2\xC9\x01\x13\xBF\x1B\x9B\x38\x8D\x58\x18\x0C\xBA\xC1\x21\xA4"
"\x5C\x86\xA3\x7A\x58\x85\xE0\x71\xAA\xFC\x5C\x3C"
"\xA4\x9C\x23\x7D\xDD\xD9\x97\x02\x30\x28\xDC\xD7\x2B\x80\x37\x4B\x54\xAB\x28\x74"
"\x47\x03\xEE\xAE\x85\xBB\x3F\x4B\x08\x2F\x2F\x69\x8E\x57\x4E\x13\xBF\xE0\xD9\x36"
"\xCF\x5F\x8B\xAE\xCF\x3E\xB9\xED\x8E\x24\x27\x2B\xEF\xB1\x0E\x17\xD6\x7F\xC5\x7D"
"\x16\x0F\x76\x1E\x01\x66\x13\xB1\x9B\x1B\x4E\x86\x19\x73\xEA\xD7\xBD\x71\xB8\x3A"
"\x6F\xD7\xA4\xCF\x82\xD7\x1B\xE3\x69\xB4\xBE\x0D\x61\x60\xB9\xAB\x5D\xF8\x70\x53"
"\x37\x7E\xB0\xFF\xFB\xD0\x30\xDA\xB6\x77\xC9\xEB\x0F\xB4\x98\x0B\xE6\x0F\x4D\x3A"
"\x6B\xC2\x4F\xDF\x2A\xF2\x9C\x15\xE2\xD6\x98\xC2\x6A\xEF\x78\x2B\xC0\x4A\xA9\x61"
"\x87\x11\x56\xAB\xF0\xA0\xEE\x14\x64\x41\x0D\xDF\xEE\x70\xAF\x19";
char regname[50];
printf("请输入你的用户名:");
gets(regname);
if(strlen(regname)<16)
for(int i=strlen(regname); i<16;i++)
regname[i]=0;
char *p1,*p2,*p3;
p1=regname;
p2=list1;
p3=list2;
////////////////////////第一阶段
__asm{
mov esp, p1
mov ebx,p2
xor esi,esi
again0: mov edx,dword ptr ss:[esp+4*esi]
add edx,dword ptr ss:[ebx+4*esi]
mov dword ptr ss:[esp+4*esi],edx
inc esi
cmp esi,4
jnz again0
xor esi,esi
mov ebx,p3
again1:mov edx,dword ptr ss:[esp]
ror edx,08h
mov dword ptr ss:[esp+010h],edx
mov edx,dword ptr ss:[esp]
and edx ,0ffh
mov ecx,dword ptr ss:[ebx+4*edx]
xor dword ptr ss:[esp+4],ecx
mov ecx,dword ptr ss:[esp+010h]
and ecx,0ffh
mov edx,dword ptr ss:[ebx+4*ecx+0400h]
add dword ptr ss:[esp+4],edx
mov edx,dword ptr ss:[esp]
ror edx,010h
mov dword ptr ss:[esp+010h],edx
mov edx,dword ptr ss:[esp]
ror edx, 018h
mov dword ptr ss:[esp],edx
mov edx,dword ptr ss:[esp+010h]
and edx, 0ffh
mov ecx,dword ptr ss:[ebx+4*edx]
add dword ptr ss:[esp+8],ecx
mov edx,dword ptr ss:[esp]
and edx, 0ffh
mov ecx,dword ptr ss:[ebx+4*edx+0400h]
xor dword ptr ss:[esp+0ch],ecx
mov cx,04h
mov ax,si
xor dx,dx
div cx
cmp dx,00h
jnz next1
mov edx,dword ptr ss:[esp+0ch]
add dword ptr ss:[esp],edx
next1:cmp dx,01h
jnz next2
mov edx,dword ptr ss:[esp+4]
add dword ptr ss:[esp],edx
next2:mov edx, dword ptr ss:[esp]
xchg edx,dword ptr ss:[esp+4]
mov dword ptr ss:[esp],edx
mov edx, dword ptr ss:[esp+4]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+4],edx
mov edx, dword ptr ss:[esp+0ch]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+0ch],edx
inc esi
cmp esi,8
jnz again1
mov esp,ebp
}
///////////////////////////////////////////////第二阶段
__asm{
mov esp,p1
xor esi,esi
again:mov ebx,p2
mov eax,dword ptr ss:[esp]
mov ecx,dword ptr ss:[ebx+010h+8*esi]
add ecx,eax
mov dword ptr ss:[esp+014h],ecx
rol eax,0dh
mov dword ptr ss:[esp],eax
imul eax ,dword ptr ss:[ebx+014h+8*esi]
mov dword ptr ss:[esp+010h],eax
mov ecx,dword ptr ss:[esp+014h]
and ecx,01FFh
mov ebx,p3
mov edx,dword ptr ds:[ecx*4+ebx]
mov dword ptr ss:[esp+018h],edx
rol eax,5
mov dword ptr ss:[esp+010h],eax
mov edx,dword ptr ss:[esp+014h]
mov cl,al
rol edx,cl
mov eax,dword ptr ss:[esp+08h]
add eax,edx
mov dword ptr ss:[esp+08h],eax
mov eax,dword ptr ss:[esp+010h]
xor dword ptr ss:[esp+018h],eax
rol eax,5
mov dword ptr ss:[esp+010h],eax
xor dword ptr ss:[esp+018h],eax
cmp si,08h
jae Anoth
xor dword ptr ss:[esp+0ch],eax
mov edx,dword ptr ss:[esp+018h]
mov cl,al
rol edx,cl
add dword ptr ss:[esp+4],edx
jmp Next
Anoth: xor dword ptr ss:[esp+04h],eax
mov edx,dword ptr ss:[esp+018h]
mov cl,al
rol edx,cl
add dword ptr ss:[esp+0ch],edx
Next: mov edx, dword ptr ss:[esp]
xchg edx,dword ptr ss:[esp+4]
mov dword ptr ss:[esp],edx
mov edx, dword ptr ss:[esp+4]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+4],edx
mov edx, dword ptr ss:[esp+0ch]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+0ch],edx
inc esi
cmp esi,010h
jnz again
mov esp,ebp
}
/////////////////////////////////////////////////////第三阶段
__asm{
mov esp,p1
mov ebx,p3
xor esi,esi
again3: mov edx,dword ptr ss:[esp]
test esi,02h
jz next3
xor eax,eax
test esi,01h
jnz anothe
mov al,08h
anothe: sub edx,dword ptr ss:[esp+04h+eax]
mov dword ptr ss:[esp],edx
next3: rol edx,8
mov dword ptr ss:[esp+010h],edx
mov eax,dword ptr ss:[esp]
and eax,0FFh
mov ecx ,dword ptr ds:[eax*4+ebx+0400h]
xor dword ptr ss:[esp+4],ecx
and edx,0FFh
mov eax,dword ptr ds:[edx*4+ebx]
sub dword ptr ss:[esp+8],eax ;;;;;;;;;;;;;;;;;;;;;;;;
mov ecx,dword ptr ss:[esp]
rol ecx,010h
mov dword ptr ss:[esp+010h],ecx
mov edx,dword ptr ss:[esp]
rol edx,018h
mov dword ptr ss:[esp],edx
mov eax,dword ptr ss:[esp+010h]
and eax,0ffh
mov ecx,dword ptr ss:[ebx+eax*4+0400h]
sub dword ptr ss:[esp+0ch],ecx
and edx,0FFh
mov eax,dword ptr ss:[edx*4+ebx]
xor dword ptr ss:[esp+0ch],eax
mov edx, dword ptr ss:[esp]
xchg edx,dword ptr ss:[esp+4]
mov dword ptr ss:[esp],edx
mov edx, dword ptr ss:[esp+4]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+4],edx
mov edx, dword ptr ss:[esp+0ch]
xchg edx,dword ptr ss:[esp+8]
mov dword ptr ss:[esp+0ch],edx
inc esi
cmp esi,8
jnz again3
mov ebx,p2
mov ecx,dword ptr ss:[ebx+090h]
sub dword ptr ss:[esp],ecx
mov ecx,dword ptr ss:[ebx+094h]
sub dword ptr ss:[esp+04h],ecx
mov ecx,dword ptr ss:[ebx+098h]
sub dword ptr ss:[esp+08h],ecx
mov ecx,dword ptr ss:[ebx+09ch]
sub dword ptr ss:[esp+0ch],ecx
mov esp, ebp
}
regname[16]='\0';
int regcode[16];
printf("你的注册码是:");
for(int i=0;i<16;i++){
if(regname[i]>=0)
regcode[i]=regname[i];
else
regcode[i]=0x100-abs(regname[i]);
printf("%02X",regcode[i]);
}
printf("\n");
}
试着写了个注册机,代码写得乱七八糟,各位不要笑话,请高人指教下程序的写法。
总结,不知道这个软件的作者怎么能够这样,经过一大段代码计算出来的注册码,却明码把它保存,再简单的用strcmp比较下就完事了,做内存注册机应该不是难事吧。
破解没有什么难度,写出算法注册机却是要花点时间和耐心。
本文没有一点技术含量,不足之处还有很多,还忘包涵,给菜鸟更多的支持!!!!
注册信息放在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windgelb]下