飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6058|回复: 6

风云谷鼠标键盘精灵 1.1 算法分析

[复制链接]
  • TA的每日心情
    开心
    2024-12-1 11:04
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2005-11-2 22:08:01 | 显示全部楼层 |阅读模式
    【破文标题】风云谷鼠标键盘精灵 1.1 算法分析
    【破文作者】飘云[PYG]
    破解平台】winxp
    【作者邮箱】[email protected]
    【软件名称】风云谷鼠标键盘精灵 1.1
    【软件大小】459KB
    【下载地址】http://www.onlinedown.net/soft/38319.htm
    【软件说明】《风云谷鼠标键盘精灵》可以录制鼠标键盘的动作,并保存为脚本。您可以通过执行脚本,让它代替您的双手,并且您可以选择执行次数和执行速度,自动执行一系列鼠标键盘动作。它简单易用,只要您在电脑前用双手可以完成的动作,它都可以替您完成。它用途极其广泛,比如:您可以用它制作网络游戏练功机器人,制作聊天室的刷屏机,用它制作QQ炸弹,用它制作论坛的灌水机,用它来刷网站流量。。。。。。更多的用途需要您发挥自己的聪明才智去挖掘。

    【破解工具】PEID0.92 OD二哥修改版
    【破解步骤】先用PEID探测,为ASPack 2.12 -> Alexey Solodovnikov  脱壳过程不写了,软件是重启验证,OD载入程序找到关键(怎么找关键不要我说了吧):

    0046544B     B8 70564600       mov eax,unpacked.00465670          ; ASCII "166"
    00465450     E8 AB33FAFF       call unpacked.00408800
    00465455     50                push eax
    00465456     6A 01             push 1
    00465458     8D45 EC           lea eax,dword ptr ss:[ebp-14]
    0046545B     50                push eax
    0046545C     B9 7C564600       mov ecx,unpacked.0046567C          ; ASCII "fengyungu"
    00465461     8B55 F4           mov edx,dword ptr ss:[ebp-C]
    00465464     8B45 FC           mov eax,dword ptr ss:[ebp-4]
    00465467     E8 4CF1FFFF       call unpacked.004645B8             ====算法call====
    0046546C     8B45 EC           mov eax,dword ptr ss:[ebp-14]
    0046546F     8B55 F8           mov edx,dword ptr ss:[ebp-8]
    00465472     E8 91F3F9FF       call unpacked.00404808             ;★经典部分★
    00465477     75 1A             jnz short unpacked.00465493        ;暴破点

    ***********************************call 004645B8:*************************************************

    004645B8     55                push ebp
    004645B9     8BEC              mov ebp,esp
    004645BB     83C4 C4           add esp,-3C
    004645BE     53                push ebx
    004645BF     56                push esi
    004645C0     57                push edi
    004645C1     33DB              xor ebx,ebx
    004645C3     895D C4           mov dword ptr ss:[ebp-3C],ebx
    004645C6     895D CC           mov dword ptr ss:[ebp-34],ebx
    004645C9     895D C8           mov dword ptr ss:[ebp-38],ebx
    004645CC     895D D4           mov dword ptr ss:[ebp-2C],ebx
    004645CF     895D D0           mov dword ptr ss:[ebp-30],ebx
    004645D2     895D D8           mov dword ptr ss:[ebp-28],ebx
    004645D5     895D F0           mov dword ptr ss:[ebp-10],ebx
    004645D8     894D F8           mov dword ptr ss:[ebp-8],ecx
    004645DB     8955 FC           mov dword ptr ss:[ebp-4],edx
    004645DE     8B45 FC           mov eax,dword ptr ss:[ebp-4]
    004645E1     E8 C602FAFF       call unpacked.004048AC
    004645E6     8B45 F8           mov eax,dword ptr ss:[ebp-8]
    004645E9     E8 BE02FAFF       call unpacked.004048AC
    004645EE     33C0              xor eax,eax
    004645F0     55                push ebp
    004645F1     68 BD474600       push unpacked.004647BD
    004645F6     64:FF30           push dword ptr fs:[eax]
    004645F9     64:8920           mov dword ptr fs:[eax],esp
    004645FC     837D F4 00        cmp dword ptr ss:[ebp-C],0
    00464600     75 0D             jnz short unpacked.0046460F
    00464602     8D45 F8           lea eax,dword ptr ss:[ebp-8]
    00464605     BA D8474600       mov edx,unpacked.004647D8          ; ASCII "fengxiao"
    0046460A     E8 95FEF9FF       call unpacked.004044A4
    0046460F     8B45 F8           mov eax,dword ptr ss:[ebp-8]
    00464612     E8 AD00FAFF       call unpacked.004046C4             ; 取 "fengyungu"(设它位特征码)长度(9位)
    00464617     8945 F4           mov dword ptr ss:[ebp-C],eax
    0046461A     33F6              xor esi,esi                        ; esi清0 准备下面计算
    0046461C     807D 0C 00        cmp byte ptr ss:[ebp+C],0
    00464620     0F84 99000000     je unpacked.004646BF               ;
    00464626     8B7D 10           mov edi,dword ptr ss:[ebp+10]      ; edi=[ebp+10] =A6  初始值
    00464629     8D45 F0           lea eax,dword ptr ss:[ebp-10]
    0046462C     50                push eax
    0046462D     897D DC           mov dword ptr ss:[ebp-24],edi
    00464630     C645 E0 00        mov byte ptr ss:[ebp-20],0
    00464634     8D55 DC           lea edx,dword ptr ss:[ebp-24]
    00464637     33C9              xor ecx,ecx
    00464639     B8 EC474600       mov eax,unpacked.004647EC          ; ASCII "%1.2x"
    0046463E     E8 C94CFAFF       call unpacked.0040930C
    00464643     8B45 FC           mov eax,dword ptr ss:[ebp-4]
    00464646     E8 7900FAFF       call unpacked.004046C4             ; 取用户名长度
    0046464B     85C0              test eax,eax
    0046464D     0F8E 2F010000     jle unpacked.00464782
    00464653     8945 E4           mov dword ptr ss:[ebp-1C],eax
    00464656     C745 EC 01000000  mov dword ptr ss:[ebp-14],1        ; [EBP-14]赋初始值1
    0046465D     8B45 FC           mov eax,dword ptr ss:[ebp-4]
    00464660     8B55 EC           mov edx,dword ptr ss:[ebp-14]
    00464663     0FB64410 FF       movzx eax,byte ptr ds:[eax+edx-1]  ; 逐位取ascii
    00464668     03C7              add eax,edi                        ; 加上edi的值
    0046466A     B9 FF000000       mov ecx,0FF                        ; ecx = 0FF
    0046466F     99                cdq
    00464670     F7F9              idiv ecx                           ; mod ecx
    00464672     8BDA              mov ebx,edx                        ; 余数放到ebx
    00464674     3B75 F4           cmp esi,dword ptr ss:[ebp-C]
    00464677     7D 03             jge short unpacked.0046467C        ; 大于特征码长度的倍数则跳
    00464679     46                inc esi                            ; 否则esi+1
    0046467A     EB 05             jmp short unpacked.00464681
    0046467C     BE 01000000       mov esi,1                          ; 如果大于特征码长度(9位)的倍数则esi=1  从第一个字符开始
    00464681     8B45 F8           mov eax,dword ptr ss:[ebp-8]       ; 特征码送eax
    00464684     0FB64430 FF       movzx eax,byte ptr ds:[eax+esi-1]  ; 逐位取ascii送eax
    00464689     33D8              xor ebx,eax                        ; 和ebx(上面取得余数) 异或运算 结果放到ebx
    0046468B     8D45 D8           lea eax,dword ptr ss:[ebp-28]
    0046468E     50                push eax
    0046468F     895D DC           mov dword ptr ss:[ebp-24],ebx
    00464692     C645 E0 00        mov byte ptr ss:[ebp-20],0
    00464696     8D55 DC           lea edx,dword ptr ss:[ebp-24]
    00464699     33C9              xor ecx,ecx
    0046469B     B8 EC474600       mov eax,unpacked.004647EC          ; ASCII "%1.2x"
    004646A0     E8 674CFAFF       call unpacked.0040930C             ; ebx 转换成数值
    004646A5     8B55 D8           mov edx,dword ptr ss:[ebp-28]
    004646A8     8D45 F0           lea eax,dword ptr ss:[ebp-10]
    004646AB     E8 1C00FAFF       call unpacked.004046CC
    004646B0     8BFB              mov edi,ebx
    004646B2     FF45 EC           inc dword ptr ss:[ebp-14]          ; [EBP-14]+1    位置指针
    004646B5     FF4D E4           dec dword ptr ss:[ebp-1C]          ; [EBP-1C]-1   长度指针
    004646B8   ^ 75 A3             jnz short unpacked.0046465D        ; 循环
    004646BA     E9 C3000000       jmp unpacked.00464782
    004646BF     8D45 D0           lea eax,dword ptr ss:[ebp-30]
    004646C2     50                push eax
    004646C3     B9 02000000       mov ecx,2
    004646C8     BA 01000000       mov edx,1
    004646CD     8B45 FC           mov eax,dword ptr ss:[ebp-4]
    004646D0     E8 4702FAFF       call unpacked.0040491C
    004646D5     8B4D D0           mov ecx,dword ptr ss:[ebp-30]
    004646D8     8D45 D4           lea eax,dword ptr ss:[ebp-2C]
    004646DB     BA FC474600       mov edx,unpacked.004647FC
    004646E0     E8 2B00FAFF       call unpacked.00404710
    .
    .
    .
    .
    .
    (省略部分代码)
    0046478D     33C0              xor eax,eax
    0046478F     5A                pop edx
    00464790     59                pop ecx
    00464791     59                pop ecx
    00464792     64:8910           mov dword ptr fs:[eax],edx
    00464795     68 C4474600       push unpacked.004647C4
    0046479A     8D45 C4           lea eax,dword ptr ss:[ebp-3C]
    0046479D     BA 06000000       mov edx,6
    004647A2     E8 89FCF9FF       call unpacked.00404430
    004647A7     8D45 F0           lea eax,dword ptr ss:[ebp-10]
    004647AA     E8 5DFCF9FF       call unpacked.0040440C
    004647AF     8D45 F8           lea eax,dword ptr ss:[ebp-8]
    004647B2     BA 02000000       mov edx,2
    004647B7     E8 74FCF9FF       call unpacked.00404430
    004647BC     C3                retn

    【算法总结】
    用到了常数“A6(166)” "fengyungu"   以用户名长度为循环条件:
    逐位取用户名ascii + edi(初始为A6) 然后乘以FF取余保存到ebx
    逐位取"fengyungu"的ascii(如果用户名长度超过9位,则从第一个开始取) 然后 异或ebx转换成数值输出
    注册码:“A6”和上面的没轮循环的结果连接即可

    注册信息:
    piaoyun
    A671BF4FD92AEA37

    【算法注册机
    论坛下载
    *************************************************************************************************
    【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-10-21 20:30
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2005-11-2 23:41:42 | 显示全部楼层
    支持一下,辛苦了
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-11-3 22:13:43 | 显示全部楼层
    支持+学习!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-3 22:39:42 | 显示全部楼层
    支持!好东西
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-3 23:07:08 | 显示全部楼层
    我不看过程,下下来自己也破一下,看看我能不能分析出算法,当不懂时再看看,学习学习!!!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2005-11-4 09:04:36 | 显示全部楼层
    支持```学习算法```
    PYG19周年生日快乐!
  • TA的每日心情

    2024-8-1 20:40
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2005-11-4 18:41:14 | 显示全部楼层
    再次支持算法!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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