飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 13668|回复: 31

[PYG]算法分析入门第五课

[复制链接]
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2005-4-7 17:00:57 | 显示全部楼层 |阅读模式
    【破文标题】[PYG]算法分析入门第五课
    【破文作者】飘云[PYG]
    【作者主页】https://www.chinapyg.com
    破解平台】winxp
    【破解工具】PEiD0.93、w32dasm、OD二哥修改版
    【作者邮箱】piaoyun04@163.com
    【软件名称】快刀斩乱麻 V2.4
    【软件大小】697 KB
    【原版下载】http://www3.skycn.com/soft/7876.html
    【软件简介】本软件是文件分割软件!可以把一个较大的文件,分割成好多份较小的文件,以便装于软盘中携带!别看只有一百多K的大小!功能却很强大它不但能完成普通的分割功能,而且分割后还能把输出文件放在新建的文件夹中,便于您查看和管理,合并后还能删除输出文件,以节省您的硬盘空间!本软件还能从中提取MP3的片断!这样您就可以从中间开始播放您喜爱的歌曲了!另外,本软件还支持批处理功能,这使您能一次分割几十个文件,大大节省了您的时间!本软件界面美观,简单易用您不需学习就能轻松掌握它的所有功能!相信您在磁盘空间不够时,它会成为您的得力助手!^_^
    【分析过程】先用PEiD探测一下:Microsoft Visual C++ 6.0编写,用W32DASM找到以下关键(为了方便,我用OD看的代码):
    004014BE        |> \55                 push ebp                         ;  ★有个call把用户名转换为30位,不足的补0 (因为不是关键,所以没有贴出来)
    004014BF        |.  8B2D 585C4100      mov ebp,dword ptr ds:[415C58] ;ebp=piaoyunOOOOOOOOOOOOOOOOOOOOOOO
    004014C5        |.  33C9               xor ecx,ecx                      ;  ecx清0
    004014C7        |>  8A0429             /mov al,byte ptr ds:[ecx+ebp]    ;  逐位取注册名ascii
    004014CA        |.  83E0 7F            |and eax,7F                      ;  上面取得值和7F做and运算
    004014CD        |.  69C0 3B2E0800      |imul eax,eax,82E3B              ;  然后*82E3B
    004014D3        |.  8BF0               |mov esi,eax                     ;  送到esi保存
    004014D5        |.  B8 E10217B8        |mov eax,B81702E1                ;  初始eax=B81702E1
    004014DA        |.  F7EE               |imul esi                        ;  与esi的值相乘
    004014DC        |.  03D6               |add edx,esi                     ;  edx=edx+esi
    004014DE        |.  C1FA 06            |sar edx,6                       ;  edx的值算术右移6位后保存到edx
    004014E1        |.  8BC2               |mov eax,edx                     ;  送到eax
    004014E3        |.  C1E8 1F            |shr eax,1F                      ;  逻辑右移1F位
    004014E6        |.  03D0               |add edx,eax                     ;  edx=eax+edx
    004014E8        |.  41                 |inc ecx                         ;  计数器加1
    004014E9        |.  83F9 1E            |cmp ecx,1E                      ;  和1E(即30)比较
    004014EC        |.  8DBC17 7A078500    |lea edi,dword ptr ds:[edi+edx+8>
    004014F3        |.^ 7C D2              \jl short x-cut.004014C7         ;  循环
    004014F5        |.  A1 545C4100        mov eax,dword ptr ds:[415C54]    ;  假码16进制送到eax
    004014FA        |.  5D                 pop ebp
    004014FB        |.  3BC7               cmp eax,edi                      ;  edi中的值转换成10进制就是你要的东西~~
    004014FD        |.  74 14              je short x-cut.00401513          ;  ★★爆破点★★
    004014FF        |.  53                 push ebx
    00401500        |.  53                 push ebx
    00401501        |.  68 58504100        push x-cut.00415058
    00401506        |.  E8 BFBF0000        call <jmp.&MFC42.#1200>
    0040150B        |.  393D 545C4100      cmp dword ptr ds:[415C54],edi
    00401511        |.  75 5C              jnz short x-cut.0040156F
    00401513        |>  8D4C24 18          lea ecx,dword ptr ss:[esp+18]       以下开始向注册表写信息
    00401517        |.  8D5424 0C          lea edx,dword ptr ss:[esp+C]
    0040151B        |.  51                 push ecx                         ; /pDisposition
    0040151C        |.  52                 push edx                         ; |pHandle
    0040151D        |.  53                 push ebx                         ; |pSecurity
    0040151E        |.  68 3F000F00        push 0F003F                      ; |Access = KEY_ALL_ACCESS
    00401523        |.  53                 push ebx                         ; |Options
    00401524        |.  53                 push ebx                         ; |Class
    00401525        |.  53                 push ebx                         ; |Reserved
    00401526        |.  68 38504100        push x-cut.00415038              ; |Subkey = "MIME\Database\Charset\sciJSD"
    0040152B        |.  68 00000080        push 80000000                    ; |hKey = HKEY_CLASSES_ROOT
    00401530        |.  C74424 38 08000000 mov dword ptr ss:[esp+38],8      ; |
    00401538        |.  FF15 00004100      call dword ptr ds:[<&ADVAPI32.Re>; \RegCreateKeyExA
    0040153E        |.  8B4C24 0C          mov ecx,dword ptr ss:[esp+C]
    00401542        |.  8D4424 14          lea eax,dword ptr ss:[esp+14]
    00401546        |.  6A 04              push 4                           ; /BufSize = 4
    00401548        |.  50                 push eax                         ; |Buffer
    00401549        |.  6A 04              push 4                           ; |ValueType = REG_DWORD
    0040154B        |.  53                 push ebx                         ; |Reserved
    0040154C        |.  68 30504100        push x-cut.00415030              ; |ValueName = "option"
    00401551        |.  51                 push ecx                         ; |hKey
    00401552        |.  FF15 04004100      call dword ptr ds:[<&ADVAPI32.Re>; \RegSetValueExA
    00401558        |.  8B5424 0C          mov edx,dword ptr ss:[esp+C]
    0040155C        |.  52                 push edx                         ; /hKey
    0040155D        |.  FF15 08004100      call dword ptr ds:[<&ADVAPI32.Re>; \RegCloseKey
    00401563        |.  6A 01              push 1
    00401565        |.  B9 E85B4100        mov ecx,x-cut.00415BE8
    0040156A        |.  E8 55BF0000        call <jmp.&MFC42.#2645>
    0040156F        |>  8D4C24 10          lea ecx,dword ptr ss:[esp+10]
    00401573        |.  C74424 24 FFFFFFFF mov dword ptr ss:[esp+24],-1
    0040157B        |.  E8 E4BE0000        call <jmp.&MFC42.#800>
    00401580        |.  8B4C24 1C          mov ecx,dword ptr ss:[esp+1C]
    00401584        |.  5F                 pop edi
    00401585        |.  5E                 pop esi
    00401586        |.  5B                 pop ebx
    00401587        |.  64:890D 00000000   mov dword ptr fs:[0],ecx
    0040158E        |.  83C4 1C            add esp,1C
    00401591        \.  C3                 retn

    破解总结:
    把用户名转换成30位,再做一系列的循环计算即是注册码

    我的信息:
    用户名:piaoyun
    注册码:277147827

    内存注册机
    中断地址:4014FB
    中断次数:1
    第一字节:3B
    指令长度:2
    寄存器方式-edi-十进制

    附:注册信息保存在HKEY_CLASSES_ROOT\MIME\Database\Charset\SciJSD 删除后又可继续分析~

    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-4-4 09:40
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-4-7 17:31:06 | 显示全部楼层
    辛苦了,学习中~~~~~~
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-10-16 20:44:51 | 显示全部楼层
    顶..........
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 11:39:17 | 显示全部楼层
    学习。。。。。。。。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-15 13:02:08 | 显示全部楼层
    似乎有点点看懂了
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-3-26 13:44:38 | 显示全部楼层
    3q...........
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-5 19:45:19 | 显示全部楼层
    太强了

    谢谢
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-2-21 11:01
  • 签到天数: 65 天

    [LV.6]常住居民II

    发表于 2006-7-24 17:58:55 | 显示全部楼层
    很好的教材,还有些地方没有懂``慢慢看```
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-25 11:36:28 | 显示全部楼层
    全部收藏了,慢慢看!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-7-30 13:53:22 | 显示全部楼层
    收藏了,慢慢看
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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