查看: 1085|回复: 12

[原创软件分享] 一个自己开发的Python代码混淆器——PyCry

[复制链接]

0

技术

2

魅力

1

原创

略有小成

Rank: 4

积分
1098
人气
14
分享
0

最佳新人

发表于 2024-8-25 12:30:20 | 显示全部楼层 |阅读模式
本帖最后由 keykylewu 于 2024-10-27 15:41 编辑

(新版本:https://home.x64bbs.cn/thread-3654-1-1.html)







由于网上没有很好的Python代码混淆器,只有一些功能非常单一的代码混淆器,如:

(测试代码不同)
Opy:

PyObfuscate:

OxyryPythonObfuscator



所以,历时一年,我开发了这款Python代码混淆器,功能如下:
①替换变量名为随机变量名
②替换函数名为随机函数名
③替换类名为随机类名
④混淆字符串
⑤混淆布尔值
⑥混淆整数值
⑦添加干扰代码
⑧混淆后代码多行化


您可以在此下载并使用PyCry!


目前,PyCry还并不完善,有以下bug亟待处理:

BUG-1(已修复)
函数名混淆功能和类名混淆功能在不启用混淆变量名功能时导致结果错误
0.0.0.0

BUG-2
(已修复)
不会对函数调用中的关键词参数替换为混淆名
0.0.0.0

BUG-3
混淆插入在字符串中的转义的16进制字符时FormatLine出错
0.0.0.0

BUG-4(已修复)
混淆浮点值时出错
0.0.0.0

BUG-5(已修复)
将整数1和0作为布尔值进行了混淆
0.0.0.0

BUG-6(已修复)
混淆的源文件编码非UTF-8时崩溃
0.0.0.0

BUG-7
混淆体积较大的代码文件时过程中显示无响应
0.0.0.0

BUG-8(已修复)
文件选择界面关闭窗口会报错
0.0.0.0




此外,如果您在使用过程中发现其他bug,欢迎在此反馈!!






附代码混淆示例:
原代码:
[Python] 纯文本查看 复制代码
from PyQt5 import QtCore, QtGui, QtWidgets
import sys


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(228, 298)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_2.setGeometry(QtCore.QRect(20, 110, 131, 16))
        self.checkBox_2.setChecked(True)
        self.checkBox_2.setObjectName("checkBox_2")
        self.checkBox_3 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_3.setGeometry(QtCore.QRect(20, 140, 201, 16))
        self.checkBox_3.setChecked(True)
        self.checkBox_3.setObjectName("checkBox_3")
        self.checkBox_4 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_4.setGeometry(QtCore.QRect(20, 80, 171, 16))
        self.checkBox_4.setChecked(True)
        self.checkBox_4.setObjectName("checkBox_4")
        self.checkBox_5 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_5.setGeometry(QtCore.QRect(20, 170, 111, 16))
        self.checkBox_5.setChecked(True)
        self.checkBox_5.setObjectName("checkBox_5")
        self.checkBox_6 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_6.setGeometry(QtCore.QRect(20, 50, 151, 16))
        self.checkBox_6.setChecked(True)
        self.checkBox_6.setObjectName("checkBox_6")
        self.checkBox_7 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_7.setGeometry(QtCore.QRect(20, 20, 171, 16))
        self.checkBox_7.setChecked(True)
        self.checkBox_7.setObjectName("checkBox_7")
        self.checkBox_8 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_8.setGeometry(QtCore.QRect(20, 200, 151, 16))
        self.checkBox_8.setChecked(False)
        self.checkBox_8.setObjectName("checkBox_8")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(77, 260, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.checkBox_9 = QtWidgets.QCheckBox(self.centralwidget)
        self.checkBox_9.setEnabled(True)
        self.checkBox_9.setGeometry(QtCore.QRect(20, 230, 151, 16))
        self.checkBox_9.setChecked(False)
        self.checkBox_9.setObjectName("checkBox_9")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "PyCry"))
        self.checkBox_2.setText(_translate("MainWindow", "Obfuscate strings"))
        self.checkBox_3.setText(_translate("MainWindow", "Obfuscate integers and floats"))
        self.checkBox_4.setText(_translate("MainWindow", "Obfuscate function names"))
        self.checkBox_5.setText(_translate("MainWindow", "Obfuscate bools"))
        self.checkBox_6.setText(_translate("MainWindow", "Obfuscate class names"))
        self.checkBox_7.setText(_translate("MainWindow", "Obfuscate variable names"))
        self.checkBox_8.setText(_translate("MainWindow", "Add interference code"))
        self.pushButton.setText(_translate("MainWindow", "Obfuscate"))
        self.checkBox_9.setText(_translate("MainWindow", "Non-PrettyCode"))

if __name__=="__main__":
    app=QtWidgets.QApplication(sys.argv)
    MainWindow=QtWidgets.QMainWindow()
    ui=Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

混淆后代码:
[Python] 纯文本查看 复制代码
from PyQt5 import QtCore, QtGui, QtWidgets
IlTlIIllTlllIl = [2212, 'CQ6e', True]
IlTlIIllTlllIl = [7479, '\\24A', False]
del IlTlIIllTlllIl
IlTlIIllTlllIl = [5419, '?fLO', True]
IlTlIIllTlllIl = 'R+'
IlTlIIllTlllIl = 'tY'
IlTlIIllTlllIl = 3120
IlTlIIllTlllIl = 8285
IlTlIIllTlllIl = 7387
if IlTlIIllTlllIl != False:
    IlTlIIllTlllIl = 'YL'
IlTlIIllTlllIl = [6073, 'WM+D', True]
IlTlIIllTlllIl = 'qo'
IlTlIIllTlllIl = [1393, 'aupG', False]
IlTlIIllTlllIl = 'Sb'
IlTlIIllTlllIl = 'wa'
del IlTlIIllTlllIl
IlTlIIllTlllIl = [8937, 'chKm', True]
IlTlIIllTlllIl = 'G/'
IlTlIIllTlllIl = 188
IlTlIIllTlllIl = 'o?'
import sys
IlTlIIllTlllIl = [8785, 'S!t ', False]
IlTlIIllTlllIl = 4248
if IlTlIIllTlllIl != 'N0':
    IlTlIIllTlllIl = 9097
IlTlIIllTlllIl = ((IlTlIIllTlllIl + 39) * 10 - 16) / 8
del IlTlIIllTlllIl
IlTlIIllTlllIl = [9677, 'F@OX', True]
del IlTlIIllTlllIl
IlTlIIllTlllIl = [3289, 'A1+O', False]
IlTlIIllTlllIl = 6481
IlTlIIllTlllIl = ((IlTlIIllTlllIl + 83) * 11 - 27) / 6
IlTlIIllTlllIl = [9554, 'W?!q', True]
IlTlIIllTlllIl = [209, 'jAU@', False]
IlTlIIllTlllIl = 'LO'
IlTlIIllTlllIl = 8619
IlTlIIllTlllIl = 4615
IlTlIIllTlllIl = [5872, 'f7aw', True]


class IlTlIITlTlllIl(object):

    def setupUi(IlTlIIIITlllIl, IlTlIITITlllIl):
        IlTlIITITlllIl.setObjectName(['Main', '', '', '', '', '', 'ndow',
            'Wi'][0] + ['Main', '', '', '', '', '', 'ndow', 'Wi'][2] + [
            'Main', '', '', '', '', '', 'ndow', 'Wi'][1] + ['Main', '', '',
            '', '', '', 'ndow', 'Wi'][5] + ['Main', '', '', '', '', '',
            'ndow', 'Wi'][4] + ['Main', '', '', '', '', '', 'ndow', 'Wi'][7
            ] + ['Main', '', '', '', '', '', 'ndow', 'Wi'][3] + ['Main', '',
            '', '', '', '', 'ndow', 'Wi'][6])
        IlTlIITITlllIl.resize(34 + 298 * 2 + 1 - 298 * 2 + 1180 * 13 + 8 - 
            3068 * 5 + 2359 * 2 + 185 - 674 * 7 + 0, 35 + 3971 * 7 + 67 - 
            2527 * 11 + 1911 * 5 + 188 - 735 * 13 + 184 * 11 + 8 - 1012 * 2 + 0
            )
        IlTlIIIITlllIl.centralwidget = QtWidgets.QWidget(IlTlIITITlllIl)
        IlTlIIIITlllIl.centralwidget.setObjectName(['wid', '', 'l', 'get',
            '', '', 'centra', ''][7] + ['wid', '', 'l', 'get', '', '',
            'centra', ''][6] + ['wid', '', 'l', 'get', '', '', 'centra', ''
            ][4] + ['wid', '', 'l', 'get', '', '', 'centra', ''][2] + [
            'wid', '', 'l', 'get', '', '', 'centra', ''][5] + ['wid', '',
            'l', 'get', '', '', 'centra', ''][0] + ['wid', '', 'l', 'get',
            '', '', 'centra', ''][1] + ['wid', '', 'l', 'get', '', '',
            'centra', ''][3])
        IlTlIIIITlllIl.checkBox_2 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_2.setGeometry(QtCore.QRect(5 + 1338 * 5 + 5 -
            2230 * 3 + 1001 * 3 + 2 - 273 * 11 + 5698 * 7 + 8 - 3626 * 11 +
            0, 14 + 636 * 2 + 3 - 424 * 3 + 805 * 13 + 81 - 1495 * 7 + 1155 *
            13 + 12 - 3003 * 5 + 0, 8 + 655 * 3 + 32 - 393 * 5 + 2770 * 3 +
            52 - 1662 * 5 + 7618 * 11 + 39 - 6446 * 13 + 0, 0 + 7488 * 7 + 
            4 - 4032 * 13 + 1771 * 13 + 0 - 3289 * 7 + 530 * 7 + 12 - 742 *
            5 + 0))
        IlTlIIIITlllIl.checkBox_2.setChecked(((True & True ^ True ^ True ^ 
            False | True) ^ False | True | True) ^ False)
        IlTlIIIITlllIl.checkBox_2.setObjectName(['', '', 'checkBo', '2', '',
            '', 'x_', ''][1] + ['', '', 'checkBo', '2', '', '', 'x_', ''][0
            ] + ['', '', 'checkBo', '2', '', '', 'x_', ''][2] + ['', '',
            'checkBo', '2', '', '', 'x_', ''][5] + ['', '', 'checkBo', '2',
            '', '', 'x_', ''][4] + ['', '', 'checkBo', '2', '', '', 'x_',
            ''][7] + ['', '', 'checkBo', '2', '', '', 'x_', ''][6] + ['',
            '', 'checkBo', '2', '', '', 'x_', ''][3])
        IlTlIIIITlllIl.checkBox_3 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_3.setGeometry(QtCore.QRect(14 + 546 * 13 + 
            4 - 546 * 13 + 273 * 7 + 1 - 147 * 13 + 3276 * 2 + 1 - 936 * 7 +
            0, 79 + 1280 * 11 + 12 - 2816 * 5 + 2090 * 2 + 1 - 836 * 5 + 
            390 * 2 + 48 - 260 * 3 + 0, 37 + 6578 * 13 + 20 - 6578 * 13 + 
            302 * 3 + 44 - 453 * 2 + 105 * 13 + 100 - 195 * 7 + 0, 0 + 96 *
            7 + 10 - 224 * 3 + 2409 * 11 + 0 - 2409 * 11 + 228 * 2 + 6 - 
            152 * 3 + 0))
        IlTlIIIITlllIl.checkBox_3.setChecked((((False | False) ^ False | 
            False | False) ^ True | True | True) ^ False | True)
        IlTlIIIITlllIl.checkBox_3.setObjectName(['_', '', '', 'kBox', 'c',
            '', '3', 'che'][5] + ['_', '', '', 'kBox', 'c', '', '3', 'che']
            [1] + ['_', '', '', 'kBox', 'c', '', '3', 'che'][7] + ['_', '',
            '', 'kBox', 'c', '', '3', 'che'][4] + ['_', '', '', 'kBox', 'c',
            '', '3', 'che'][2] + ['_', '', '', 'kBox', 'c', '', '3', 'che']
            [3] + ['_', '', '', 'kBox', 'c', '', '3', 'che'][0] + ['_', '',
            '', 'kBox', 'c', '', '3', 'che'][6])
        IlTlIIIITlllIl.checkBox_4 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_4.setGeometry(QtCore.QRect(11 + 1058 * 3 + 
            0 - 1587 * 2 + 3366 * 2 + 6 - 612 * 11 + 1158 * 11 + 3 - 6369 *
            2 + 0, 3 + 6435 * 3 + 6 - 1485 * 13 + 4499 * 13 + 13 - 5317 * 
            11 + 814 * 2 + 58 - 148 * 11 + 0, 74 + 1686 * 3 + 1 - 1686 * 3 +
            147 * 5 + 57 - 245 * 3 + 2475 * 5 + 39 - 2475 * 5 + 0, 0 + 6292 *
            3 + 4 - 1716 * 11 + 296 * 7 + 0 - 1036 * 2 + 6523 * 13 + 12 - 
            7709 * 11 + 0))
        IlTlIIIITlllIl.checkBox_4.setChecked(((False | False | True | False
            ) ^ True ^ False | False) & True & True | True)
        IlTlIIIITlllIl.checkBox_4.setObjectName(['hec', '', 'c', 'kB',
            'ox_4', '', '', ''][1] + ['hec', '', 'c', 'kB', 'ox_4', '', '',
            ''][7] + ['hec', '', 'c', 'kB', 'ox_4', '', '', ''][2] + ['hec',
            '', 'c', 'kB', 'ox_4', '', '', ''][0] + ['hec', '', 'c', 'kB',
            'ox_4', '', '', ''][5] + ['hec', '', 'c', 'kB', 'ox_4', '', '',
            ''][6] + ['hec', '', 'c', 'kB', 'ox_4', '', '', ''][3] + ['hec',
            '', 'c', 'kB', 'ox_4', '', '', ''][4])
        IlTlIIIITlllIl.checkBox_5 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_5.setGeometry(QtCore.QRect(5 + 1197 * 3 + 7 -
            513 * 7 + 1076 * 13 + 5 - 6994 * 2 + 2515 * 11 + 3 - 5533 * 5 +
            0, 4 + 3674 * 11 + 20 - 3674 * 11 + 2534 * 5 + 0 - 1810 * 7 + 
            1128 * 2 + 146 - 1128 * 2 + 0, 64 + 1725 * 11 + 0 - 6325 * 3 + 
            4046 * 7 + 39 - 4046 * 7 + 3262 * 2 + 8 - 932 * 7 + 0, 4 + 2205 *
            2 + 8 - 882 * 5 + 1701 * 13 + 1 - 7371 * 3 + 1606 * 2 + 3 - 292 *
            11 + 0))
        IlTlIIIITlllIl.checkBox_5.setChecked(((((True | True) ^ False | 
            True) & True ^ True) & True | False) & True | True)
        IlTlIIIITlllIl.checkBox_5.setObjectName(['', '', 'c', 'he',
            'kBox_5', '', '', 'c'][2] + ['', '', 'c', 'he', 'kBox_5', '',
            '', 'c'][1] + ['', '', 'c', 'he', 'kBox_5', '', '', 'c'][3] + [
            '', '', 'c', 'he', 'kBox_5', '', '', 'c'][7] + ['', '', 'c',
            'he', 'kBox_5', '', '', 'c'][6] + ['', '', 'c', 'he', 'kBox_5',
            '', '', 'c'][5] + ['', '', 'c', 'he', 'kBox_5', '', '', 'c'][4] +
            ['', '', 'c', 'he', 'kBox_5', '', '', 'c'][0])
        IlTlIIIITlllIl.checkBox_6 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_6.setGeometry(QtCore.QRect(5 + 1635 * 7 + 5 -
            3815 * 3 + 1326 * 5 + 4 - 510 * 13 + 2820 * 2 + 6 - 1128 * 5 + 
            0, 4 + 4598 * 2 + 13 - 836 * 11 + 1465 * 13 + 9 - 3809 * 5 + 
            5456 * 11 + 24 - 5456 * 11 + 0, 23 + 21 * 2 + 5 - 6 * 7 + 102 *
            11 + 107 - 561 * 2 + 637 * 5 + 16 - 455 * 7 + 0, 2 + 542 * 13 +
            3 - 3523 * 2 + 1737 * 3 + 2 - 1737 * 3 + 1227 * 2 + 9 - 818 * 3 +
            0))
        IlTlIIIITlllIl.checkBox_6.setChecked((((True ^ True | False) ^ True |
            True) ^ True) & True & True ^ False | True)
        IlTlIIIITlllIl.checkBox_6.setObjectName(['6', 'eckBox', '', '', '_',
            '', '', 'ch'][2] + ['6', 'eckBox', '', '', '_', '', '', 'ch'][7
            ] + ['6', 'eckBox', '', '', '_', '', '', 'ch'][3] + ['6',
            'eckBox', '', '', '_', '', '', 'ch'][1] + ['6', 'eckBox', '',
            '', '_', '', '', 'ch'][5] + ['6', 'eckBox', '', '', '_', '', '',
            'ch'][4] + ['6', 'eckBox', '', '', '_', '', '', 'ch'][6] + ['6',
            'eckBox', '', '', '_', '', '', 'ch'][0])
        IlTlIIIITlllIl.checkBox_7 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_7.setGeometry(QtCore.QRect(6 + 1707 * 7 + 
            10 - 3983 * 3 + 1118 * 3 + 0 - 258 * 13 + 294 * 11 + 4 - 462 * 
            7 + 0, 11 + 2471 * 2 + 3 - 706 * 7 + 808 * 7 + 3 - 2828 * 2 + 
            638 * 3 + 3 - 174 * 11 + 0, 28 + 4158 * 11 + 33 - 4158 * 11 + 
            5057 * 13 + 84 - 5057 * 13 + 7527 * 5 + 26 - 2895 * 13 + 0, 1 +
            721 * 5 + 4 - 515 * 7 + 6136 * 11 + 10 - 5192 * 13 + 329 * 2 + 
            1 - 94 * 7 + 0))
        IlTlIIIITlllIl.checkBox_7.setChecked((((True ^ False | True | False |
            False) & False ^ False | True) ^ False) & True)
        IlTlIIIITlllIl.checkBox_7.setObjectName(['k', '_7', '', 'c', 'Box',
            '', '', 'hec'][5] + ['k', '_7', '', 'c', 'Box', '', '', 'hec'][
            2] + ['k', '_7', '', 'c', 'Box', '', '', 'hec'][3] + ['k', '_7',
            '', 'c', 'Box', '', '', 'hec'][7] + ['k', '_7', '', 'c', 'Box',
            '', '', 'hec'][0] + ['k', '_7', '', 'c', 'Box', '', '', 'hec'][
            4] + ['k', '_7', '', 'c', 'Box', '', '', 'hec'][1] + ['k', '_7',
            '', 'c', 'Box', '', '', 'hec'][6])
        IlTlIIIITlllIl.checkBox_8 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_8.setGeometry(QtCore.QRect(5 + 1044 * 3 + 0 -
            1044 * 3 + 1130 * 5 + 15 - 2825 * 2 + 1204 * 2 + 0 - 344 * 7 + 
            0, 102 + 2653 * 11 + 3 - 4169 * 7 + 1790 * 3 + 56 - 1074 * 5 + 
            6358 * 7 + 39 - 4046 * 11 + 0, 7 + 268 * 3 + 7 - 402 * 2 + 1981 *
            11 + 123 - 3113 * 7 + 1846 * 5 + 14 - 710 * 13 + 0, 8 + 1335 * 
            2 + 2 - 890 * 3 + 6045 * 13 + 3 - 6045 * 13 + 2380 * 5 + 3 - 
            2380 * 5 + 0))
        IlTlIIIITlllIl.checkBox_8.setChecked(((False & True | True | False |
            True | True | True | True) ^ False) & False)
        IlTlIIIITlllIl.checkBox_8.setObjectName(['e', 'Box_8', '', 'h', '',
            'c', 'ck', ''][5] + ['e', 'Box_8', '', 'h', '', 'c', 'ck', ''][
            2] + ['e', 'Box_8', '', 'h', '', 'c', 'ck', ''][3] + ['e',
            'Box_8', '', 'h', '', 'c', 'ck', ''][0] + ['e', 'Box_8', '',
            'h', '', 'c', 'ck', ''][6] + ['e', 'Box_8', '', 'h', '', 'c',
            'ck', ''][1] + ['e', 'Box_8', '', 'h', '', 'c', 'ck', ''][7] +
            ['e', 'Box_8', '', 'h', '', 'c', 'ck', ''][4])
        IlTlIIIITlllIl.pushButton = QtWidgets.QPushButton(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.pushButton.setGeometry(QtCore.QRect(2 + 429 * 7 + 59 -
            1001 * 3 + 2996 * 3 + 2 - 1284 * 7 + 3871 * 3 + 14 - 1659 * 7 +
            0, 20 + 5473 * 13 + 96 - 5473 * 13 + 5181 * 3 + 2 - 1413 * 11 +
            3871 * 13 + 142 - 7189 * 7 + 0, 9 + 2855 * 3 + 6 - 1713 * 5 + 
            4836 * 2 + 34 - 744 * 13 + 2400 * 5 + 26 - 2400 * 5 + 0, 0 + 
            519 * 7 + 16 - 1211 * 3 + 760 * 2 + 0 - 760 * 2 + 1950 * 7 + 7 -
            2730 * 5 + 0))
        IlTlIIIITlllIl.pushButton.setObjectName(['', 'p', '', '', '',
            'Button', '', 'ush'][0] + ['', 'p', '', '', '', 'Button', '',
            'ush'][1] + ['', 'p', '', '', '', 'Button', '', 'ush'][7] + ['',
            'p', '', '', '', 'Button', '', 'ush'][4] + ['', 'p', '', '', '',
            'Button', '', 'ush'][6] + ['', 'p', '', '', '', 'Button', '',
            'ush'][2] + ['', 'p', '', '', '', 'Button', '', 'ush'][5] + ['',
            'p', '', '', '', 'Button', '', 'ush'][3])
        IlTlIIIITlllIl.checkBox_9 = QtWidgets.QCheckBox(IlTlIIIITlllIl.
            centralwidget)
        IlTlIIIITlllIl.checkBox_9.setEnabled(((True & True & True | False) &
            True & False & False | True) & True & True)
        IlTlIIIITlllIl.checkBox_9.setGeometry(QtCore.QRect(0 + 7722 * 7 + 4 -
            4158 * 13 + 182 * 2 + 3 - 52 * 7 + 791 * 5 + 13 - 565 * 7 + 0, 
            101 + 1524 * 11 + 14 - 5588 * 3 + 848 * 2 + 80 - 848 * 2 + 1610 *
            13 + 35 - 2990 * 7 + 0, 69 + 460 * 11 + 12 - 2530 * 2 + 1689 * 
            7 + 5 - 3941 * 3 + 7059 * 11 + 65 - 5973 * 13 + 0, 0 + 578 * 11 +
            5 - 3179 * 2 + 3993 * 11 + 10 - 3993 * 11 + 806 * 3 + 1 - 186 *
            13 + 0))
        IlTlIIIITlllIl.checkBox_9.setChecked(((False & True ^ False ^ True ^
            True ^ True) & True | True | False) & False)
        IlTlIIIITlllIl.checkBox_9.setObjectName(['c', 'heckBox', '', '', '',
            '', '', '_9'][0] + ['c', 'heckBox', '', '', '', '', '', '_9'][1
            ] + ['c', 'heckBox', '', '', '', '', '', '_9'][4] + ['c',
            'heckBox', '', '', '', '', '', '_9'][5] + ['c', 'heckBox', '',
            '', '', '', '', '_9'][3] + ['c', 'heckBox', '', '', '', '', '',
            '_9'][7] + ['c', 'heckBox', '', '', '', '', '', '_9'][2] + ['c',
            'heckBox', '', '', '', '', '', '_9'][6])
        IlTlIITITlllIl.setCentralWidget(IlTlIIIITlllIl.centralwidget)
        IlTlIIIITlllIl.retranslateUi(IlTlIITITlllIl)
        QtCore.QMetaObject.connectSlotsByName(IlTlIITITlllIl)

    def retranslateUi(IlTlIIIITlllIl, IlTlIITITlllIl):
        IlTlIIIlTlllIl = QtCore.QCoreApplication.translate
        IlTlIITITlllIl.setWindowTitle(IlTlIIIlTlllIl(['', 'a', '', 'inWi',
            'n', 'dow', '', 'M'][6] + ['', 'a', '', 'inWi', 'n', 'dow', '',
            'M'][7] + ['', 'a', '', 'inWi', 'n', 'dow', '', 'M'][1] + ['',
            'a', '', 'inWi', 'n', 'dow', '', 'M'][3] + ['', 'a', '', 'inWi',
            'n', 'dow', '', 'M'][4] + ['', 'a', '', 'inWi', 'n', 'dow', '',
            'M'][0] + ['', 'a', '', 'inWi', 'n', 'dow', '', 'M'][2] + ['',
            'a', '', 'inWi', 'n', 'dow', '', 'M'][5], ['', '', 'P', 'y', '',
            'yCr', '', ''][4] + ['', '', 'P', 'y', '', 'yCr', '', ''][2] +
            ['', '', 'P', 'y', '', 'yCr', '', ''][1] + ['', '', 'P', 'y',
            '', 'yCr', '', ''][5] + ['', '', 'P', 'y', '', 'yCr', '', ''][7
            ] + ['', '', 'P', 'y', '', 'yCr', '', ''][3] + ['', '', 'P',
            'y', '', 'yCr', '', ''][6] + ['', '', 'P', 'y', '', 'yCr', '',
            ''][0]))
        IlTlIIIITlllIl.checkBox_2.setText(IlTlIIIlTlllIl(['M', 'i', 'ow',
            '', 'a', '', 'nWind', ''][0] + ['M', 'i', 'ow', '', 'a', '',
            'nWind', ''][5] + ['M', 'i', 'ow', '', 'a', '', 'nWind', ''][4] +
            ['M', 'i', 'ow', '', 'a', '', 'nWind', ''][1] + ['M', 'i', 'ow',
            '', 'a', '', 'nWind', ''][6] + ['M', 'i', 'ow', '', 'a', '',
            'nWind', ''][7] + ['M', 'i', 'ow', '', 'a', '', 'nWind', ''][2] +
            ['M', 'i', 'ow', '', 'a', '', 'nWind', ''][3], ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][3] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][2] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][0] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][6] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][4] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][5] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][1] + ['r', '',
            'Obfuscate st', '', '', 'ings', '', ''][7]))
        IlTlIIIITlllIl.checkBox_3.setText(IlTlIIIlTlllIl(['M', 'dow', 'in',
            '', '', '', 'W', 'ain'][0] + ['M', 'dow', 'in', '', '', '', 'W',
            'ain'][5] + ['M', 'dow', 'in', '', '', '', 'W', 'ain'][7] + [
            'M', 'dow', 'in', '', '', '', 'W', 'ain'][4] + ['M', 'dow',
            'in', '', '', '', 'W', 'ain'][6] + ['M', 'dow', 'in', '', '',
            '', 'W', 'ain'][3] + ['M', 'dow', 'in', '', '', '', 'W', 'ain']
            [2] + ['M', 'dow', 'in', '', '', '', 'W', 'ain'][1], ['O',
            'and floats', ' ', '', 'gers ', 'scate', 'inte', 'bfu'][0] + [
            'O', 'and floats', ' ', '', 'gers ', 'scate', 'inte', 'bfu'][7] +
            ['O', 'and floats', ' ', '', 'gers ', 'scate', 'inte', 'bfu'][3
            ] + ['O', 'and floats', ' ', '', 'gers ', 'scate', 'inte',
            'bfu'][5] + ['O', 'and floats', ' ', '', 'gers ', 'scate',
            'inte', 'bfu'][2] + ['O', 'and floats', ' ', '', 'gers ',
            'scate', 'inte', 'bfu'][6] + ['O', 'and floats', ' ', '',
            'gers ', 'scate', 'inte', 'bfu'][4] + ['O', 'and floats', ' ',
            '', 'gers ', 'scate', 'inte', 'bfu'][1]))
        IlTlIIIITlllIl.checkBox_4.setText(IlTlIIIlTlllIl(['', '', 'inWind',
            'ow', 'Ma', '', '', ''][5] + ['', '', 'inWind', 'ow', 'Ma', '',
            '', ''][4] + ['', '', 'inWind', 'ow', 'Ma', '', '', ''][7] + [
            '', '', 'inWind', 'ow', 'Ma', '', '', ''][2] + ['', '',
            'inWind', 'ow', 'Ma', '', '', ''][1] + ['', '', 'inWind', 'ow',
            'Ma', '', '', ''][3] + ['', '', 'inWind', 'ow', 'Ma', '', '',
            ''][6] + ['', '', 'inWind', 'ow', 'Ma', '', '', ''][0], [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][0] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][4] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][1] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][2] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][3] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][7] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][6] + [
            'Obfus', 'nction n', '', 'am', 'cate fu', '', 'es', ''][5]))
        IlTlIIIITlllIl.checkBox_5.setText(IlTlIIIlTlllIl(['', '', '', '',
            'Mai', 'n', 'w', 'Windo'][4] + ['', '', '', '', 'Mai', 'n', 'w',
            'Windo'][0] + ['', '', '', '', 'Mai', 'n', 'w', 'Windo'][1] + [
            '', '', '', '', 'Mai', 'n', 'w', 'Windo'][5] + ['', '', '', '',
            'Mai', 'n', 'w', 'Windo'][7] + ['', '', '', '', 'Mai', 'n', 'w',
            'Windo'][3] + ['', '', '', '', 'Mai', 'n', 'w', 'Windo'][6] + [
            '', '', '', '', 'Mai', 'n', 'w', 'Windo'][2], ['f', 'Ob', 'oo',
            'ls', '', 'scate b', 'u', ''][1] + ['f', 'Ob', 'oo', 'ls', '',
            'scate b', 'u', ''][0] + ['f', 'Ob', 'oo', 'ls', '', 'scate b',
            'u', ''][6] + ['f', 'Ob', 'oo', 'ls', '', 'scate b', 'u', ''][5
            ] + ['f', 'Ob', 'oo', 'ls', '', 'scate b', 'u', ''][7] + ['f',
            'Ob', 'oo', 'ls', '', 'scate b', 'u', ''][2] + ['f', 'Ob', 'oo',
            'ls', '', 'scate b', 'u', ''][4] + ['f', 'Ob', 'oo', 'ls', '',
            'scate b', 'u', ''][3]))
        IlTlIIIITlllIl.checkBox_6.setText(IlTlIIIlTlllIl(['M', 'ow', '', '',
            'n', 'ainWi', '', 'd'][0] + ['M', 'ow', '', '', 'n', 'ainWi',
            '', 'd'][6] + ['M', 'ow', '', '', 'n', 'ainWi', '', 'd'][5] + [
            'M', 'ow', '', '', 'n', 'ainWi', '', 'd'][2] + ['M', 'ow', '',
            '', 'n', 'ainWi', '', 'd'][4] + ['M', 'ow', '', '', 'n',
            'ainWi', '', 'd'][7] + ['M', 'ow', '', '', 'n', 'ainWi', '',
            'd'][3] + ['M', 'ow', '', '', 'n', 'ainWi', '', 'd'][1], ['b',
            'm', 'class na', '', 'es', 'ate ', 'fusc', 'O'][7] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][0] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][6] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][3] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][5] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][2] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][1] + ['b', 'm',
            'class na', '', 'es', 'ate ', 'fusc', 'O'][4]))
        IlTlIIIITlllIl.checkBox_7.setText(IlTlIIIlTlllIl(['dow', 'Ma', '',
            '', '', 'i', 'in', 'nW'][1] + ['dow', 'Ma', '', '', '', 'i',
            'in', 'nW'][3] + ['dow', 'Ma', '', '', '', 'i', 'in', 'nW'][5] +
            ['dow', 'Ma', '', '', '', 'i', 'in', 'nW'][7] + ['dow', 'Ma',
            '', '', '', 'i', 'in', 'nW'][4] + ['dow', 'Ma', '', '', '', 'i',
            'in', 'nW'][6] + ['dow', 'Ma', '', '', '', 'i', 'in', 'nW'][0] +
            ['dow', 'Ma', '', '', '', 'i', 'in', 'nW'][2], ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][3] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][5] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][0] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][1] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][6] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][7] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][4] + ['a', '', 's',
            'Obfusc', '', '', 'te variable nam', 'e'][2]))
        IlTlIIIITlllIl.checkBox_8.setText(IlTlIIIlTlllIl(['Ma', '', '', '',
            '', 'w', 'inWind', 'o'][2] + ['Ma', '', '', '', '', 'w',
            'inWind', 'o'][0] + ['Ma', '', '', '', '', 'w', 'inWind', 'o'][
            4] + ['Ma', '', '', '', '', 'w', 'inWind', 'o'][6] + ['Ma', '',
            '', '', '', 'w', 'inWind', 'o'][3] + ['Ma', '', '', '', '', 'w',
            'inWind', 'o'][1] + ['Ma', '', '', '', '', 'w', 'inWind', 'o'][
            7] + ['Ma', '', '', '', '', 'w', 'inWind', 'o'][5], [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][7] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][0] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][2] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][1] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][3] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][4] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][6] + [
            'dd interfer', 'en', '', 'ce cod', 'e', '', '', 'A'][5]))
        IlTlIIIITlllIl.pushButton.setText(IlTlIIIlTlllIl(['', 'indow', '',
            'ainW', '', '', 'M', ''][7] + ['', 'indow', '', 'ainW', '', '',
            'M', ''][4] + ['', 'indow', '', 'ainW', '', '', 'M', ''][5] + [
            '', 'indow', '', 'ainW', '', '', 'M', ''][6] + ['', 'indow', '',
            'ainW', '', '', 'M', ''][0] + ['', 'indow', '', 'ainW', '', '',
            'M', ''][3] + ['', 'indow', '', 'ainW', '', '', 'M', ''][2] + [
            '', 'indow', '', 'ainW', '', '', 'M', ''][1], ['', 'te', 'ca',
            '', 'f', 'us', 'Ob', ''][6] + ['', 'te', 'ca', '', 'f', 'us',
            'Ob', ''][0] + ['', 'te', 'ca', '', 'f', 'us', 'Ob', ''][7] + [
            '', 'te', 'ca', '', 'f', 'us', 'Ob', ''][4] + ['', 'te', 'ca',
            '', 'f', 'us', 'Ob', ''][5] + ['', 'te', 'ca', '', 'f', 'us',
            'Ob', ''][2] + ['', 'te', 'ca', '', 'f', 'us', 'Ob', ''][1] + [
            '', 'te', 'ca', '', 'f', 'us', 'Ob', ''][3]))
        IlTlIIIITlllIl.checkBox_9.setText(IlTlIIIlTlllIl(['Mai', 'Window',
            'n', '', '', '', '', ''][3] + ['Mai', 'Window', 'n', '', '', '',
            '', ''][4] + ['Mai', 'Window', 'n', '', '', '', '', ''][7] + [
            'Mai', 'Window', 'n', '', '', '', '', ''][6] + ['Mai', 'Window',
            'n', '', '', '', '', ''][0] + ['Mai', 'Window', 'n', '', '', '',
            '', ''][2] + ['Mai', 'Window', 'n', '', '', '', '', ''][1] + [
            'Mai', 'Window', 'n', '', '', '', '', ''][5], ['N', 'o', '',
            'tyCo', 'et', 'd', 'e', 'n-Pr'][0] + ['N', 'o', '', 'tyCo',
            'et', 'd', 'e', 'n-Pr'][1] + ['N', 'o', '', 'tyCo', 'et', 'd',
            'e', 'n-Pr'][7] + ['N', 'o', '', 'tyCo', 'et', 'd', 'e', 'n-Pr'
            ][4] + ['N', 'o', '', 'tyCo', 'et', 'd', 'e', 'n-Pr'][2] + ['N',
            'o', '', 'tyCo', 'et', 'd', 'e', 'n-Pr'][3] + ['N', 'o', '',
            'tyCo', 'et', 'd', 'e', 'n-Pr'][5] + ['N', 'o', '', 'tyCo',
            'et', 'd', 'e', 'n-Pr'][6]))


if __name__ == ['__m', '', 'in_', '', '', '', 'a', '_'][3] + ['__m', '',
    'in_', '', '', '', 'a', '_'][0] + ['__m', '', 'in_', '', '', '', 'a', '_'][
    4] + ['__m', '', 'in_', '', '', '', 'a', '_'][6] + ['__m', '', 'in_',
    '', '', '', 'a', '_'][1] + ['__m', '', 'in_', '', '', '', 'a', '_'][5] + [
    '__m', '', 'in_', '', '', '', 'a', '_'][2] + ['__m', '', 'in_', '', '',
    '', 'a', '_'][7]:
    IlTlIIITTlllIl = QtWidgets.QApplication(sys.argv)
    IlTlIITITlllIl = QtWidgets.QMainWindow()
    IlTlIIlTTlllIl = IlTlIITlTlllIl()
    IlTlIIlTTlllIl.setupUi(IlTlIITITlllIl)
    IlTlIITITlllIl.show()
    sys.exit(IlTlIIITTlllIl.exec_())

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 4经验 +10 魅力 +2 人气 +12 收起 理由
luxingyu329 + 1 很给力!
YFSafe + 10 赞一个!
xiaomeng + 2 + 3
faryou + 8 很给力!

查看全部评分

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2024-8-25 16:37:11 | 显示全部楼层
不错不错!您可以考虑上传到pypi哦

@keykylewu
Manners maketh man

0

技术

2

魅力

1

原创

略有小成

Rank: 4

积分
1098
人气
14
分享
0

最佳新人

 楼主| 发表于 2024-8-25 19:58:52 | 显示全部楼层
xiaomeng 发表于 2024-8-25 16:37
不错不错!您可以考虑上传到pypi哦

@keykylewu

有点不明白pypi怎么用,好像不同的库用pip安装下来之后目录有时候还不一定一样。
还是说上传的时候我可以配置好再加个备注

0

技术

0

魅力

0

原创

略有小成

Rank: 4

积分
1701
人气
0
分享
0
发表于 2024-8-26 08:52:25 | 显示全部楼层
很棒喔
真是太好了

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2024-8-26 15:48:54 | 显示全部楼层
keykylewu 发表于 2024-8-25 19:58
有点不明白pypi怎么用,好像不同的库用pip安装下来之后目录有时候还不一定一样。
还是说上传的时候我可以 ...

配置好,之后用命令行加入环境变量,这样一输入你程序的名称就可以运行了,比较方便

比如说

pycry -encrypt xxx.py
Manners maketh man

0

技术

2

魅力

1

原创

略有小成

Rank: 4

积分
1098
人气
14
分享
0

最佳新人

 楼主| 发表于 2024-8-27 11:12:49 | 显示全部楼层
xiaomeng 发表于 2024-8-26 15:48
配置好,之后用命令行加入环境变量,这样一输入你程序的名称就可以运行了,比较方便

比如说

哦,这样啊,谢谢指教

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5114
人气
137
分享
5
发表于 2024-8-27 19:32:43 | 显示全部楼层
keykylewu 发表于 2024-8-27 11:12
哦,这样啊,谢谢指教

我觉得能把混淆研究到你这个程度已经特别厉害了,不过把python转成c++代码再编译不是更难破解吗,但是这样就不叫混淆了
Manners maketh man

0

技术

2

魅力

1

原创

略有小成

Rank: 4

积分
1098
人气
14
分享
0

最佳新人

 楼主| 发表于 2024-8-27 21:47:56 | 显示全部楼层
xiaomeng 发表于 2024-8-27 19:32
我觉得能把混淆研究到你这个程度已经特别厉害了,不过把python转成c++代码再编译不是更难破解吗 ...

过奖了,这个就是自己先设计几个混淆算法,然后随便找一堆代码来生成和分析ast.dump对象,然后根据找出来的结构设计重写ast.NodeTransformer类,最后一点点啃astor库的代码,研究一下PrettyCode函数,也自己改成别的东西,就完事了

难点在于实际使用中不一定遇到什么神奇的语法或者不常用的函数和类,得找一堆示例代码来测试

0

技术

2

魅力

1

原创

略有小成

Rank: 4

积分
1098
人气
14
分享
0

最佳新人

 楼主| 发表于 2024-8-28 22:04:25 | 显示全部楼层
预告:
BUG-1和BUG-2会在下一个版本(0.0.2.0)中修复

0

技术

0

魅力

0

原创

青出于蓝

Rank: 5Rank: 5

积分
3336
人气
13
分享
5
发表于 2024-8-29 16:54:41 | 显示全部楼层
keykylewu 发表于 2024-8-28 22:04
预告:
BUG-1和BUG-2会在下一个版本(0.0.2.0)中修复

虽然不一定用得上,但是还是想说:牛逼
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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