当前位置: 首页 > news >正文

算法分析传输加密数据格式密文存储代码混淆逆向保护

  • 代码混淆

  • 一.基本概念
  • java的bytecode很容易通过JAD等反编译工具还原出源代码。这样势必不满足安全的定义。如何一定程度上保护需要防止被反编译的源代码呢?混淆(obfuscate)技术注意:用obfuscate防盗版是根本不可能,连汇编这种东西都能被**掉,而java代码基本上等同于开源的同义词。用obfuscate只是为了增加反编译的难度,保护源代码的知识产权。混淆包照常运行,没有任何问题。可以使用反编译工具如jd-gui查看混淆后的包,验证混淆效果。
  • 二.混淆技术
  • 名称混淆 name obfuscode
  • 将有意义的类,字段、方法名称更改为无意义的字符串。生成的新名称越 短,字节代码越小。在名称混淆的字节代码中,包,类,字段和方法名称已重命名,并且永远不能恢复原始名称。
  • 流混淆 Flow Obfuscation
  • 用于if, switch, while,for等关键字,对字节码进行细微的修改,模糊控制流,而不改变代码在运行时的行为。通常情况下,选择和循环等逻辑构造会被更改,因此它们不再具有直接等效的Java源代码。流模糊的字节码通常强制反编译器将一系列标签和非法的goto语句插入到它们生成的源代码中。源代码有时会因为反编译错误而变得更加模糊。
  • 其他
  • 异常混淆 Exception Obfuscation
  • 字符串加密混淆 String Encryption
  • 引用混淆 Reference Obfuscation
  • 网络安全探针
  • 定义与功能
  • 定义:网络安全设备探针是一种设备或软件,它通过捕获和分析网络数据包,实时监控网络活动,以发现潜在的网络威胁。
  • 功能:
  • 实时监控:探针能够实时捕获网络中的数据包,并分析其中的信息,如源地址、目的地址、协议类型等。
  • 威胁检测:通过比较捕获到的数据包与已知的正常行为模式或恶意行为特征,探针能够识别出网络中的异常行为,从而发现潜在的网络攻击。
  • 安全防护:一旦检测到网络威胁,探针可以采取相应的措施进行防范,如阻断攻击源、记录攻击信息等。
  • 性能优化:除了安全防护外,探针还可以提供网络流量分析和报告,帮助网络管理员了解网络使用情况,优化网络架构和配置,提高网络性能和安全性。
  • 数据传输的的形式

  • XML

  • XML是用来传输储存数据的(主要还是传输功能)
  • 他的结构 其实就是<>这类的
  • <?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
  • json

  •  JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.
  • {'admin':'admin','password':'123456'}
  • 实例一:
  • 数据在传输过程中的加密(以url为例)
  • 做实例的目的就是明白,网站的url编码会影响到我们的漏洞探针(漏洞的注入点)问题,只有我们用相同的注入代码(加密的)才能让注入成功 因为这个编码在服务器后端他会进行解码

  • 我们用一下加密工具 cap,选择base64
  • 实例二 密码加密的问题
  • 如密码是 x=123
  • 我们也可以写成 x{
  • x:123
  • }
  • 改漏洞探针,这边我们抓包了之后在{}里面去改
  • 不同的格式

  • burp抓包里一下有用的信息

  • 数据库密码的加密问题
  • 不同网站的加密 DIScus

  • 这边其实加上这个盐才能解密

  • 这是我们的第二种形式就是web加盐
  • 我们安装新版的dis

  • 这边这个新版的用的是DES加密(这个需要偏移值,和密匙才能解)
  • 实例二
  • php源码的加密(这个就是防止被溯源到源码)

  • 去网上随便找个加密php的文件工具
  • 这边我们看一下php的文件效果

http://www.xdnf.cn/news/50455.html

相关文章:

  • 4.19-4.20学习总结 网络编程+反射+动态代理
  • AI大模型发展现状与MCP协议诞生的技术演进
  • music21:伍佰 《挪威的森林》MIDI 音乐分析
  • Centos9 离线安装 MYSQL8
  • 【python编程从入门到到实践】第四章 操作列表
  • 进程控制(linux+C/C++)
  • day47——平方数之和(LeetCode-633)
  • javase 学习
  • SQL语句执行顺序
  • QML Universal样式
  • 在 Debian 12 中恢复被删除的 smb.conf 配置文件
  • Python基础总结(八)之循环语句
  • 【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离
  • 本地化部署ASR服务程序:以FastASR为例
  • 使用 NEAT 进化智能体解决 Gymnasium 强化学习环境
  • 通过 WebSocket 接收和播放 WSS 协议视频流
  • Transformers是一种基于自注意力机制的神经网络模型
  • 王博:影视领域的多元创作先锋,以卓越才华开启新篇章
  • Java——类和对象
  • Nacos深度剖析与实践应用之-配置中心
  • RenderStage::drawInner
  • Vue如何实现样式隔离
  • 【Python笔记 01】变量、标识符
  • C++每周一篇
  • 零点、驻点、拐点、极值点、最值点的定义、几何意义、求解方法
  • MACOS 中聚焦使用技巧
  • 云效部署实现Java项目自动化部署图解
  • 基于SpringBoot+Vue实现的旅游景点预约平台功能一
  • Dijkstra 算法入门笔记 (适用于算法竞赛初学者) - C++ 代码版
  • 与cozi人工智能类似的产品有哪些以及它们的优缺点