问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有没有好的 python 混淆器 推荐一个

发布网友 发布时间:2022-04-29 19:01

我来回答

1个回答

热心网友 时间:2022-04-18 21:14

代码混淆,其实很简单。原理就是查找、替换而已。市面上有很多混淆工具,最好是在混淆工具的基础上,自己再写一下,二次混淆。算法也不难。如果需要全局混淆,以及自动混淆,那么就复杂一些了,需要再加上词法分析和语法分析。

如何使用:

1,首先得安装Python。

2,把这个下面这个 confuse.py 文件,复制目标文件夹。

3,更改 raw_name_list 列表里的字符串。改成你想混淆的变量名或者类名方法名。

4,运行python confuse.py 即可混淆该文件夹下的.cs文件。

这段代码其实还是很简单的,只是为大家说明一下混淆思想。如果想更方便的使用,需要再加入一些词法分析、语法分析的算法。

代码如下:

#! /usr/bin/env python

#coding=utf-8


import hashlib

import random

import os 

###############################

# Describe : 混淆Unity脚本文件

# D&P Author By:   常成功

# Create Date:     2014-11-25 

# Modify Date:     2014-11-25

###############################


#想混淆的变量/方法名

raw_name_list = ["function_1", "function_2", "var_1", "var_2",]

#混淆后的变量/方法名

new_name_list = []


#随机可选的字母表

alphabet = ["a", "b", "c", "d", "e", "f", "g",  

"h", "i", "j", "k", "l", "m", "n", "o", "p", "q",  

"r", "s", "t", "u", "v", "w", "x", "y", "z", 



#生成新的变量名

def create_new_name() : 

m = hashlib.md5() 

#生成随机变量名 

for raw_name in raw_name_list: 

m.update(raw_name)

#生成一个16位的字串 

temp_name = m.hexdigest()[0:16]

#合法名称校验

#强制以字母作为变量/方法名的开头 

if temp_name[0].isdigit(): 

initial = random.choice(alphabet)

temp_name = initial + temp_name 

temp_name = temp_name[0:16] 

#不能重名

while(1): 

if temp_name in new_name_list :

initial = random.choice(alphabet)

temp_name = initial + temp_name

temp_name = temp_name[0:16] 

else:

new_name_list.append(temp_name)

break


#混淆文件

def confuse_file(path_filename):  

file_content = "" 

#读文件内容 

f = file(path_filename)

# if no mode is specified, 'r'ead mode is assumed by default

while True:

line = f.readline() 

if len(line) == 0: # Zero length indicates EOF

break 

#混淆

name_index = 0

for raw_name in raw_name_list: 

the_new_name = new_name_list[name_index] 

line = line.replace(raw_name, the_new_name) 

name_index += 1 

file_content += line

f.close() 

#重写文件

f = file(path_filename, 'w') 

f.write(file_content)

f.close() 

#遍历当前目录下的所有.cs文件    

def confuse_all(): 

#获取当前目录

dir = os.getcwd() 

for root, dirs, filename in os.walk(dir):  

for file in filename:  

path_filename = os.path.join(root, file) 

if path_filename.endswith('.cs'): 

confuse_file(path_filename)  

print "Confuse File: ", path_filename 


if __name__=="__main__": 

create_new_name() 

confuse_all() 

#打印一下混淆的情况. 

#如果用文本保存起来, 那么以后可以反混淆, 还原文件

print "Start Confuse ...." 

for j in range(0, len(raw_name_list)) :

print raw_name_list[j] , " --> " , new_name_list[j] 

print "Confuse Complete !" 


声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
镇海立人中学好吗 镇海立人中学升学率 自考学位申请在什么时候 电子科大自考本科申请学士学位要多久 浙江自考毕业两年后还能考学士学位吗 自考学士学位申请超过时限怎么办 自考本科毕业后多久能申请学士学位 自考本科毕业后多久能申请学位 自考要在几年内考完才能申请学位证 春天可以种白菜吗 春天能不能种白菜 假如微软真的断供中国,会给我们的生活产生哪些影响? 想用python写个简易的目录扫描器,需要学些什么或者哪些方面的_百度知 ... 如何用bison和flex写python的语法分析器和词法分析 昨晚做梦梦见与异性接吻,什么意思,我已经结婚了 怎么练手腕力量! 重阳节早上问好用什么词 重阳节孝亲爱国诗词 桌面图标怎么变成这样了 重阳节是怎么的来历 桌面图标变成这个样子怎么办? - 信息提示 传统民俗焕发新活力,它需要融入哪些时代元素呢? 我桌面图标变成这样了怎么办? 如何彻底屏蔽某个网站?【解决给高分】 关于重阳节的打油诗? 我有一个网站,现在不想用了,怎么关掉? 我桌面的图标变成一样的了,如何解决? 佛教九九重阳节的微信问候 电脑桌面图标变成文件格式怎么办? 关于重阳节的话题推文文稿怎么写 如果有一天微软退出中国 如果微软退出中国,如果之后中国自己研究出与微软类似软件微软还收侵权费吗? 微软会退出中国市场? 编写一个程序,输入华氏温度(F),按下列共识计算并输出对应摄氏温度(C) 微软何时退出中国市场? 微软关闭中国工厂的原因是什么 用PL/0的编译程序改写一个Python的解释器是否可行? python写的一个扫描器,运行nosetests没有反应 微软与中国脱钩对中国有什么影响? 微软会退出中国市场吗? 如果微软停止windows中国会怎样 为什么是谷歌而不是微软退出中国? 微软离开中国应该怎么选电脑? MSN是将要退出中国市场吗? 为什么Windows盗版如此之多微软仍然不放弃中国市场? 如果微软关闭了中国的电脑系统,我们有应对措施吗 王者荣耀,和吃鸡,都是马化腾,建造的吗? 中国能不能摆脱微软? 马化腾创建手游吃鸡是用了多少资金? 绝地求生,刺激战场,国际服是属于腾讯的吗?