• 此处无声


    图1
    要求给出nsfocus的注册码。
    因为涉及到MD5与RC6加密算法,所以比较烦人。
    无壳,但有所保护,可以无视。
    运行起来,bp MessageBoxA下断点回溯可以一点一点找到关键代码。
    首先判断

    00401882 |. 83F9 20 cmp ecx, 20 ; 判断长度32位
    00401885 |. 75 28 jnz short CrackMe2.004018AF
    00401887 |. 33C9 xor ecx, ecx
    00401889 |> 8A0411 /mov al, byte ptr ds:[ecx+edx]
    0040188C |. 3C 30 |cmp al, 30 ; 与0比较
    0040188E |. 7C 04 |jl short CrackMe2.00401894
    00401890 |. 3C 39 |cmp al, 39 ; 与9比较
    00401892 |. 7E 08 |jle short CrackMe2.0040189C
    00401894 |> 3C 41 |cmp al, 41
    00401896 |. 7C 0A |jl short CrackMe2.004018A2 ; 与A比较
    00401898 |. 3C 46 |cmp al, 46
    0040189A |. 7F 06 |jg short CrackMe2.004018A2 ; 与F比较
    0040189C |> 41 |inc ecx
    0040189D |. 83F9 20 |cmp ecx, 20
    004018A0 |.^ 7C E7 jl short CrackMe2.00401889
    004018A2 |> 83F9 20 cmp ecx, 20 ; 这里正常
    004018A5 |. 75 08 jnz short CrackMe2.004018AF
    004018A7 |. B8 01000000 mov eax, 1
    

    这里确定注册码为32位,且字符只可能为0-F。瞬间不淡定了,32位,很可能就出现MD5。而注册字符只可能是0-F。
    接着分析,到最后比较之处.大专栏  此处无声r/>图2
    在数据窗口发现如下部分。

    0012F664 35 47 82 5C 33 8C 85 77 9A 67 45 7A 6D 5C 16 47 5G俓3寘w歡EzmG
    0012F674 F6 AD DD 6C 46 EB B6 44 BD A2 65 36 6E 8C A6 75 霏輑F攵D舰e6n對u
    0012F684 B9 B7 DD 1C 42 1E 00 5B C9 A7 F7 0B 84 8E 3D 0E 狗?B.[骚?剮=
    

    其中B9B7DD1C421E005BC9A7F70B848E3D0E是nsfocus的MD5值。
    F6ADDD6C46EBB644BDA265366E8CA675是个人输入的注册码[这里为展示输入为正确注册码]。
    而上面一串3547825C338C85779A67457A6D5C1647瞬间让我不淡定了。
    也就是说,CrackMe判断方式为Eecode(Key)=MD5(Name)。
    加密算法只用到0-F,且可能有自身的密钥串3547825C338C85779A67457A6D5C1647。猜想可能用到RC6加密算法。
    因为有一种方式为RC6Decrypt(MD5(Name))=Key。也算是偶尔查到看雪的一个帖子。
    这样用RC6解密试一下
    图3
    密钥串果然是3547825C338C85779A67457A6D5C1647
    好吧,周折之下总算得到Key:nsfocus:F6ADDD6C46EBB644BDA265366E8CA675

    转自实验吧,原文作者实验吧ID bigtree

  • 相关阅读:
    FFT-C语言
    C语言解析WAV音频文件
    图基(Tukey)检验
    方差分析中均值比较的方法
    模拟信号采样过程
    FS,FT,DFS,DTFT,DFT,FFT的联系和区别
    枚举enum类型
    样本概率统计
    宏和内联函数
    变量的生存期和存储分配
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12046790.html
Copyright © 2020-2023  润新知