python 的混淆后的代码可以还原么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 的混淆后的代码可以还原么相关的知识,希望对你有一定的参考价值。

参考技术A 你好,混淆后一般无法还原,但是你可以还原成MSIL语言。大多数混淆都是流程也混淆,如果流程也混淆了的话那就更不可能还原了。一般混淆后只能跟踪执行,找出程序的执行算法。

如何在python中使用修改后的输出大小绘制混淆矩阵并输出为.svg图像?

【中文标题】如何在python中使用修改后的输出大小绘制混淆矩阵并输出为.svg图像?【英文标题】:How to get a confusion matrix plotted with modified output size and output as .svg image in python? 【发布时间】:2019-11-18 09:00:54 【问题描述】:

我想绘制一个混淆矩阵,因为我有两个矩阵,即 y_test_ 和 y_pred。我希望输出图像为“.svg”。因为我必须将图像放在我的项目报告中,所以我希望它的大小可以修改。我希望能够根据我的论文需要修改图像大小。

我已经尝试过“sklearn.metrics”中的“confusion_matrix”函数。但是输出图像比我需要的太小了。此外,图像为“.png”格式。我使用的代码如下所示。

from sklearn.metrics import confusion_matrix

def plot_confusion_matrix(y_true, y_pred, classes, normalize=False, title=None, cmap=plt.cm.Blues):
    if not title:
        if normalize:
            title = 'Normalized confusion matrix'
        else:
            title = 'Confusion matrix, without normalization'

    cm = confusion_matrix(y_true, y_pred)

    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    print(cm)

    fig, ax = plt.subplots()
    im = ax.imshow(cm, interpolation='nearest', cmap=cmap)

    ax.figure.colorbar(im, ax=ax)
    ax.set(xticks=np.arange(cm.shape[1]), yticks=np.arange(cm.shape[0]), xticklabels=classes, yticklabels=classes, title=title, 
           ylabel='True label',
           xlabel='Predicted label')

    plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")

    fmt = '.2f' if normalize else 'd'
    thresh = cm.max() / 2.

    for i in range(cm.shape[0]):
        for j in range(cm.shape[1]):
            ax.text(j, i, format(cm[i, j], fmt),
                    ha="center", va="center",
                    color="white" if cm[i, j] > thresh else "black")

    fig.tight_layout()
    return ax

plot_confusion_matrix(y_test_, y_pred, classes=class_names, title='Confusion matrix, without normalization')
plot_confusion_matrix(y_test_, y_pred, classes=class_names, normalize=True, title='Normalized confusion matrix')

plt.show()

此代码生成的图像不能清晰地放在纸上,并且不是“.svg”形式。建议我做什么。

【问题讨论】:

【参考方案1】:

为了清晰的输出

您还没有提供完整的代码,但是我认为如果您使用的是 seaborn,您可以使用sns.set(),如下所示

import matplotlib.pyplot as plt
import seaborn as sn
sn.set()
%matplotlib inline

为了将文件保存为 .svg 使用,在调用plt.show()之前进行以下操作@

plt.savefig("test.svg", format="svg")

plt.savefig("test.svg")

【讨论】:

以上是关于python 的混淆后的代码可以还原么的主要内容,如果未能解决你的问题,请参考以下文章

js混淆代码还原-js反混淆:利用js进行赋值实现

压缩后的JS代码怎样解压缩?

使用VBA进行JS反混淆,还原JS代码。

逆向进阶,利用 AST 技术还原 JavaScript 混淆代码

这段JS代码用了混淆,有很多![]+,请帮忙还原。

通过先序遍历和中序遍历后的序列还原二叉树