LCCCCC


爱宝宝,爱学习,爱生活的SZUer.


首页

对某公司加密软件的研究



祝大家中秋节快乐~

得闲记录点东西


加密软件

首先,加密软件长这样。 进程名sdhelper2.exe 他有一个授权软件列表,使用授权软件才能打开被加密的文件。 使用授权软件修改后的文件会被加密,被加密的文件右下角会有个小锁。

不在授权列表中的 exe 打开被加密的文件

可以看到编码被进行了改动,非授权软件无法打开被加密的文件。

应对办法

首先,受多方面投诉,对ini文件进行加密处理,使用授权软件修改 ini 文件并不会加密。 编写解密.bat脚本实现手动解密。

  1. 重命名当前文件夹中的*.ini 文件为*.bak
  2. python位于授权列表中,可打开解密文件,故选用 python编写脚本,以二进制方式打开文件rb
  3. 新建文件,后缀为.ini,以二进制写文件wb
  4. 删除原文件。
  5. 将新建的.ini文件重命名为原文件名。(此处不可用 python脚本进行,会被重新加密)
  6. *.bak重命名回*.ini
  7. (针对 *.pdf 文件,解密后不久就会被再次加密,故将其先解密,然后用 WinRAR进行压缩打包,此处需将 WinRAR 加入 PATH 中)。

批处理脚本如下

rem = """
@ECHO OFF&PUSHD %~DP0 &TITLE decode &chcp 65001 &mode con cols=35 lines=8
color 3F
set /p xj= 请输入文件后缀(不包括.):
for %%i in (*.ini) do (ren %%i *.bak)
python.exe %0 %xj%
if  /i "%xj%" == "pdf" goto PDF
for %%i in (*.ini) do (ren %%i *.%xj%)
for %%i in (*.bak) do (ren %%i *.ini)
echo 完成!
::pause
goto endofPython

:PDF
for %%i in (*.ini) do (ren %%i *.%xj%)
for %%i in (*.%xj%) do (winrar a %%~ni.zip %%~ni.pdf)
for %%i in (*.bak) do (ren %%i *.ini)
echo finished!
::pause
goto endofPython
"""

import os
import sys

suffix = sys.argv[1]  
files = os.listdir('.')
for name in files:
    if os.path.splitext(name)[1]=='.'+suffix:
        f = open(name,'rb')
        try:
            all_the_text = f.read()
        finally:
            f.close()
        new_name = os.path.splitext(name)[0]+'.ini'
        writeFile = open(os.path.splitext(name)[0]+'.ini','wb')
        writeFile.write(all_the_text)
        writeFile.close()
        os.remove(name)  
  
rem = """
:endofPython """

此处利用 python的注释符```和批处理的注释符 rem实现将python脚本嵌入批处理脚本中。

参考文献:

  1. python脚本嵌入bat脚本执行
  2. WinRAR的命令行模式用法介绍
  3. 【Window】解决window的bat脚本执行出现中文乱码的问题
  4. windows批处理文件路径与名称提取
最近的文章

某猫VPN破解图记

仅记录一下破解过程,一切尽在图片中破解完毕…

原创分享继续阅读
更早的文章

pyinstaller 打包py脚本成exe

使用 pyinstaller打包 py 脚本 到 github 下载pyinstaller Windows 平台下载 zip,解压。 切换到目录, 运行python setup.py install开始安装。 切换到要打包的程序目录 pyinstaller -F test.py。(-F 打包成单文件 运行会很慢,但是简洁)Problem1 RecursionError: maximum recursion depth exceeded解决方案找到*.spec文件,在第二行添加imp...…

原创分享继续阅读