首页
社区
课程
招聘
网络安全卫士2005 5.2--简单算法分析
发表于: 2005-1-31 10:04 7996

网络安全卫士2005 5.2--简单算法分析

2005-1-31 10:04
7996

==================================================================================
【工程作者】深海游侠【CZG】【OCN】
【作者邮箱】shenhaiyouxia@163.com
==================================================================================
【软件名称】网络安全卫士2005 5.2
【下载地址】http://www.newhua.com/soft/25042.htm
【所受限制】时间限制
【加壳保护】ASPack加壳
【破解目的】纯属兴趣,如有失误之处,请各位大侠指点!
【软件介绍】
网络安全卫士2005》是一款强大的网络安全与维护工具,全面兼容Windows98、WindowsME、Windows2000及WindowsXP、Windows2003等操作系统。其主要功能和
特色包括:
1、方便的系统修复功能。
主要包括如下功能:快速修复使用注册表编辑器的限制、禁止修改 IE 主页的限制、IE浏览器标题、隐藏硬盘等等……
2、超强的网络安全功能。
现在有部分网站恶意修改您和浏览器主页和标题,或者禁用您的注册表编辑、控制面板、文件夹选项等,您可以通过此项功能快速恢复它,当然您也可以通过此项功能来禁用部分功能以防治非法用户使用或修改您的电脑,保护您的系统安全。
3、强大的广告屏蔽功能。
我们在浏览网站的时候只要一打开某些网站,就会弹出一个或多个广告,不但消耗了大量的系统,而且给我们的工作带来不便,您可以通过此项功能来屏蔽掉大多数的广告……
4、网站地址、内容过滤。
网络安全卫士使用先进的网址拦截技术和网页内容过滤技术对浏览器进行实时监控,当用户有访问色情、暴力、反动等网站时,网络安全卫士会立刻屏蔽这些访问请求,指向用户指定的网址。用户也可以通过自定义“关键字”来屏蔽部分网站。
5、安全的历史清理功能。            
当您在公用机房或网吧上网后,会留下您的上网记录,您可以通过此项功能快速清除它。
6、实用的网页免疫功能。
通过此项功能可以彻底防护网页脚本病毒……
7、随系统启动项目管理功能:可以非常方便的管理启动时自动运行的程序。
8、Active控件免疫功能:可以彻底屏蔽我们上网时那些烦人的弹出式安装证书对话框。
9、网络浏览加速功能:可以使用户根据需要有选择地禁止网页中的flash、图片、动画的显示,声音和视频的播放等,真正地加快网页的浏览速度。
10、IE的自动保护功能:包括自动保护IE首页,标题等等。
11、程序运行限制功能:对大多数家长而言,最烦恼的莫过于无法有效地控制小孩运行电脑中的程序,如聊天程序/游戏程序等等……这个功能可以解除您的烦恼,只要您设置了程序权限后,电脑中就只能运行您设置在左面列表中的应用程序了。
    此项功能对家庭用户或者公用电脑有很大的实用价值。
==================================================================================
【工程平台】Win ME
【调试工具】Ollydbg,peid,AspackDie,W32DASM,windows自带计算器
【脱壳方式】专用工具脱壳
==================================================================================
【破解过程】
先查壳,ASPack 2.12 -> Alexey Solodovnikov 工具伺候~ Borland Delphi 6.0 - 7.0,用TRW2000载入,恩?黑屏!晕~不想浪费时间找他的反调试了,直接OD载入,恩,不反OD,然后W32DASM反编译,找到“注册码错误”最后OD下断,程序顺利断到此处!

004CA6A8  |.  68 AFA74C00   PUSH UNPACKED.004CA7AF
004CA6AD  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004CA6B0  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004CA6B3  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
004CA6B6  |.  8B83 FC020000 MOV EAX,DWORD PTR DS:[EBX+2FC]
004CA6BC  |.  E8 CF38F7FF   CALL UNPACKED.0043DF90
004CA6C1  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]        //EAX=假码
004CA6C4  |.  50            PUSH EAX
004CA6C5  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
004CA6C8  |.  8B83 F8020000 MOV EAX,DWORD PTR DS:[EBX+2F8]
004CA6CE  |.  E8 BD38F7FF   CALL UNPACKED.0043DF90
004CA6D3  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
004CA6D6  |.  50            PUSH EAX
004CA6D7  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
004CA6DA  |.  8B83 F4020000 MOV EAX,DWORD PTR DS:[EBX+2F4]
004CA6E0  |.  E8 AB38F7FF   CALL UNPACKED.0043DF90
004CA6E5  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]       //EDX=用户名
004CA6E8  |.  8B83 14030000 MOV EAX,DWORD PTR DS:[EBX+314]
004CA6EE  |.  59            POP ECX
004CA6EF  |.  E8 A4EDFFFF   CALL UNPACKED.004C9498              //毫无疑问,关键CALL,跟进!
004CA6F4  |.  84C0          TEST AL,AL
004CA6F6  |.  75 2C         JNZ SHORT UNPACKED.004CA724         //关键跳
004CA6F8  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004CA6FB  |.  BA C4A74C00   MOV EDX,UNPACKED.004CA7C4
004CA700  |.  E8 3B9FF3FF   CALL UNPACKED.00404640
004CA705  |.  6A 40         PUSH 40
004CA707  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004CA70A  |.  E8 65A3F3FF   CALL UNPACKED.00404A74
004CA70F  |.  8BD0          MOV EDX,EAX
004CA711  |.  B9 F8A74C00   MOV ECX,UNPACKED.004CA7F8
004CA716  |.  A1 38B64D00   MOV EAX,DWORD PTR DS:[4DB638]
004CA71B  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
004CA71D  |.  E8 0238F9FF   CALL UNPACKED.0045DF24              //注册码错误!
004CA722  |.  EB 68         JMP SHORT UNPACKED.004CA78C
004CA724  |>  68 0CA84C00   PUSH UNPACKED.004CA80C
004CA729  |.  8BB3 14030000 MOV ESI,DWORD PTR DS:[EBX+314]
004CA72F  |.  FF76 48       PUSH DWORD PTR DS:[ESI+48]
004CA732  |.  68 38A84C00   PUSH UNPACKED.004CA838
004CA737  |.  68 44A84C00   PUSH UNPACKED.004CA844
004CA73C  |.  FF76 54       PUSH DWORD PTR DS:[ESI+54]
004CA73F  |.  68 38A84C00   PUSH UNPACKED.004CA838
004CA744  |.  68 58A84C00   PUSH UNPACKED.004CA858
004CA749  |.  FF76 5C       PUSH DWORD PTR DS:[ESI+5C]
004CA74C  |.  68 38A84C00   PUSH UNPACKED.004CA838
004CA751  |.  68 6CA84C00   PUSH UNPACKED.004CA86C
004CA756  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004CA759  |.  BA 0A000000   MOV EDX,0A
004CA75E  |.  E8 D9A1F3FF   CALL UNPACKED.0040493C
004CA763  |.  6A 40         PUSH 40
004CA765  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004CA768  |.  E8 07A3F3FF   CALL UNPACKED.00404A74
004CA76D  |.  8BD0          MOV EDX,EAX
004CA76F  |.  B9 F8A74C00   MOV ECX,UNPACKED.004CA7F8
004CA774  |.  A1 38B64D00   MOV EAX,DWORD PTR DS:[4DB638]
004CA779  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
004CA77B  |.  E8 A437F9FF   CALL UNPACKED.0045DF24
004CA780  |>  A1 38B64D00   MOV EAX,DWORD PTR DS:[4DB638]
004CA785  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
004CA787  |.  E8 F436F9FF   CALL UNPACKED.0045DE80
004CA78C  |>  33C0          XOR EAX,EAX
004CA78E  |.  5A            POP EDX
004CA78F  |.  59            POP ECX
004CA790  |.  59            POP ECX
004CA791  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004CA794  |.  68 B6A74C00   PUSH UNPACKED.004CA7B6
004CA799  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
004CA79C  |.  BA 03000000   MOV EDX,3
004CA7A1  |.  E8 269EF3FF   CALL UNPACKED.004045CC
004CA7A6  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004CA7A9  |.  E8 FA9DF3FF   CALL UNPACKED.004045A8
004CA7AE  \.  C3            RETN
004CA7AF   .^ E9 FC97F3FF   JMP UNPACKED.00403FB0
004CA7B4   .^ EB E3         JMP SHORT UNPACKED.004CA799
004CA7B6   .  5E            POP ESI
004CA7B7   .  5B            POP EBX
004CA7B8   .  8BE5          MOV ESP,EBP
004CA7BA   .  5D            POP EBP
004CA7BB   .  C3            RETN

004C9498  /$  55            PUSH EBP
004C9499  |.  8BEC          MOV EBP,ESP
004C949B  |.  83C4 F0       ADD ESP,-10
004C949E  |.  53            PUSH EBX
004C949F  |.  33DB          XOR EBX,EBX
004C94A1  |.  895D F0       MOV DWORD PTR SS:[EBP-10],EBX
004C94A4  |.  895D F4       MOV DWORD PTR SS:[EBP-C],EBX
004C94A7  |.  894D F8       MOV DWORD PTR SS:[EBP-8],ECX
004C94AA  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
004C94AD  |.  8BD8          MOV EBX,EAX
004C94AF  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004C94B2  |.  E8 ADB5F3FF   CALL UNPACKED.00404A64
004C94B7  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004C94BA  |.  E8 A5B5F3FF   CALL UNPACKED.00404A64
004C94BF  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
004C94C2  |.  E8 9DB5F3FF   CALL UNPACKED.00404A64
004C94C7  |.  33C0          XOR EAX,EAX
004C94C9  |.  55            PUSH EBP
004C94CA  |.  68 82954C00   PUSH UNPACKED.004C9582
004C94CF  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004C94D2  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004C94D5  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]       //EAX=用户名
004C94D8  |.  E8 9FB3F3FF   CALL UNPACKED.0040487C             //取用户名位数
004C94DD  |.  3B43 4C       CMP EAX,DWORD PTR DS:[EBX+4C]      //是否大于100
004C94E0  |.  7F 19         JG SHORT UNPACKED.004C94FB         //大于100?你还真能输入啊,死去!
004C94E2  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]       //EAX=用户名
004C94E5  |.  E8 92B3F3FF   CALL UNPACKED.0040487C             //再取位数
004C94EA  |.  3B43 50       CMP EAX,DWORD PTR DS:[EBX+50]      //是否小于3
004C94ED  |.  7C 0C         JL SHORT UNPACKED.004C94FB         //小于3?你也太懒了吧,死去!
004C94EF  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]       //EAX=注册码
004C94F2  |.  E8 85B3F3FF   CALL UNPACKED.0040487C             //取未位数
004C94F7  |.  85C0          TEST EAX,EAX                       //是否输入
004C94F9  |.  75 04         JNZ SHORT UNPACKED.004C94FF
004C94FB  |>  33DB          XOR EBX,EBX
004C94FD  |.  EB 60         JMP SHORT UNPACKED.004C955F
004C94FF  |>  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
004C9502  |.  8B45 08       MOV EAX,DWORD PTR SS:[EBP+8]
004C9505  |.  E8 9AF4F3FF   CALL UNPACKED.004089A4
004C950A  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
004C950D  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
004C9510  |.  E8 2BB1F3FF   CALL UNPACKED.00404640
004C9515  |.  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
004C9518  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004C951B  |.  8BC3          MOV EAX,EBX
004C951D  |.  E8 BAFBFFFF   CALL UNPACKED.004C90DC             //算法CALL,跟进!
004C9522  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
004C9525  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]
004C9528  |.  E8 EFF4F3FF   CALL UNPACKED.00408A1C
004C952D  |.  85C0          TEST EAX,EAX
004C952F  |.  74 04         JE SHORT UNPACKED.004C9535         //也算关键跳!
004C9531  |.  33DB          XOR EBX,EBX
004C9533  |.  EB 2A         JMP SHORT UNPACKED.004C955F
004C9535  |>  8D43 48       LEA EAX,DWORD PTR DS:[EBX+48]
004C9538  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004C953B  |.  E8 BCB0F3FF   CALL UNPACKED.004045FC
004C9540  |.  8D43 54       LEA EAX,DWORD PTR DS:[EBX+54]
004C9543  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]
004C9546  |.  E8 B1B0F3FF   CALL UNPACKED.004045FC
004C954B  |.  8D43 5C       LEA EAX,DWORD PTR DS:[EBX+5C]
004C954E  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]
004C9551  |.  E8 A6B0F3FF   CALL UNPACKED.004045FC
004C9556  |.  8BC3          MOV EAX,EBX
004C9558  |.  E8 DF010000   CALL UNPACKED.004C973C
004C955D  |.  B3 01         MOV BL,1
004C955F  |>  33C0          XOR EAX,EAX
004C9561  |.  5A            POP EDX
004C9562  |.  59            POP ECX
004C9563  |.  59            POP ECX
004C9564  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004C9567  |.  68 89954C00   PUSH UNPACKED.004C9589
004C956C  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
004C956F  |.  BA 04000000   MOV EDX,4
004C9574  |.  E8 53B0F3FF   CALL UNPACKED.004045CC
004C9579  |.  8D45 08       LEA EAX,DWORD PTR SS:[EBP+8]
004C957C  |.  E8 27B0F3FF   CALL UNPACKED.004045A8
004C9581  \.  C3            RETN
004C9582   .^ E9 29AAF3FF   JMP UNPACKED.00403FB0
004C9587   .^ EB E3         JMP SHORT UNPACKED.004C956C
004C9589   .  8BC3          MOV EAX,EBX
004C958B   .  5B            POP EBX
004C958C   .  8BE5          MOV ESP,EBP
004C958E   .  5D            POP EBP
004C958F   .  C2 0400       RETN 4

004C90DC  /$  55            PUSH EBP
004C90DD  |.  8BEC          MOV EBP,ESP
004C90DF  |.  83C4 E0       ADD ESP,-20
004C90E2  |.  53            PUSH EBX
004C90E3  |.  56            PUSH ESI
004C90E4  |.  57            PUSH EDI
004C90E5  |.  33DB          XOR EBX,EBX
004C90E7  |.  895D EC       MOV DWORD PTR SS:[EBP-14],EBX
004C90EA  |.  895D E8       MOV DWORD PTR SS:[EBP-18],EBX
004C90ED  |.  895D E4       MOV DWORD PTR SS:[EBP-1C],EBX
004C90F0  |.  895D E0       MOV DWORD PTR SS:[EBP-20],EBX
004C90F3  |.  8BF9          MOV EDI,ECX
004C90F5  |.  8955 FC       MOV DWORD PTR SS:[EBP-4],EDX
004C90F8  |.  8BF0          MOV ESI,EAX
004C90FA  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]       //用户名
004C90FD  |.  E8 62B9F3FF   CALL UNPACKED.00404A64
004C9102  |.  33C0          XOR EAX,EAX
004C9104  |.  55            PUSH EBP
004C9105  |.  68 75924C00   PUSH UNPACKED.004C9275
004C910A  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004C910D  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004C9110  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
004C9113  |.  BA 8C924C00   MOV EDX,UNPACKED.004C928C           //ASCII "gf258369gf"
004C9118  |.  E8 23B5F3FF   CALL UNPACKED.00404640
004C911D  |.  837D EC 00    CMP DWORD PTR SS:[EBP-14],0         //是否读取gf258369gf.
004C9121  |.  75 0D         JNZ SHORT UNPACKED.004C9130
004C9123  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
004C9126  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004C9129  |.  E8 12B5F3FF   CALL UNPACKED.00404640
004C912E  |.  EB 5D         JMP SHORT UNPACKED.004C918D
004C9130  |>  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]       //EAX=gf258369gf
004C9133  |.  E8 44B7F3FF   CALL UNPACKED.0040487C              //取位数小孩也看的出是A
004C9138  |.  8BD8          MOV EBX,EAX
004C913A  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
004C913D  |.  50            PUSH EAX
004C913E  |.  8BCB          MOV ECX,EBX
004C9140  |.  D1F9          SAR ECX,1                           //逻辑右移,简单点说就是A/2=5
004C9142  |.  79 03         JNS SHORT UNPACKED.004C9147
004C9144  |.  83D1 00       ADC ECX,0
004C9147  |>  BA 01000000   MOV EDX,1
004C914C  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
004C914F  |.  E8 80B9F3FF   CALL UNPACKED.00404AD4
004C9154  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
004C9157  |.  50            PUSH EAX
004C9158  |.  8BC3          MOV EAX,EBX
004C915A  |.  D1F8          SAR EAX,1
004C915C  |.  79 03         JNS SHORT UNPACKED.004C9161
004C915E  |.  83D0 00       ADC EAX,0
004C9161  |>  8BCB          MOV ECX,EBX
004C9163  |.  2BC8          SUB ECX,EAX
004C9165  |.  8BD3          MOV EDX,EBX
004C9167  |.  D1FA          SAR EDX,1
004C9169  |.  79 03         JNS SHORT UNPACKED.004C916E
004C916B  |.  83D2 00       ADC EDX,0
004C916E  |>  42            INC EDX
004C916F  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]         //EAX=gf258369gf
004C9172  |.  E8 5DB9F3FF   CALL UNPACKED.00404AD4               
004C9177  |.  FF75 E8       PUSH DWORD PTR SS:[EBP-18]
004C917A  |.  FF75 FC       PUSH DWORD PTR SS:[EBP-4]
004C917D  |.  FF75 E4       PUSH DWORD PTR SS:[EBP-1C]
004C9180  |.  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
004C9183  |.  BA 03000000   MOV EDX,3
004C9188  |.  E8 AFB7F3FF   CALL UNPACKED.0040493C                //为什么上边有些运算代码我不说呢,其实很简单,你往下跟就能猜的出来,他只是确实用户名应该插入gf258369gf的地方,也就是上边算的出第5位!这个CALL就实现!
004C918D  |>  C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0
004C9194  |.  C745 F4 00000>MOV DWORD PTR SS:[EBP-C],0
004C919B  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004C919E  |.  E8 D9B6F3FF   CALL UNPACKED.0040487C
004C91A3  |.  3B46 4C       CMP EAX,DWORD PTR DS:[ESI+4C]         //再罗嗦一次是否大于64位
004C91A6  |.  7F 0D         JG SHORT UNPACKED.004C91B5
004C91A8  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004C91AB  |.  E8 CCB6F3FF   CALL UNPACKED.0040487C
004C91B0  |.  3B46 50       CMP EAX,DWORD PTR DS:[ESI+50]         //是否小于3位
004C91B3  |.  7D 0C         JGE SHORT UNPACKED.004C91C1
004C91B5  |>  8BC7          MOV EAX,EDI
004C91B7  |.  E8 ECB3F3FF   CALL UNPACKED.004045A8
004C91BC  |.  E9 91000000   JMP UNPACKED.004C9252
004C91C1  |>  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]         //EAX=gf258cxxx369gf
004C91C4  |.  E8 B3B6F3FF   CALL UNPACKED.0040487C                //取插入后的位数就是E
004C91C9  |.  8BD8          MOV EBX,EAX                           //EBX=位数,也当和计数器比较用!
004C91CB  |.  EB 37         JMP SHORT UNPACKED.004C9204           //看到循环了,估计就是计算过程!
004C91CD  |>  8B46 68       /MOV EAX,DWORD PTR DS:[ESI+68]        //很重要的东东此时EAX=0D3EDA8B  这个东东是计算的关键!
004C91D0  |.  8B56 6C       |MOV EDX,DWORD PTR DS:[ESI+6C]
004C91D3  |.  0345 F0       |ADD EAX,DWORD PTR SS:[EBP-10]        //EAX=0D3EDA8B+上次计算结果!(要循环)
004C91D6  |.  1355 F4       |ADC EDX,DWORD PTR SS:[EBP-C]
004C91D9  |.  52            |PUSH EDX
004C91DA  |.  50            |PUSH EAX                             //压栈,但栈顶
004C91DB  |.  8B45 E0       |MOV EAX,DWORD PTR SS:[EBP-20]        //EAX=f258cxxx369gf
004C91DE  |.  0FB64418 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]    //看清了,因EBX=E,所以我们知道他是反向取的,先取最后一位的ASCII码
004C91E3  |.  50            |PUSH EAX
004C91E4  |.  B8 59040000   |MOV EAX,459                          //EAX=459
004C91E9  |.  5A            |POP EDX
004C91EA  |.  8BCA          |MOV ECX,EDX
004C91EC  |.  33D2          |XOR EDX,EDX
004C91EE  |.  F7F1          |DIV ECX                              //EAX mod ECX (EAX=459,ECX=你取那串的字符,主要看你第几次来的!)
004C91F0  |.  8BC2          |MOV EAX,EDX                          //余数入EAX
004C91F2  |.  33D2          |XOR EDX,EDX
004C91F4  |.  290424        |SUB DWORD PTR SS:[ESP],EAX           //下D 可看到ESP=0D3EDA8B 此命令0D3EDA8B-EAX=ESP
004C91F7  |.  195424 04     |SBB DWORD PTR SS:[ESP+4],EDX
004C91FB  |.  58            |POP EAX                              //EAX=上边减后结果!
004C91FC  |.  5A            |POP EDX
004C91FD  |.  8945 F0       |MOV DWORD PTR SS:[EBP-10],EAX        //结果入寄存器!
004C9200  |.  8955 F4       |MOV DWORD PTR SS:[EBP-C],EDX
004C9203  |.  4B            |DEC EBX                              //好,位数减1准备倒数第2位
004C9204  |>  8B45 E0        MOV EAX,DWORD PTR SS:[EBP-20]
004C9207  |.  E8 70B6F3FF   |CALL UNPACKED.0040487C
004C920C  |.  3BD8          |CMP EBX,EAX                          //是否每位都算了?没有,那你别想走了~
004C920E  |.  7F 04         |JG SHORT UNPACKED.004C9214
004C9210  |.  85DB          |TEST EBX,EBX
004C9212  |.^ 7F B9         \JG SHORT UNPACKED.004C91CD  
004C9214  |>  8B5E 60       MOV EBX,DWORD PTR DS:[ESI+60]
004C9217  |.  85DB          TEST EBX,EBX
004C9219  |.  7F 11         JG SHORT UNPACKED.004C922C
004C921B  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]               
004C921E  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]               
004C9221  |.  8BD7          MOV EDX,EDI                              
004C9223  |.  33C0          XOR EAX,EAX                              
004C9225  |.  E8 1EFBF3FF   CALL UNPACKED.00408D48                  
004C922A  |.  EB 26         JMP SHORT UNPACKED.004C9252
004C922C  |>  FF75 F4       PUSH DWORD PTR SS:[EBP-C]               
004C922F  |.  FF75 F0       PUSH DWORD PTR SS:[EBP-10]               
004C9232  |.  8BD7          MOV EDX,EDI                              
004C9234  |.  8BC3          MOV EAX,EBX                             //EBX=A,注册码实际位数,但根据你上边计算的结果,不足10位前面补0
004C9236  |.  E8 0DFBF3FF   CALL UNPACKED.00408D48                  //实现!
004C923B  |.  8B07          MOV EAX,DWORD PTR DS:[EDI]              //EAX=真注册码,下面都是善后工作,不罗嗦了!
004C923D  |.  E8 3AB6F3FF   CALL UNPACKED.0040487C
004C9242  |.  8BC8          MOV ECX,EAX
004C9244  |.  2B4E 60       SUB ECX,DWORD PTR DS:[ESI+60]
004C9247  |.  8B56 60       MOV EDX,DWORD PTR DS:[ESI+60]
004C924A  |.  42            INC EDX
004C924B  |.  8BC7          MOV EAX,EDI
004C924D  |.  E8 C2B8F3FF   CALL UNPACKED.00404B14
004C9252  |>  33C0          XOR EAX,EAX
004C9254  |.  5A            POP EDX
004C9255  |.  59            POP ECX
004C9256  |.  59            POP ECX
004C9257  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004C925A  |.  68 7C924C00   PUSH UNPACKED.004C927C
004C925F  |>  8D45 E0       LEA EAX,DWORD PTR SS:[EBP-20]
004C9262  |.  BA 04000000   MOV EDX,4
004C9267  |.  E8 60B3F3FF   CALL UNPACKED.004045CC
004C926C  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004C926F  |.  E8 34B3F3FF   CALL UNPACKED.004045A8
004C9274  \.  C3            RETN
004C9275   .^ E9 36ADF3FF   JMP UNPACKED.00403FB0
004C927A   .^ EB E3         JMP SHORT UNPACKED.004C925F
004C927C   .  5F            POP EDI
004C927D   .  5E            POP ESI
004C927E   .  5B            POP EBX
004C927F   .  8BE5          MOV ESP,EBP
004C9281   .  5D            POP EBP
004C9282   .  C3            RETN

2,总结:
1>真注册码10位
2>利用用户名计算.

3,推算:
这里我用户名=cxxx  注册码=121212

1>用户名先插入gf258369gf的第5位得gf258cxxx369gf
2>用459 mod 每位的ASCII码(必须是倒着算)
3>上边的结果再用0D3EDA8B-,最后结果再加0D3EDA8B,循环!
4>最后得出的结果,不足10位的前面补0!
5>我的用户名= cxxx    注册码= 00B96FF118

4,内存注册机:
中断地址:004C923D
中断次数:1
第一字节:E8
字节长度:5
寄存器:EAX(内存方式)

5,感评:
花了两个小时终于写完了,这次感受了一下OD,发现他功能确定挺强大,看来也要接受一下它了。
因为时间是凌晨,所以我写的比较仓促,不过我已经尽力的去写清楚,简单。如果你在这篇文章中能学到点什么,那么我的目的也就达到了!

======================================================================
【工程声明】本过程只供内部学习之用!如要转载请保持过程完整!
======================================================================


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (6)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我想问一下
我用Ollydbg加载程序之后
按F9运行加载的程序,但是有时没看到那个程序运行界面
:(怎么上传图片啊???
2005-1-31 17:37
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
3
支持你...
2005-1-31 17:50
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
4
最初由 海盗船长 发布
我想问一下
我用Ollydbg加载程序之后
按F9运行加载的程序,但是有时没看到那个程序运行界面
:(怎么上传图片啊???


程序加载以后,应该自动隐藏起来,你看右下角是不是多个图表,右键点就有目录了。
2005-1-31 23:25
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
你要设置断点的,设置好以后运行就可以,该程序运行后会在任务栏里出现一个e的图标
2005-2-1 12:55
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持你啊!!!!
2005-2-1 22:37
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
7
加油啊!继续!
2005-2-2 00:01
0
游客
登录 | 注册 方可回帖
返回
//