飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3144|回复: 1

[原创] XXXXXX过滤系统 算法分析

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2006-11-5 03:01:15 | 显示全部楼层 |阅读模式
    破解日期】2006年11月5日(传说今天是四狗齐贺月最圆--->20时58分)
    【破解作者】 冷血书生
    【作者邮箱】 暂没
    【作者主页】 hxxp://www.126sohu.com
    【使用工具】 OD
    【破解平台】 Win9x/NT/2000/XP
    【软件名称】 XXXXXX过滤系统
    【下载地址】 略过
    【软件简介】 人们在享受Internet 给我们带来的无限快乐的同时,却忽略了他的危害性.随着Internet 的逐渐普及,走进了大众家庭.但是被Internet 毒害的青少年也在逐年的增长.因为沉迷于网络游戏,上网聊天,上色情网站而矬学甚至走上犯罪道路的青少年在全国已经是一个普遍现象了.但是又有哪位做家长或老师不担心这些事情会发生在自己的孩子或学生身上呢.所以为了净化网络.还给青少年一个洁净的上网环境.我们制作了XXXXXX过滤系统.希望它能成为无数的家长和老师用来管理孩子上网的有利助手.

    【软件大小】 2887KB

    【加壳方式】 无
    【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
    --------------------------------------------------------------------------------
    【破解内容】


    1. 004161AD   .  6A 00         push 0                           ; 中断在这里
    2. 004161AF   .  8D4C24 14     lea ecx,dword ptr ss:[esp+14]
    3. 004161B3   .  C78424 2C0100>mov dword ptr ss:[esp+12C],0
    4. 004161BE   .  E8 CA730200   call NetOpt.0043D58D
    5. 004161C3   .  50            push eax                                        ; |Buffer
    6. 004161C4   .  FF15 3CF24400 call dword ptr ds:[<&KERNEL32.GetSystemDirector>;  \GetSystemDirectoryA
    7. 004161CA   .  8B4C24 0C     mov ecx,dword ptr ss:[esp+C]                    ;  ASCII "C:\WINDOWS\system32"
    8. 004161CE   .  8D5424 0C     lea edx,dword ptr ss:[esp+C]
    9. 004161D2   .  51            push ecx
    10. 004161D3   .  68 60014600   push NetOpt.00460160                            ;  ASCII "%s\netinfoset.ini"
    11. 004161D8   .  52            push edx
    12. 004161D9   .  E8 7A0B0200   call NetOpt.00436D58                            ;  连接
    13. 004161DE   .  83C4 0C       add esp,0C
    14. …………
    15. 00416211   .  896424 1C     mov dword ptr ss:[esp+1C],esp
    16. 00416215   .  50            push eax
    17. 00416216   .  C68424 2C0100>mov byte ptr ss:[esp+12C],1
    18. 0041621E   .  E8 FD6D0200   call NetOpt.0043D020                            ;  取得机器码
    19. 00416223   .  8D4C24 20     lea ecx,dword ptr ss:[esp+20]                   ; |
    20. 00416227   .  51            push ecx                                        ; |Arg1
    21. 00416228   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]                   ; |
    22. 0041622C   .  E8 5F6B0000   call NetOpt.0041CD90                            ; \第一次计算
    23. 00416231      8B15 680E4600 mov edx,dword ptr ds:[460E68]                  
    24. …………
    25. 00416257   .  83C4 08       add esp,8
    26. 0041625A   .  8D5424 0C     lea edx,dword ptr ss:[esp+C]                    ;  (ASCII "YCMKYOHOY")
    27. 0041625E   .  8BCC          mov ecx,esp
    28. 00416260   .  896424 1C     mov dword ptr ss:[esp+1C],esp
    29. 00416264   .  52            push edx
    30. 00416265   .  E8 B66D0200   call NetOpt.0043D020
    31. 0041626A   .  8D4424 20     lea eax,dword ptr ss:[esp+20]                   ; |第一次计算结果
    32. 0041626E   .  8D4C24 18     lea ecx,dword ptr ss:[esp+18]                   ; |
    33. 00416272   .  50            push eax                                        ; |Arg1
    34. 00416273   .  E8 186B0000   call NetOpt.0041CD90                            ; \第二次计算
    35. 00416278   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+1C]                   ;  第二次计算结果
    36. 0041627C   .  8D5424 08     lea edx,dword ptr ss:[esp+8]
    37. 00416280   .  51            push ecx
    38. …………
    39. 004162AC   .  E8 A1450200   call NetOpt.0043A852
    40. 004162B1   .  8B5424 10     mov edx,dword ptr ss:[esp+10]                   ;  假码
    41. 004162B5   .  8B4424 08     mov eax,dword ptr ss:[esp+8]                    ;  真码
    42. 004162B9   .  52            push edx                                        ; /Arg2
    43. 004162BA   .  50            push eax                                        ; |Arg1
    44. 004162BB   .  E8 C51A0100   call NetOpt.00427D85                            ;  \NetOpt.00427D85 // 经典的比较Call
    45. 004162C0   .  83C4 08       add esp,8
    46. 004162C3   .  85C0          test eax,eax
    47. 004162C5   .  0F85 99000000 jnz NetOpt.00416364                             ;  不相等就注册失败,爆破点
    48. 004162CB   .  68 EC014600   push NetOpt.004601EC                            ;  ASCII "no"
    49.                   


    50. ///////////////////////////////////////////////////////////////////////////////////////////
    51. ///////////////////////////////////////////////////////////////////////////////////////////
    52.   
    53. 第一次计算:
    54. 0041CDDB  |.  51            push ecx
    55. 0041CDDC  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+14]
    56. 0041CDE0  |.  E8 FF050200   call NetOpt.0043D3E4                            ;  取得机器码
    57. 0041CDE5  |.  8B6C24 10     mov ebp,dword ptr ss:[esp+10]
    58. 0041CDE9  |.  33C9          xor ecx,ecx
    59. 0041CDEB  |.  8B75 F8       mov esi,dword ptr ss:[ebp-8]
    60. 0041CDEE  |.  85F6          test esi,esi                                    ;  测试机器码长度
    61. 0041CDF0  |.  897424 14     mov dword ptr ss:[esp+14],esi                   ;  转移
    62. 0041CDF4  |.  7E 51         jle short NetOpt.0041CE47
    63. 0041CDF6  |.  8BBC24 480400>mov edi,dword ptr ss:[esp+448]
    64. 0041CDFD  |.  8D742E FE     lea esi,dword ptr ds:[esi+ebp-2]
    65. 0041CE01  |>  83F9 05       /cmp ecx,5                                ;  与5比较
    66. 0041CE04  |.  7D 41         |jge short NetOpt.0041CE47                      ;  大于或等于就跳
    67. 0041CE06  |.  8A1429        |mov dl,byte ptr ds:[ecx+ebp]                   ;  依次取机器码ASCII值
    68. 0041CE09  |.  BB 1A000000   |mov ebx,1A                             ;  ebx=1A
    69. 0041CE0E  |.  0FBE46 01     |movsx eax,byte ptr ds:[esi+1]                  ;  倒取机器码ASCII值
    70. 0041CE12  |.  0FBED2        |movsx edx,dl                             ;  dl转移
    71. 0041CE15  |.  33C2          |xor eax,edx                            ;  eax xor edx
    72. 0041CE17  |.  83C7 02       |add edi,2
    73. 0041CE1A  |.  83F0 2A       |xor eax,2A                              ;  eax xor 2A
    74. 0041CE1D  |.  99            |cdq
    75. 0041CE1E  |.  F7FB          |idiv ebx                                     ;  /1A
    76. 0041CE20  |.  80C2 41       |add dl,41                                  ;  余数+41
    77. 0041CE23  |.  8857 FE       |mov byte ptr ds:[edi-2],dl                    ;  结果转移
    78. 0041CE26  |.  8A1429        |mov dl,byte ptr ds:[ecx+ebp]                   ;  依次取机器码ASCII值,跟第一次取的相同
    79. 0041CE29  |.  0FBE06        |movsx eax,byte ptr ds:[esi]                    ;  倒取机器码ASCII值
    80. 0041CE2C  |.  0FBED2        |movsx edx,dl                           ;  dl值转移
    81. 0041CE2F  |.  33C2          |xor eax,edx                             ;  eax xor edx
    82. 0041CE31  |.  83F0 55       |xor eax,55                                ;  eax xor 55
    83. 0041CE34  |.  99            |cdq
    84. 0041CE35  |.  F7FB          |idiv ebx                                      ;  /1A
    85. 0041CE37  |.  8B4424 14     |mov eax,dword ptr ss:[esp+14]
    86. 0041CE3B  |.  80C2 41       |add dl,41                                   ;  dl+41
    87. 0041CE3E  |.  41            |inc ecx
    88. 0041CE3F  |.  8857 FF       |mov byte ptr ds:[edi-1],dl                    ;  dl值转移
    89. 0041CE42  |.  4E            |dec esi
    90. 0041CE43  |.  3BC8          |cmp ecx,eax                                  ;  比较
    91. 0041CE45  |.^ 7C BA         \jl short NetOpt.0041CE01                    ;  循环4次
    92. 0041CE47  |>  8B8424 480400>mov eax,dword ptr ss:[esp+448]                  ;  获得上面计算的结果
    93. 0041CE4E  |.  C68424 400400>mov byte ptr ss:[esp+440],1
    94. …………
    95. 0041CF25  |.  64:890D 00000>mov dword ptr fs:[0],ecx
    96. 0041CF2C  |.  81C4 34040000 add esp,434
    97. 0041CF32  \.  C2 0800       retn 8                                        ; 返回

    98. 第一次计算值:

    99. 取机器码第一位ASCII值异或倒取机器码第一位ASCII值,然后再异或2Ah, 结果除以1Ah,余数加上41h
    100. ,即为计算结果奇数位(当然这里是指依次的);取机器码第一位ASCII值异或倒取机器码第二位ASCII值
    101. ,然后再异或55h,结果除以1Ah,余数加上41h,即为计算结果偶数位(当然这里是指依次的)。

    102. ///////////////////////////////////////////////////////////////////////////////////////////
    103. ///////////////////////////////////////////////////////////////////////////////////////////

    104.   
    105. 第二次计算:
    106. 0041CDDC  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+14]
    107. 0041CDE0  |.  E8 FF050200   call NetOpt.0043D3E4                            ;  取得第一次计算结果
    108. 0041CDE5  |.  8B6C24 10     mov ebp,dword ptr ss:[esp+10]
    109. 0041CDE9  |.  33C9          xor ecx,ecx
    110. 0041CDEB  |.  8B75 F8       mov esi,dword ptr ss:[ebp-8]
    111. 0041CDEE  |.  85F6          test esi,esi                                    ;  测试结果长度
    112. 0041CDF0  |.  897424 14     mov dword ptr ss:[esp+14],esi                   ;  转移
    113. 0041CDF4  |.  7E 51         jle short NetOpt.0041CE47
    114. 0041CDF6  |.  8BBC24 480400>mov edi,dword ptr ss:[esp+448]
    115. 0041CDFD  |.  8D742E FE     lea esi,dword ptr ds:[esi+ebp-2]
    116. 0041CE01  |>  83F9 05       /cmp ecx,5                                ;  与5比较
    117. 0041CE04  |.  7D 41         |jge short NetOpt.0041CE47                      ;  大于或等于就跳
    118. 0041CE06  |.  8A1429        |mov dl,byte ptr ds:[ecx+ebp]                   ;  依次取第一次计算值
    119. 0041CE09  |.  BB 1A000000   |mov ebx,1A                             ;  ebx=1A
    120. 0041CE0E  |.  0FBE46 01     |movsx eax,byte ptr ds:[esi+1]                  ;  倒取第一次计算值
    121. 0041CE12  |.  0FBED2        |movsx edx,dl                             ;  dl转移
    122. 0041CE15  |.  33C2          |xor eax,edx                             ;  eax xor edx
    123. 0041CE17  |.  83C7 02       |add edi,2
    124. 0041CE1A  |.  83F0 2A       |xor eax,2A                              ;  eax xor 2A
    125. 0041CE1D  |.  99            |cdq
    126. 0041CE1E  |.  F7FB          |idiv ebx                                     ;  /1A
    127. 0041CE20  |.  80C2 41       |add dl,41                                  ;  余数+41
    128. 0041CE23  |.  8857 FE       |mov byte ptr ds:[edi-2],dl                     ;  结果转移,F
    129. 0041CE26  |.  8A1429        |mov dl,byte ptr ds:[ecx+ebp]                   ;  依次取第一次计算值,跟上面取的相同
    130. 0041CE29  |.  0FBE06        |movsx eax,byte ptr ds:[esi]                  ;  倒取第一次计算值
    131. 0041CE2C  |.  0FBED2        |movsx edx,dl                           ;  dl值转移
    132. 0041CE2F  |.  33C2          |xor eax,edx                             ;  eax xor edx
    133. 0041CE31  |.  83F0 55       |xor eax,55                                ;  eax xor 55
    134. 0041CE34  |.  99            |cdq
    135. 0041CE35  |.  F7FB          |idiv ebx                                      ;  /1A
    136. 0041CE37  |.  8B4424 14     |mov eax,dword ptr ss:[esp+14]
    137. 0041CE3B  |.  80C2 41       |add dl,41                                   ;  dl+41
    138. 0041CE3E  |.  41            |inc ecx
    139. 0041CE3F  |.  8857 FF       |mov byte ptr ds:[edi-1],dl                   ;  dl值转移
    140. 0041CE42  |.  4E            |dec esi
    141. 0041CE43  |.  3BC8          |cmp ecx,eax                               ;  比较
    142. 0041CE45  |.^ 7C BA         \jl short NetOpt.0041CE01                    ;  循环4次
    143. 0041CE47  |>  8B8424 480400>mov eax,dword ptr ss:[esp+448]              ;  获得计算结果
    144. 0041CE4E  |.  C68424 400400>mov byte ptr ss:[esp+440],1
    145. …………
    146. 0041CF25  |.  64:890D 00000>mov dword ptr fs:[0],ecx
    147. 0041CF2C  |.  81C4 34040000 add esp,434
    148. 0041CF32  \.  C2 0800       retn 8                                         ; 返回

    149. 第二次计算值:

    150. 取第一次计算结果值第一位ASCII值异或倒取第一次计算结果值第一位ASCII值,然后再
    151. 异或2Ah, 结果除以1Ah,余数加上41h,即为计算结果奇数位(当然这里是指依次的);取第一次计算结
    152. 果值第一位ASCII值异或倒取第一次计算结果值第二位ASCII值,然后再异或55h,结果除以1Ah,余数加
    153. 上41h,即为计算结果偶数位.
    154.    
    复制代码

      【总结】

        注册码只与机器码有关,机器码取硬盘ID,经过两次的计算就可以得到正确的注册码啦!
         这个程序在一运行时就需要设置密码的,运行后会在系统盘下WINDOWS\system32下建立一个名为netinfoset的ini文件,忘记自己设置的密码的话,可以在这个文件里找到以前设下的密码,如果你还想领略一下OD的迷人风采,可以在00409429  |.  E8 57E90100   call NetOpt.00427D85  上下断点,中断后在寄存器即可看到真假密码的比较了。
    --------------------------------------------------------------------------------
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-1-14 00:02
  • 签到天数: 138 天

    [LV.7]常住居民III

    发表于 2006-11-5 15:57:45 | 显示全部楼层
    学习!!好文章!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表