首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    Python源码保护

    大家好,又见面了,我是你们的朋友全栈君   由于Python开源的特性,在一些商业场景下,若不想将源码暴露,可通过混淆、编译为pyc或so(Windows下为pyd)文件等方法起到保护源码的效果。 其中,将源码编译为so文件是常用且较好的一种保护方法。 1 混淆   代码混淆是将函数、类名和变量名等替换为其他符号,提高了阅读的难度。 Oxyry网站提供的在线代码混淆(或使用pyminifier),如下图所示:   代码混淆简单且成本代价低,但由于未改变程序的主体结构,仅降低代码的可读性,实际对源码保护并不是很好。 py_compile.compile(file="xxx.py") # 需转换为pyc文件在——__pycache__中   2)将pyc文件直接替换对应py文件   与其他语言相同,pyc也可以通过反编译获取源码 命名开头文件夹中,如下图so文件在build/lib.macosx-10.7-x86_64-3.6中:   4)将so(或pyd)文件直接替换对应的py文件   相对混淆和pyc,so(或pyd)对保护效果最好的一种方案

    2.4K21编辑于 2022-09-23
  • 来自专栏咸鱼学Python

    Js 逆向进阶 | 浅谈 Js 代码保护

    作者:不知世事 原文:https://blog.csdn.net/feibabeibei_beibei/article/details/98232069 JavaScript 代码保护浅谈 国外: 1 2.Js2x http://ty2y.com/obfuscate/#how-to-use ? 这个跟上面那个多态变异是一样的。 vmp 最强的,这种方案其实也是很好理解的,比如对于一个js代码来说,我们只用js操作写一个基于栈的解释器,然后对于本身要保护js进行虚拟化,定义一堆自定义操作,这个时候其实还是比较弱,因为全部是 如果再结合别的一些保护方案,效果应该会很不错,但是毕竟webasem这种文件的格式是公开的,可能这种方案的持久性不行,并且各个浏览器的兼容也是一大问题;当然后期也可以针对webasembly再进行处理, 总结 对于 js 这种语言来说,由于语言本身的特殊性,一定的保护是非常必要的,再结合浏览器本身的发展,为了性能会在编译上做处理,引入本地层的东西,比如谷歌的 V8 ,火狐的 asm.js 在安全性上:业务上更多的结合服务端动态特性以及客户端强大的静态代码保护的设计会达到一个比较好的效果

    29.2K20发布于 2020-01-14
  • 来自专栏工作专用1

    JS生成字节码生成技术,用字节码保护商业NodeJS源码

    本文介绍一种NodeJS源代码保护方式:通过把nodejs代码转化为字节码,用node启动字节码文件的方式,保护nodejs源代码不泄漏。 如同JS代码一样,nodejs源码,也是透明代码,通常用node启动代码时,都必须把源码也放置到启动环境中。这在很多时候是不安全不稳妥的。因为js源码透明的原因,别人可以直接获取到产品或项目源码。 为了防止源码泄漏带来的一系列令人不安的后果,这里介绍一种专门针对于nodejs源码保护技术:将nodejs代码转化为字节码文件。 对于JS代码产品的保护,除了可以使用字节码技术,还可以用代码混淆加密的办法,比如:JShaman(http://www.jshaman.com/)是一款对JS代码进行混淆加密的工具,也适用于nodejs 代码加密,也是个非常不错的nodejs代码保护手段,且可对前端JS代码进行保护,通用性比较强。

    3.9K00发布于 2019-03-22
  • 来自专栏javascript技术

    前端js中如何保护密钥?

    在前端js编程中,如果涉及到加密通信、加密算法,经常会用到密钥。但密钥,很容易暴露。暴露原因:js代码透明,在浏览器中可以查看源码,从中找到密钥。 例如,下面的代码中,变量key是密钥:如何保护源码中的密钥呢?很多时候,人们认为需要对密钥字符串进行加密。其实更重要的是对存储密钥的变量进行加密。加密了密钥变量,使变量难以找到,才更能保护密钥本身。 顺着这个思路,下面给出一个不错的密钥的保护方法:还是以上面的代码为例,首先,用到jsfuck:https://www.jshaman.com/tools/jsfuck.html将代码中的密钥定义整体,用 将整体JS代码,再用JS加密工具:JShaman,进行混淆加密:https://www.jshaman.com然后得到更安全、更难调试分析的JS代码,这时密钥就变的更安全了:注:用ajax等异步传递密钥时 用jsfuck+jshaman保护JS中的密钥,你学会了吗?

    94910编辑于 2024-10-29
  • 来自专栏网络安全攻防

    程序源码保护攻防对抗录

    ,也有不少通过编码处理、进制转换来增加代码阅读的复杂性,从而达到保护源代码的目的,下面是几个简单的源码混淆测试示例: PHP威盾混淆 这里我们给出一个PHP威盾混淆处理示例,网上给出的威盾的混淆特征如下所示 PHP源码外壳加密说白了就是使用PHP代码对PHP代码进行加密处理,自己给自己套了一层外壳,随后在执行的时候再进行自解密,其特点就是独立加密程序统一对明文代码进行加密处理,其中比较常见的加密保护方式是 > 执行之后输出的处理后的源码文件内容如下所示: <? > 从下面的执行效果我们可以看到源代码内容: phpjiami处理 PHP加密(PhpJiaMi.Com)采用了强大的安全技术手段(外壳)对PHP源码进行混淆变异(源码),系统安全防修改、防劫持、防破解 源代码的混淆和加密其实再PHP木马免杀中也有极好的用途,尤其是针对PHP大马程序,关于部分PHP源代码保护的加密算法的逆向分析解码和PHP源代码保护在木马免杀中的使用在后续的文章中将进行分篇介绍 推 荐

    38910编辑于 2024-12-06
  • 来自专栏网络安全攻防

    程序源码保护攻防对抗记录

    ,也有不少通过编码处理、进制转换来增加代码阅读的复杂性,从而达到保护源代码的目的,下面是几个简单的源码混淆测试示例: PHP威盾混淆 这里我们给出一个PHP威盾混淆处理示例,网上给出的威盾的混淆特征如下所示 PHP源码外壳加密说白了就是使用PHP代码对PHP代码进行加密处理,自己给自己套了一层外壳,随后在执行的时候再进行自解密,其特点就是独立加密程序统一对明文代码进行加密处理,其中比较常见的加密保护方式是 > 执行之后输出的处理后的源码文件内容如下所示: <? > 从下面的执行效果我们可以看到源代码内容: phpjiami处理 PHP加密(PhpJiaMi.Com)采用了强大的安全技术手段(外壳)对PHP源码进行混淆变异(源码),系统安全防修改、防劫持、防破解 源代码的混淆和加密其实再PHP木马免杀中也有极好的用途,尤其是针对PHP大马程序,关于部分PHP源代码保护的加密算法的逆向分析解码和PHP源代码保护在木马免杀中的使用在后续的文章中将进行分篇介绍 推 荐

    59610编辑于 2025-01-13
  • 来自专栏Java学习录

    Eureka自我保护机制源码解析

    Eureka通过“自我保护机制”来解决这个问题:当EurekaServer短时间内丢失过多客户端时,这个节点就会进入自我保护模式。在自我保护模式下,EurekaServer不会剔除任何客户端。 当网络故障恢复后,该节点会自动退出自我保护模式 自我保护机制的实现是基于维护服务注册表的类AbstractInstanceRegistry中的2个变量来维护的 /** * 期望最小每分钟续租次数 */ ,为啥呢,因为默认Eureka的续约是30秒 期望每分钟最小续租次数为:最大续租次数乘续租百分比,默认续租百分比是0.85,也就是说当某个时间窗内如果存在超过百分之十五的客户端没有再续租的话则开启自我保护模式 自我保护模式的定时任务 DefaultEurekaServerContext类中有一个initialize方法,这个方法在执行过程中会启动一个定时任务 @PostConstruct @Override 之前在Eureka客户端续约及服务端过期租约清理源码解析一文的租约过期清理解析过程中省略了关于自我保护模式的判断,现在再看一下。

    1K20发布于 2019-10-24
  • 来自专栏云市场·精选汇

    保护 Node.js 项目的源代码

    而对于应用越来越广泛的 Node.js 而言,运行的则是源代码。即使经过压缩混淆,也可以很大程度地还原。 本文介绍一种可用于 Node.js 端的代码保护方案,使得 Node.js 项目也可以放心地进行私有化部署。 index.js dist/ compile.js src 目录内的两个文件为源代码,内容分别为: // lib.js console.log('I am lib'); exports.add = function 原来,Node.js 在编译 js 文件的过程中会对其内容进行包装。 字节码的问题 虽然编译成字节码后可以保护源代码,但字节码也会存在一些问题: JavaScript 源代码可以在任何平台的 Node.js 环境中运行,但字节码是平台相关的,在何种平台下编译,就只能在何种平台下运行

    4K63发布于 2020-05-07
  • 来自专栏Python小屋

    Python程序打包为pyd文件实现源码保护

    任务描述: Python源代码文件扩展名.py常用于控制台应用程序,.pyw常用于GUI程序,二者均可编译为.pyc文件,这三者都无法保护源码。 到目前为止,把Python源程序文件打包为.pyd文件,是最简单有效的源码保护方式之一。 操作步骤: 1、编程Python程序,内容如下: 2、安装扩展库easycython。

    3.8K10发布于 2021-11-10
  • 来自专栏正则

    Node.js源码解析-启动-js部分

    Node.js 进程启动时,首先执行 c / c++ 代码,然后 c / c++ 加载并执行 lib/internal/bootstrap_node.js 并给予一个 process 参数( 运行上下文 ) // lib/internal/bootstrap_node.js 概览 // Hello, and welcome to hacking node.js! exports: 默认值是 {} loaded / loading: NativeModule 状态 _cache: 简单的模块缓存 _source: 模块源码资源 require(): (),源码如下: // bootstrap main module. 至此 启动-js部分 已经全部完成,后续模块加载部分,见 Node.js源码解析-require背后 End 启动只是 Node.js 源码的一小部分,除此之外还有大量的内置模块和 c / c++ 源码

    5.9K50编辑于 2022-01-06
  • 来自专栏州的先生

    保护源码!加密你的 Python 程序代码!

    而这,就涉及到了源码保护的问题。我们不需要程序的使用者能够看到程序的源码源码保护则是必须要做的一件事情。 虽然很难,虽然不是十分完美,但是多增加一道门槛,也就多抵挡一些闲得蛋疼的人搞破解。 但是如果是一个私有化部署的应用程序,既需要部署在客户的机器上,又不想客户看到应用程序的源码。 PyArmor 是一个用于加密和保护 Python 脚本的工具。 它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后 Python 源代码的有效期限,绑 定加密后的Python源代码到硬盘、网卡等硬件设备。

    8.1K40发布于 2021-07-20
  • 来自专栏csxiaoyao

    impress.js 源码分析

    在Google上搜索时,我发现了impress.js的存在,与我的设想不谋而合,于是乎……不再自己造轮子,又花了两天时间熟悉使用impress.js来设计幻灯片,效果完全超越了我的预期。    impress.js简单来说仅仅是实现了幻灯片的转场特效的框架,虽说将单页限制在框架之内,但所有单页还是需要自己用代码设计。 花了一天探索了下impress.js源码,其实并不复杂,个人感觉收获颇丰,以下阐述我的收获。 /impress.js"></script> <script> impress().init(); </script> 源码中的init()函数,分析写在注释中 var init = function( 源码简洁明了,并不复杂,作者的本意也是构建一个基础的框架,让使用者自由发挥,正合吾意!

    2.8K20发布于 2019-02-15
  • 来自专栏进击的大前端

    手写Express.js源码

    手写源码 手写源码才是本文的重点,前面的不过是铺垫,本文手写的目标就是自己写一个express来替换前面用到的express api,其实就是源码解析。 本文所有手写代码全部参照官方源码写成,方法名和变量名尽量与官方保持一致,大家可以对照着看,写到具体的方法时我也会贴出官方源码的地址。 express.js对应的源码看这里:github.com/expressjs/e… app.listen 上面说了,express.js只是一个空壳,真正的app在application.js里面,所以 _router = new Router(); } } 复制代码 app.listen,app.handle和methods处理方法都在application.js里面,application.js [method] 所以我们来看下Router这个类,下面的代码是从源码中简化出来的: // router/index.js var setPrototypeOf = require('setprototypeof

    6.2K30发布于 2020-11-04
  • 来自专栏前端小作坊

    watch.js 源码解读

    watch.js 源码解读 用麻雀虽小五脏俱全来描述Watch.js比较合适。“观察者”模式是我们在开发的时候经常需要用到的。 使用Watch.js那么我们就可以实现在“每当对象属性改变的时候,执行你的函数”。 虽然有很多其他的库可以实现相同的功能,但是Watch.js却可以不改变你平时书写代码的方式,并且实现属性改变的监听功能。 ”修改的时候“观察者”函数会被调用 ex1.attr1 = "other value";` [try demo](http://jsfiddle.net/NbJuh/17/) Watch.js 总结 抛开watch.js的bug不谈,它还是有很多可圈可点的地方。

    1.8K10发布于 2018-08-01
  • 来自专栏前端干货和生活感悟

    addEvent.js源码解析

    在看 jQuery 源码时,发现了这段注释: //源码5235行 /* * Helper functions for managing events -- not part of the public Edwards' addEvent library for many of the ideas. */ jQuery.event = { } Dean Edwards 的 addEvent.js (http://dean.edwards.name/weblog/2005/10/add-event/)库为 jQuery 的事件绑定提供了很多想法,我们就来看下 2005 年的 addEvent.js console.log(a,'a55') //{0:'111'} b 改变属性,a 也会改变,因为 b 与 a 指向同一地址(b=a) 一、addEvent() 作用: 为目标元素绑定事件(如 click) 源码 最后: 完整代码请看https://github.com/AttackXiaoJinJin/jQueryExplain/blob/master/addEvent.js.html ----

    1.6K10发布于 2019-09-05
  • 来自专栏进击的大前端

    手写Koa.js源码

    第二篇文章是看了Express的基本用法,更主要的是看了下他的源码:手写Express.js源码 Express的源码还是比较复杂的,自带了路由处理和静态资源支持等等功能,功能比较全面。 从上面两个例子的代码来看,Koa跟Express有几个明显的区别: ctx替代了req和res 可以使用JS的新API了,比如async和await 手写源码 手写源码前我们看看用到了哪些API,这些就是我们手写的目标 lib/application.js这个文件就是我们经常用的Koa类,虽然我们经常叫他Koa类,但是在源码里面这个类叫做Application。 app.createContext对应的官方源码看这里:github.com/koajs/koa/b… context.js 上面的this.context其实就是来自context.js,所以我们先在 Express源码可以看我之前这篇文章:手写Express.js源码 Koa的思路看起来更清晰,Koa本身的库只是一个内核,只有中间件功能,来的请求会依次经过每一个中间件,然后再出来返回给请求者,这就是大家经常听说的

    1.7K20发布于 2020-11-11
  • 来自专栏学派客

    js实现:输入密码才能打开网页。js实现密码保护的网页。

    js实现:输入密码才能打开网页,即js实现密码保护的网页。 password" & testV ==3) history.go(-1); return " "; } document.write(password()); 可能有人会疑虑,密码就在代码中,如果别人查看一下源码就知道密码了 , 嗯哪,确实存在这个问题,虽然上面代码中做了些防护,如果密码输不对的话,就返回上一页,但只要在浏览器中关掉js功能就可以打开网页查看js源码, 那么如何解决呢? 当然有办法,使用js密码加密混淆啊,出大招:Jshaman(http://www.jshaman.com/),可以在线加密js代码, 就把上面的代码,用jshaman加密一下,加密后代码如下: var js实现密码保护的网页,就是这么简单。 PS:有网友问,上面的代码怎么用。哦,很初级的问题,这样:在html文件中,放在script标签里就可以了。

    7.4K30编辑于 2023-04-06
  • 来自专栏web前端教室

    如何阅读JS源码?读源码有什么好处

    对,就是看别人写的JS代码。文档嘛,自然是没有的。 之前也有试过看代码,但项目中N多JS文件,每个JS文件上千行,一行一行的看下来,用不了几分钟就完全晕掉了。 于是,这一次,我决定换一个方式读JS源码。 这个项目中有N个JS文件,我把入口的JS文件拿出来先看,然后我把它里面所有的函数名,都用思维导图写出来,就像这样, ? 看小说一行行看就OK,但读源码的重点,不在于要读完并理解每一行JS代码,而在于通过图表和笔记,理解系统的结构和它们之间的关系。 实际上这也是不可能的,每个大项目中上百个JS文件,每个JS文件上千行、几千行代码,这算起来就十万多行了,哪有时间让你慢慢看完。 推广来说,看项目源码,看前端各种构架的源码,它最大的好处就是可以培养自己的对于代码的“层次感”。

    4.2K110发布于 2018-02-06
  • 来自专栏杨龙飞前端

    underscore.js,jquery.js源码阅读 杨龙飞

    (function() { // Baseline setup // -------------- // Establish the root object, `window` in the browser, or `exports` on the server. var root = this; this._={}; _.a=function(){} return _; }.call(this));

    1.4K30发布于 2018-06-14
  • 来自专栏Creator星球游戏开发社区

    CreatorPrimer| CustomMaterial.js源码分析

    renderEngine.renderer; //定义一个shader对象 const shader = { //名字必须字段 name: "xxx", //着色器代码中需要与js ,今天分享的内容是ShaderHelper组件中的核心CustomMaterial源码分析。 Effect的实例化 ---- texture与color的初始化比较简,但Eeffect实例化需要三个参数,看下引擎源码: //--------------CustomMaterail.js---- techniques是一个数组,我们接下来看CustomMaterial源码中是怎么创建它的。 4. 小结 ---- 本篇的内容有些烧脑,特别是对于像Shawn这种从来不怎么关心底层渲染的人来说在初次读源码完全是一脸的蒙逼。我们暂且不纠结细节,从整体上理清材质系统的框架结构,请看下图: ?

    1.4K20发布于 2019-09-11
领券