代码混淆

OpenMP中几个容易混淆的函数(线程数量/线程ID/线程最大数)以及并行区域线程数量的确定

匿名 (未验证) 提交于 2019-12-03 00:26:01
说明:这部分内容比较基础,主要是分析几个容易混淆的OpenMP函数,加以理解。 (1)并行区域数量的确定: 在这里,先回顾一下OpenMP的parallel并行区域线程数量的确定,对于一个并行区域,有一个team的线程去执行,那么该分配多少个线程去执行呢? OpenMP的遇到parallel指令后创建的线程team的数量由如下过程决定: 1. if子句的结果 5. 编译器默认实现(一般而言,默认实现的是总线程数等于处理器的核心数) ( http://blog.csdn.net/gengshenghong/article/details/6956878 查看更多信息) 2、3、4优先级依次降低的,也就是前面的设置可以覆盖后面的设置,当然也是相对而言,num_threads子句只会影响当前的并行区域,而omp_set_num_threads对OMP_NUM_THREADS环境变量的覆盖是在整个程序运行期间全局的。 (2)几个容易混淆的OpenMP函数 获取线程的num,即ID。这里的ID是OpenMP的team内的ID,在OpenMP中,一个team内的线程的ID是俺顺序排列的,0、1、2... 说明:此函数在并行区域外或者并行区域内都可以调用。在并行区域外,获取的是master线程的ID,即为0。在并行区域内,每次执行到此函数,获取的是当前执行线程的ID。 此函数比较容易理解

unity 使用Dotfuscator给dll混淆

匿名 (未验证) 提交于 2019-12-02 23:42:01
我们用C#写完代码后,无论想做热更新,还是想加密防破解,都可以把代码编成dll库,然后用第三方工具做混淆 但我们做混淆时要注意,混淆后要unity能识别,正确运行,并且外部也能正常调用,所以思路是只混淆私有函数、私有变量,最好还能混淆函数内的逻辑,目前只找到Dotfuscator4.2破解版本能满足我的需求 1首先我们把dll拖到input里 选中Library,这样会只混淆私有的变量名和方法名 2我们在看下Options,这里是全局设置,我们只开启流程混淆和重命名,选No,其它禁用Yes,其它默认(最后一个string encryption是字符串混淆,跟据需求选择) 3设置重命名排除,设置过Library后,除了私有的,其它的变量名和函数名都不会被混淆重命名,但在这里,我们还可以将任何不想被重命名的勾选上,然后就会被排除掉 4设置依赖库,有的时候我们的dll可能会依赖其它dll,这里我们需要设置被依赖的dll所以目录,不然混淆会失败 5设置输出目录,然后点击,Build PS: 1我们可以将经常需要混淆dll的配置保存成Dotfuscator的工程,其实就是一个xml文件,然后每次就不用设置了 2使用iTwenn时发现iTwenn不能被混淆,不然会执行不正确,所以需要在Rename里将iTwenn排除掉,注意所有的子项也要手动勾选,勾选父后,子项并不会自动勾选

.net 代码加密混淆

匿名 (未验证) 提交于 2019-12-02 23:38:02
当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码、桌面应用程序的 winform 、Unity3d 的逻辑脚本都在使用。C# .net 具备强大的便捷特性,使得开发成本极低。而作为一款.net 语言,也有它让开发者头疼的弊病――非常容易被反编译。市面上的 Dnspy, ILspy,de4dot等工具可以非常容易反编译出被混淆保护的C# .net 程序。 未经深思加壳保护的 ILspy 反编译效果如下: 解决方案: 深思自主研发了为 C# .net 语言做保护的外壳(Virbox Protector)。将C# .net 编译成的执行程序(.exe),动态库(.dll)直接拖入加壳工具即可完成保护操作,十分方便。并且在效果上已经完全看不到源码中的逻辑。 加密技术:代码加密/代码混淆/碎片代码执行 代码加密: 针对dotNet程序,保护IL代码:一种动态运行方法解密被保护代码。把当前代码加密存储为密文,存储起来,当程序运行到被保护函数时候自动解密并且执行,执行之后再擦除代码,执行之后再擦除代码,运行到哪里才解密哪里的代码,黑客无法获得原始的中间语言的指令和内存完整性的代码,由于是纯内存操作所以运行速度快, 性价高的保护手段,建议全加 代码混淆: 将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“

python画混淆矩阵

匿名 (未验证) 提交于 2019-12-02 22:51:30
混淆矩阵M的每一行代表每个真实类(GT),每一列表示预测的类。即:Mij表示GroundTruth类别为i的所有数据中被预测为类别j的数目。 这里采用画图像的办法,绘制混淆矩阵的表示图。颜色越深,值越大。 # -*- coding: utf-8 -*- # By Changxu Cheng, HUST from __future__ import division import numpy as np from skimage import io, color from PIL import Image, ImageDraw, ImageFont import os def drawCM(matrix, savname): # Display different color for different elements lines, cols = matrix.shape sumline = matrix.sum(axis=1).reshape(lines, 1) ratiomat = matrix / sumline toplot0 = 1 - ratiomat toplot = toplot0.repeat(50).reshape(lines, -1).repeat(50, axis=0) io.imsave(savname, color.gray2rgb(toplot)) #

.NET代码混淆控件Dotfuscator检测篡改

杀马特。学长 韩版系。学妹 提交于 2019-12-02 17:47:01
.NET混淆器 Dotfuscator 提供了强大的篡改防御和提示功能,可以有效地检测篡改,注入事实篡改防御,以及自动化事故管理和响应。本文主要介绍如何利用.NET 代码混淆 器Dotfuscator检测应用程序的篡改。 Dotfuscator包含了一个篡改检测工具,它位于Dotfuscator文件夹中(C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.4\TamperTester.exe)。 测试篡改步骤如下: 1、右键单击Dotfuscator工程,然后选择Build,从而运行Dotfuscator。输出窗口将首先显示MedicalImage builds,然后显示Dotfuscator的post-build 过程。 2、将MDB数据库文件复制到Dotfuscator的输出目录。 3、在Dotfuscator的输出目录中,运行tampertester MedicalImage.exe.。 4、Tampertester将在Tampered子文件夹中创建一个被修改过的,但又可以使用的MedicalImage.exe。 5、将MDB文件复制到该Dotfuscator输出目录。 6、运行被篡改的应用程序。 来源: oschina 链接: https://my.oschina.net/u

android studio 代码混淆如何忽略第三方jar包

一世执手 提交于 2019-12-01 16:29:16
最近在打包混淆时,遇到一个问题,混淆编译都不出错,运行出错,一般遇到这种问题,肯定是在运行的地方有代码被混淆了,经过错误排查,发现是程序中用到第三方的jar包的方法出现问题了,原来android studio混淆打包时把第三方的jar包给混淆了。 于是想这个问题很简单,保持jar包不混淆就好,于是直接在app目录下的proguard-rules.pro(或者proguard-rules.txt)混淆规则文件直接-libraryjars libs/xx.jar避免混淆。但是却引出了另一个错误: Error:Execution failed for task ‘:app:proguardRelease’. java.io.IOException: The same input jar [E:myprojectapplibsXX.jar] is specifi 大专栏 android studio 代码混淆如何忽略第三方jar包 ed twice. 也就是说混淆规则文件中,我们指定了2次 解决方法: 打开app目录下的libs文件夹,将各第三方jar下的包名在proguard-rules.pro 文件中过滤。 code: -keep class audio.cutter.lib. {*;} -keep class universal.initlibs. {*;} 上面的代码以-keep

Android性能优化

不打扰是莪最后的温柔 提交于 2019-12-01 10:16:43
GITHUB https://blog.51cto.com/6342127/2307514 说明 这篇文章是将很久以来看过的文章,包括自己写的一些测试代码的总结.属于笔记的性质,没有面面俱到,一些自己相对熟悉的点可能会略过.<br> 最开始看到的性能优化的文章,就是胡凯的优化典范系列,后来又陆续看过一些人写的,个人觉得anly_jun和胡凯的质量最好.<br> 文章大的框架也是先把优化典范过一遍,记录个人认为重要的点,然后是anly_jun的系列,将之前未覆盖的补充进去,也包括HenCoder的一些课程相关内容.<br> 当然除了上面几位,还有很多其他大神的文章,时间久了也记不太清,在此一并谢过. 笔记内容引用来源 胡凯 anly_jun HenCoder 1.Android性能优化之渲染篇 1.VSYNC 帧率:GPU在1秒内绘制操作的帧数.如60fps. 我们通常都会提到60fps与16ms,这是因为人眼与大脑之间的协作无法感知超过60fps的画面更新. 开发app的性能目标就是保持60fps,这意味着每一帧只有16ms=1000/60的时间来处理所有的任务 刷新率:屏幕在1秒内刷新屏幕的次数.如60Hz,每16ms刷新1次屏幕. GPU获取图形数据进行渲染,然后屏幕将渲染后的内容展示在屏幕上. 大多数手机屏幕的刷新率是60Hz,如果GPU渲染1帧的时间低于1000/60

python爬虫---js加密和混淆,scrapy框架的使用.

こ雲淡風輕ζ 提交于 2019-12-01 07:41:06
python爬虫---js加密和混淆,scrapy框架的使用. 一丶js加密和js混淆 js加密 ​ 对js源码进行加密,从而保护js代码不被黑客窃取.(一般加密和解密的方法都在前端) http://www.bm8.com.cn/jsConfusion/ # 反解密 js混淆 # 目的: 为了缩小js体积,加快http传输速度 ,混淆的目的是保护代码 · 合并多个js文件 · 去除js代码里面的空格和换行 · 压缩js里面的变量名 · 剔除掉注释 二丶SCRAPY爬虫框架 概述scrapy框架特点 - 高性能的网络请求 - 高性能的数据解析 - 高性能的持久化存储 - 深度爬取 - 全栈爬取 - 分布式 - 中间件 - 请求传参 下载与安装 - 环境的安装: - mac/linux:pip install scrapy - window: - pip install wheel - 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted - 进入下载目录,执行 pip install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl - pip install pywin32 - pip install scrapy 基本使用 ​ 创建项目 - 新建一个工程:scrapy

AES算法详解

限于喜欢 提交于 2019-12-01 07:19:56
AES算法简介   AES的全称是Advanced Encryption Standard,意思是高级加密标准。 AES密码分组大小和密钥大小可以为128位、192位和256位。然而AES只要求分组大小为128位。本文只对分组大小128位,密钥长度也为128位的Rijndael算法进行分析。密钥长度为192位和256位的处理方式和128位的处理方式类似,只不过密钥长度每增加64位,算法的循环次数就增加2轮,128位循环10轮、192位循环12轮、256位循环14轮。    AES算法使用逻辑就是:发送方将要发送的明文数据X使用秘钥K进行AES加密后会得到密文Y,将密文进行网络传输,接受方在收到密文Y后使用秘钥K进行AES解密后技能得到明文X,这样即使密文Y在网络上传输时被截获了,没有秘钥也难以破解其真实意思。 AES算法相关数学知识   在AES算法中的MixColumn层中会用到伽罗瓦域中的乘法运算,而伽罗瓦域的运算涉及一些数学知识如下: 素域:   有限域有时也称伽罗瓦域,它指的是由有限个元素组成的集合,在这个集合内可以执行加、减、乘和逆运算。而在密码编码学中,我们只研究拥有有限个元素的域,也就是有限域。域中包含元素的个数称为域的阶。只有当m是一个素数幂时,即m=p n (其中n为正整数是p的次数,p为素数),阶为m的域才存在。p称为这个有限域的特征。 也就是说

Android Studio 代码混淆

时光怂恿深爱的人放手 提交于 2019-12-01 06:45:35
在Android studio 进行代码混淆配置。 proguard 配置 -keepclasseswithmembers 指定的类和类成员被保留,假如指定的类成员存在的话。 -dontwarn 缺省proguard 会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。 -keep 指定的类和类成员被保留作为 入口 。 -keepclassmembers 指定的类成员被保留。 proguard 问题和风险 代码混淆后虽然有混淆优化的好处,但是它往往也会带来如下的几点问题 混淆错误,用到第三方库的时候,必须告诉 proguard 不要检查,否则proguard 会报错。 运行错误,当code 不能混淆的时候,我们必须要正确配置,否则程序会运行出错,这种情况问题最多。 调试苦难,出错了,错误堆栈是混淆后的代码 ,自己也看不懂。 不能混淆的代码 下面这样代码混淆的时候要注意保留。 Android系统组件,系统组件有固定的方法被系统调用。 被Android Resource 文件引用到的。名字已经固定,也不能混淆,比如自定义的View Android Parcelable ,需要使用android 序列化的。 Java序列化方法,系统序列化需要固定的方法。 枚举 ,系统需要处理枚举的固定方法 本地方法,不能修改本地方法名