• 天狼星加密系统分析


                                天狼星加密系统分析

    /**************************************
    /* 作者:半斤八兩
    /* 博客:http://cnblogs.com/bjblcracked
    /* 日期:2013-11-15  12:01
    /**************************************

    只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

     

     

    0x1.  去除进程检测

     

      天狼星在运行的时候, 会对一些进程做检测.像比如 svn mstsc 之类的,他都会检测到,并提示. 想想枚举进程环3也就那几种方法.一个个测试过去,发现用快照就能河蟹了.

    // 检测进程2

             gpa "CreateToolhelp32Snapshot", "kernel32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 8"

    // 检测进程3

             gpa "Process32Next", "kernel32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 8"

    // 检测进程4

             gpa "Process32First", "kernel32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 8"

    为了以防万一读进程内存,再加个

    // 检测进程1

             gpa "OpenProcess", "kernelbase.dll"

             mov temp, $RESULT

             cmp temp, 0

             je next1

             asm temp, "xor eax, eax"

             asm temp+2, "retn c"

    0x2.  去除窗口名检测

    检测窗口,就用下面这个.

    // 检测窗口

             gpa "GetWindowTextA", "user32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn c"

    大家也可以试试 findwindow, 我没有试过.

    0x3.  去除断网(支持xp)

    这个网上早已经有公布的方法了.但是这个仅是在xp下有效果的.

             gpa "_PfCreateInterface@24", "iphlpapi.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 18"

             bp temp

    //     esto

    //     bc

    0x4.  去除断网(支持Win7)

    Win7的这个,我也是找了挺久的,才找到的. 也分享出来.

    知道这个,也能写个win7限制网络的小程序了. J

    // win7断网络

             gpa "FwpmEngineOpen0", "FWPUCLNT.DLL"

             mov temp, $RESULT

             cmp temp, 0

             je next2

             asm temp, "xor eax, eax"

             asm temp+2, "retn 14"

    0x5.  去除水印(蓝水印)

    两个都可以试一下, 两个都加上的话,播放的控制器,会不显示信息~

    // 干掉水印1

             gpa "DrawTextA", "user32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 14"

    // 干掉水印2

             gpa "ExtTextOutA", "gdi32.dll"

             mov temp, $RESULT

             cmp temp, 0

             je notfound

             asm temp, "xor eax, eax"

             asm temp+2, "retn 20"

    0x6.  去除水印(灰水印)

     

      这个我觉得没有必要更新了, 作者是把注册用户名 添加到每一帧的视频中去的. 想分离的话,对于一小部分人来说(特别是做翻录的),还是有挑战性的 J

    0x7.  去除进程结束暗桩

    0x8.  快速提取avi(需要KEY)

    0x9.  快速提取voice(需要KEY)

    0xA.  绕过内存crc检测

    0xB.  河蟹内存占用过高提示(暗桩)

     

    以上的也都没有必要更新了.

    0xC.  去除黑屏

    0xD.  河蟹硬件加速

    0xE.  支持gdi翻录

    0xF.  移除dx播放

    0x10. 绕过虚拟机检测

    最后的几个,其实最终目的就是翻录.

    只要能在虚拟机里面播放, 那上面的所有问题都解决了.

    这个是必须要更新的. 真的是弱爆了.

    最开始运行的时候,会以一个经典的错误框来结束虚拟机播放.

     

    最开始分析的时候,就从这个错误框开始分析. 可以说一路拔山涉水, 发现了好几种方法可以过虚拟机检测的. 但最终还是选择了最简单的方法. 就是在他检测到虚拟机时,做处理.

    在分析天狼星的时候,发现天狼星用的wmi 的方法来检测是不是虚拟机. 这也算是学到了一个新的方法. 方法是不错, 可惜的是, 没有一点加密处理. 而且检测是在视频EXE里面, 没有在模块里面检测.

     1 /.  55            push ebp
     2 
     3 |.  8BEC          mov ebp,esp
     4 
     5 |.  83C4 D8       add esp,-28
     6 
     7 |.  B8 C4915600   mov eax,19_使用O.005691C4
     8 
     9 |.  E8 F8E91200   call 19_使用O.00535F7C
    10 
    11 |.  66:C745 E8 08>mov word ptr ss:[ebp-18],8
    12 
    13 |.  BA 31785600   mov edx,19_使用O.00567831
    14 
    15 |.  8D45 FC       lea eax,[local.1]
    16 
    17 |.  E8 B9D51300   call 19_使用O.00544B50
    18 
    19 |.  FF45 F4       inc [local.3]
    20 
    21 |.  8B10          mov edx,dword ptr ds:[eax]
    22 
    23 |.  52            push edx
    24 
    25 |.  E8 CAFDFFFF   call 19_使用O.0040736C
    26 
    27 |.  59            pop ecx
    28 
    29 |.  50            push eax
    30 
    31 |.  FF4D F4       dec [local.3]
    32 
    33 |.  8D45 FC       lea eax,[local.1]
    34 
    35 |.  BA 02000000   mov edx,2
    36 
    37 |.  E8 D4D51300   call 19_使用O.00544B88
    38 
    39 |.  58            pop eax
    40 
    41 |.  8B55 D8       mov edx,[local.10]
    42 
    43 |.  64:8915 00000>mov dword ptr fs:[0],edx
    44 
    45 |.  8BE5          mov esp,ebp
    46 
    47 |.  5D            pop ebp
    48 
    49 .  C3            retn

    在通过wmi 读取完后 retn 时, 把 eax 清0 就过了虚拟机检测了.

    紧接着这下面一个函数也有同样的一处检测, 同样 eax 清0这样就能正常的播放了.

    9代  10代 都是一样的.  没有一丁点儿的变化. L)

    0x11. patch(需要KEY)

     

    这个没啥好说的了. 谁能防的住? 

    但是作者你啥处理也不弄, 你至少 cpuid 那, 得保护好吧?

     

    本人最近也在尝试着写支持intel & amd多核的hev.

    不知有没有有兴趣的,一起研究下?

    当然了,主要目的还是 cpuid L

    文章的最后再送一个好玩的小东西.~ J

     

    大概播放10秒左右,你就会发现好玩的东西了 J (详见附件)

     

    PDF和附件下载地址:<<<看雪学院>>>

  • 相关阅读:
    Gym
    HDU 5876 Sparse Graph(补图中求最短路)
    HDU 5873 Football Games(竞赛图兰道定理)
    HDU 5877 Weak Pair(树状数组+dfs+离散化)
    HDU 5963 朋友(找规律博弈)
    HDU 5961 传递
    POJ 3252 Round Numbers(数位dp)
    HDU 4734 F(x) (数位dp)
    HDU 2089 不要62(数位dp模板题)
    HDU 5936 Difference(折半搜索(中途相遇法))
  • 原文地址:https://www.cnblogs.com/BjblCracked/p/3425612.html
Copyright © 2020-2023  润新知