祝大家中秋节快乐~
得闲记录点东西
加密软件
首先,加密软件长这样。
进程名sdhelper2.exe。
他有一个授权软件列表,使用授权软件才能打开被加密的文件。
使用授权软件修改后的文件会被加密,被加密的文件右下角会有个小锁。

不在授权列表中的 exe 打开被加密的文件
可以看到编码被进行了改动,非授权软件无法打开被加密的文件。
应对办法
首先,受多方面投诉,对ini文件进行加密处理,使用授权软件修改 ini 文件并不会加密。
编写解密.bat脚本实现手动解密。
- 重命名当前文件夹中的
*.ini文件为*.bak。 - 因
python位于授权列表中,可打开解密文件,故选用python编写脚本,以二进制方式打开文件rb。 - 新建文件,后缀为
.ini,以二进制写文件wb。 - 删除原文件。
- 将新建的
.ini文件重命名为原文件名。(此处不可用python脚本进行,会被重新加密) - 将
*.bak重命名回*.ini。 - (针对
*.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脚本嵌入批处理脚本中。
