首页 技术经验

dnspy反编译后代码加密

dnspy反编译后代码加密 dnspy 编译 代码 加密
魔兔技术网为你分享关于《dnspy反编译后代码加密》的相关技术文章,通过对dnspy反编译后代码加密的学习,希望你能对dnspy反编译后代码加密的相关知识:dnspy反编译后代码加密,dnspy,反,编译,后,代码,加密,有更深层次的理解,并对dnspy反编译后代码加密学有所得!,下面是详细的技术问答讲解!
阅读数
132837
话题:dnspy反编译后代码加密

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

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

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

python的文件指针可以退回吗

python的文件指针可以退回吗

仅供参考 #文件回退i行def lastline(i): while True: try: f.seek(-2, 1) if f.read(1) == b'\n': i-=1 if i == -1: break except: f.seek(0, 0) returnif __name__ == "__main__": f = open('xy.txt','rb') pos = 0 for i in range(10): line = f.readline() pos += len(line) lastline(3) print(f.readline().strip()) f.close()


如何反编译unityengine

如何反编译unityengine

首先从 https://github.com/ata4/disunity/releases 下载 DisUnity v0.3.1
也可以直接用工具下载 https://github.com/ata4/disunity/releases/download/v0.3.1/disunity_v0.3.1.zip
我解压到了D:\disunity_v0.3.1 这个路径 大家根据自己的需求来选择自己的路径吧

步骤二:确保安装了 Java JDK 7
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
检测是否安装成功 在cmd输入 java -version 可以打印出版本号 说明应该没问题了。如果没有成功这里就不详细介绍了 问下度娘或者google一下(虽然最近google有些杯具了),请大家见谅。

步骤三:获取可以破解的源文件 首先我们需要Android的 .apk 或者 IOS的 .ipa 或者网页游戏的.unity3d 和 .boundle 文件
Android: 先看看 Android 的 apk 安装包吧,把下好的文件后缀名.apk 直接改成 .rar 解压到单独的文件夹 可以反编译的文件的路径就在:解压后的文件夹\assets\bin\Data
IOS: ios的 ipa的安装包 也是同样的原理 把.ipa 改成 .rar 然后解压到单独的文件夹 可以反编译的文件的路径就在: 解压后的文件夹\Payload\godoflight.app\Data (这里我用的是神之光举例子 所以是 godoflight.app)
网页: 这个我们重点讲一下

下面我讲一下如何提取unity3d做的网页游戏的资源

首先我们先要下载 火狐浏览器 http://www.firefox.com.cn/ 这是官方网站 请大家自行下载吧。

然后安装 FireBug 插件 上图了

然后搜索 Firebug 找到后点安装

安装成功后这里会有个虫子的图标

准备工作完成了,下面我们找一个unity3d开发的网页游戏 这里我们用 《冰火破坏神》 来举例,算是给完美做广告了 虽然他们一定会恨我的(坏笑)。


先登录游戏,然后打开firebug 如图 点 [网络] -> [全部] 如果目前网页中有unity的资源的话 就会在下面的列表里出现


如何防止Unity3D代码被反编译

如何防止Unity3D代码被反编译

加密原理(无需Unity源码):

1. IDA Pro打开libmono.so, 修改mono_image_open_from_data_with_name为
mono_image_open_from_data_with_name_0,
2. 替换实现mono_image_open_from_data_with_name,
extern mono_image_open_from_data_with_name_0(...);
mono_image_open_from_data_with_name(...) {
MonoImage *img = mono_image_open_from_data_with_name_0(...);
//发现数据文件头不是DLL前缀则解密 img->raw_data, 相应修改img->raw_data_len
return img;
}
3. 重新打包libmono.so; 替换Unity3D中的android下的版本.
4. 另外写个加密的工具,植入构建环境(MonoDeveloper或VS,添加一个打包后Build Phase来加密DLL); (IOS下禁用JIT固采用AOT编译,DLL中没有逻辑代码,所以无需操心);


unity防止反编译怎么做?

unity防止反编译怎么做?

可使用Virbox Protector加壳工具对Unity3D代码进行加密。Unity3D使用开源mono C#语法,代码会编译到Assembly-CSharp.dll。可使用深思加壳工具Virbox Protector对Assembly-CSharp.dll做加密,无需手动加密Assembly-CSharp.dll代码,自动编译mono,Assembly-CSharp.dll代码按需解密,只有调用到才会在内存解密,不调用不解密,无法一次解出所有的代码。

DSProtector 工具可以对 Unity3D 引擎开发的软件中的.ress 和resources 等资源文件进行加密,防止软件或游戏中的资源被非法提取。

配合使用深思精锐5加密锁,可控制软件的授权使用。也可使用云许可及软许可进行使用。整个保护方案就形成了代码,数据,授权三位一体的防护
功能特点
1操作便捷,提供工具操作,加壳及发授权快速完成
2不影响性能,不降低游戏帧数,不影响游戏运行性能
3.自带反黑引擎,驱动级别反调试,秒杀市面的所有调试器
4.高安全性,加壳安全度高,对抗多种反编译逆向工具
5.授权控制,轻松实现软件限时限次等使用控制
6.定制SDK,每个开发商独有SDK
7.多种加密技术,碎片代码执行、虚拟化、混淆等
8.三种许可形式,云许可联网即可使用,软许可离线及绑定设备,新一代加密锁性能强劲
应对风险
l dll反编译
l 资源被提取
l 恶意代码注入
l 内存dump

产品选型
可选三种许可形式配套使用:加密锁、云许可、软许可
三种许可形式可灵活切换。加密锁为深思新一代精锐5加密锁,性能强劲。云许可及软许可无需硬件,云许可联网即可使用,软许可支持离线使用且可绑定机器。同时三种许可轻松实现限时、限次、限模块等软件销售模式的控制。


unity 如何混淆代码?

unity 如何混淆代码?

unity 混淆代码加密推荐深思精锐5加密狗。

深思精锐5加密狗可使用Virbox Protector加壳工具对Unity3D代码进行加密。Unity3D使用开源mono C#语法,代码会编译到Assembly-CSharp.dll。可使用深思加壳工具Virbox Protector对Assembly-CSharp.dll做加密,无需手动加密Assembly-CSharp.dll代码,自动编译mono,Assembly-CSharp.dll代码按需解密,只有调用到才会在内存解密,不调用不解密,无法一次解出所有的代码。

DSProtector 工具可以对 Unity3D 引擎开发的软件中的.ress 和resources 等资源文件进行加密,防止软件或游戏中的资源被非法提取。

配合使用深思精锐5加密锁,可控制软件的授权使用。也可使用云许可及软许可进行使用。整个保护方案就形成了代码,数据,授权三位一体的防护
功能特点
1操作便捷,提供工具操作,加壳及发授权快速完成
2不影响性能,不降低游戏帧数,不影响游戏运行性能
3.自带反黑引擎,驱动级别反调试,秒杀市面的所有调试器
4.高安全性,加壳安全度高,对抗多种反编译逆向工具
5.授权控制,轻松实现软件限时限次等使用控制
6.定制SDK,每个开发商独有SDK
7.多种加密技术,碎片代码执行、虚拟化、混淆等
8.三种许可形式,云许可联网即可使用,软许可离线及绑定设备,新一代加密锁性能强劲
应对风险
l dll反编译
l 资源被提取
l 恶意代码注入
l 内存dump

产品选型
可选三种许可形式配套使用:加密锁、云许可、软许可
三种许可形式可灵活切换。加密锁为深思新一代精锐5加密锁,性能强劲。云许可及软许可无需硬件,云许可联网即可使用,软许可支持离线使用且可绑定机器。同时三种许可轻松实现限时、限次、限模块等软件销售模式的控制。


使用python语言如何保密源代码以防止逆向工程?

使用python语言如何保密源代码以防止逆向工程?

python的pyc基本上就是字节码,是很容易复原成python程序的。

目前python界内没有很好的混淆工具,只能听天由命了,或者自己写一些简单的混淆脚本,对py文件进行一定的处理,例如变量名称替换,无用命令的添加等等。

又或者去研究下R python,在有限的python语法中,将py程序直接编译到纯C的exe中。这样只能反汇编了。


Python开发中常用的模块有哪些

Python开发中常用的模块有哪些

一、导入模块 import module from module.xx import xx from module.xx import xx as rename from module.xx import * 二、开源模块 yum、pip、apt-get 源码编译安装:Python setup.py build Python setup install 三、常用模块 os模块#用作系统级别的工作 sys模块#提供解释器相关操作 hashlib模块# 用于加密相关的操作 json和pickle模块 #用于序列化数据 subprocess模块 shuit模块 #文件的复制移动 logging模块#格式化记录日志 random模块 用于取随机数 time datetime模块时间模块 re模块 正则匹配

python源码编程成pyc后,怎么防止反编译

有python下DES加密解密模块吗

一个例子给你参考;
>>> import win32com.client
>>> EncryptedData = win32com.client.Dispatch('CAPICOM.EncryptedData')
>>> EncryptedData.Algorithm.KeyLength = 5
>>> EncryptedData.Algorithm.Name = 2
>>> EncryptedData.SetSecret('mypass')
>>> EncryptedData.Content = 'Hello world'
>>> s = EncryptedData.Encrypt()
>>> s
u'MGEGCSsGAQQBgjdYA6BUMFIGCisGAQQBgjdYAwGgRDBCAgMCAAECAmYBAgFABAjj\r\nk6mhbmNo7AQQPzxLV17fVCCYUGLD+nGfigQYQfGjLZxf4C6n7diHGlmP5T1ucS8a\r\nX4Vw\r\n'
>>> EncryptedData.Decrypt(s)
>>> EncryptedData.Content
u'Hello world'


修改注册表时,编辑值时出错。怎么回事?有详细内容

排除病毒的问题 直接进入安全模式,进行修改start page

解决办法:
①在Windows 启动后,进入安全模式:

点击“开始”→“运行”菜单项,在“打开”栏中键入regedit,然后按“确定”键;

②展开注册表到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main下,在右半部分窗口中找到串值“Start Page”双击,将Start Page 的键值改为“about:blank”即可;

③同理,展开注册表到HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main在右半部分窗口中找到串值“Start Page”,然后按②中所述方法处理。

④退出注册表编辑器,重新启动计算机,一切OK了!
不行就运行注册表编辑器regedit.exe,然后依次展开HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run主键,然后将其下的registry.exe 子键删除,然后删除自运行程序c:\Program Files\registry.exe,最后从IE 选项中重新设置起始页,一切问题都解决啦!
那就将HKEYusers ie下的Start Page 直接删除了


python写的程序,转成了exe文件,怎么进行反编译为python源码

python写的程序,转成了exe文件,怎么进行反编译为python源码

1、电脑桌面,输入“win+R”组合键,在弹出窗口中输入“cmd”,点击确定。 2、安装Pyinstaller,在cmd窗口,输入指令“pip insall pyinstaller”进行网络安装。 3、等待并且确认pyinstaller安装完毕。 4、安装完毕后,进入要生成exe文件的文件目录。 5、使用指令“pyinstaller -F xxx.py”生成exe文件。 6、等待生成完毕后,回到源文件目录,在dist目录下,找到生成的exe文件,即可完成Python生成exe文件操作。

求助:python相同源码生成的exe,为什么不同,是什么原因引起的,还忘大神指点

你解开执行文件。如果是单个的文件,则执行它的时候在临时目录里可以找到解开的包。 在解开后的目录中找到pyc文件,然后利用反编译工具就可以将pyc反编译成py文件。 但是有些程序是做了加密的。它们的pyc是它们重新写python编译器后自定义的加密格式,用通常的办法无法解开。 需要在内存里反编译。 内存里反编译这个技术目前还没有公开,不过难度应该不大,有兴趣你可以自己试着按python规范写一个。


python生成的exe,反编译成py的工具,大神提供下,感谢

你解开执行文件。如果是单个的文件,则执行它的时候在临时目录里可以找到解开的包。

在解开后的目录中找到pyc文件,然后利用反编译工具就可以将pyc反编译成py文件。

但是有些程序是做了加密的。它们的pyc是它们重新写python编译器后自定义的加密格式,用通常的办法无法解开。 需要在内存里反编译。
-------------
pyc反编译工具有很多
你搜索uncompyle2, decompyle2, DePython, unpyc, uncompyle, pycdc 等
听说python2.7而言, uncompyler是最好用的工具。


python源码编程成pyc后,怎么防止反编译

无法防止反编译,但可以混淆,让你即使反编译了,也看不懂语法下面一段源码 sd=1def seed(s): global sd sd=sdef randn(n): global sd sd=(sd*1103515245 + 12345) & 0x7fffffff return sd%ndef main(): seed(11) for i in xrange(4) : print randn(313)if __name__=='__main__': main()混淆后 oo000 = 1if 9 - 9: Ii . o0o00Oo0O - iI11I1II1I1Idef oooo ( s ) : global oo000 oo000 = s if 11 - 11: ii1I - ooO0OO000odef ii11i ( n ) : global oo000 oo000 = ( oo000 * 1103515245 + 12345 ) & 0x7fffffff return oo000 % n if 66 - 66: iIiI * iIiiiI1IiI1I1 * o0OoOoOO00def I11i ( ) : oooo ( 11 ) for O0O in xrange ( 4 ) : print ii11i ( 313 ) if 78 - 78: i11ii11iIi11i . oOoO0oo0OOOo + IiiI / Iii1ii1II11iif __name__ == '__main__' : I11i ( ) # dd678faae9ac167bc83abf78e5cb2f3f0688d3a3