淘宝联盟合作网站api备案通

张小明 2026/1/9 11:07:26
淘宝联盟合作网站api,备案通,wordpress外汇行情,网页设计中用div做网站例子在数据保护和数据转换算法中#xff0c;rc4和base64是使用频率最高的算法#xff1b;rc4用于数据加密#xff0c;base64用于数据转换。本篇文章介绍的识别算法和上一篇稍有不同#xff0c;本篇讲述的算法识别方法我把它称之为“结构和特征识别”的识别方法#xff1b;该方…在数据保护和数据转换算法中rc4和base64是使用频率最高的算法rc4用于数据加密base64用于数据转换。本篇文章介绍的识别算法和上一篇稍有不同本篇讲述的算法识别方法我把它称之为“结构和特征识别”的识别方法该方法适用于算法简单算法结构逻辑清晰并且算法中包含或者算法输出包含明显的特征把这些明显的固定的特征抽取加以整理就构成了识别这些算法的关键。base64识别介绍识别方法之前我们先看一下base64原理。Base64 的核心点1. 每 3 个字节 → 转成 4 个字符一个字节是 8 位bit3 个字节是 3 x 8 24 位把这 24 位分成 4 组每组 6 位因为 6 x 4 24每个 6 位的值范围是 0 ~ 63所以可以查一个“64个字符的表”得到 4 个可打印字符2. Base64 使用的 64 个字符是A–Z26个 a–z26个 0–910个 和 /2个所以一共有 64 个字符叫做 “Base64”。3.补位padding如果不是刚好 3 个字节比如你只给了 Ma2 个字符 16 位怎么办→ Base64 会补零到 24 位然后结果里加一个 做标志。规则如果最后只有 1 个字节8位补 4 个 0末尾加 如果最后有 2 个字节16位补 2 个 0末尾加 其他略结构特征描述1 把三个字节变成四个字符后面我们着重讲一下2 Base64依赖一个64个字符的表ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/3 输出可能会出现“”作为补位如”Hello, world!”的base64为SGVsbG8sIHdvcmxkIQ把三个字节变成四个字符举个例子超简单假设我们要编码文本Man它的 ASCII 是M: 77 → 二进制 01001101a: 97 → 二进制 01100001n: 110 → 二进制 01101110拼在一起01001101 01100001 01101110 → 共24位把这 24 位切成 4 组每组 6 位010011 010110 000101 101110从上面base64原理举例中我们抽取核心特征是三个字节变成四个字符一个字节8位共24位在把24位切成4组每组6位这不是妥妥的位运算嘛位运算就涉及左右移位、或与操作。算法特征抽取由以上分析得base64算法具备如下直观的特征1、 取三个字符组成24位二进制数在此基础上进行移位或与操作后得到每组6位的二进制数共4组2、 有一个固定的字符表是参与算法索引字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/3、 输出字符串中可能包含””对特征1有很多种实现我贴图出来参考一下实现一实现二实现三这种实现不多见 它不把三个字节对应的二进制数组合成24位而是独立看待每个字节的二进制数组合拼接形成每组6位的4组二进制数我们需要从前两种第三种结合原理去分析不同的实现中抽取相同的特征作为识别算法的特征从输入字符这里不是很准确应该是任意二进制字节有些二进制数不是可显示字符序列连续取三个字节左移8、16位或操作后形成一个24位的二进制数先移位后与右移6、12、18位然后都与0x3f十进制数63 先与后移位分别与0xfc0(十进制数4032)0x3f00(十进制数258048), 0xfc000(十进制数16515072)在对应移位18、12、6。最终我们得到快速定位base64算法的特征如下1、看输出结果是否包含””算法中是否包含一个固定64个字符的表ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/2、由抽取实现方式简化得到看左移8、16位右移6、12、18位四个常数0xfc0、0x3f00、0xfc000、0x3f示例我先以一段arm v7汇编举例示例中通过base64固定的字符串替换表(64个)交叉引用找到了算法位置然后通过base64原理看移位等推断它是base64算法。定位字符串交叉引用定位函数伪代码base64后两位可能涉及补码的情况这里忽略不给出演示伪代码和我们上面介绍的实现三比较接近我们来分析一下v9是计数器从0开始v4是输入的原始数据(v4 v9) 2等价于byte1 2整行是把计算的值直接作为base64表的索引查找出了替换的值即结果v11是 (v4 v9)即byte1 16 * v11即v11(byte1) 4 0x30 等价于(v11 3) 4作为第二个字符的高2位v10是原始输入数据序列的下一个字节byte2右移4位同刚刚计算得出的高2位与操作即第二个替换后的字符的索引即((byte1 4) 0x30) | (byte2 4)其他代码逻辑类似这里就不在做分析了。上面识别方法是通过特征base64固定的替换表和简单的base64核心逻辑特征确定了上面算法是base64基于算法的实现存在差异逻辑相同其他算法可能包含实现1和实现2的移位操作和特殊的常量数字0x3f, 0x3f00,……这些都是我们识别base64算法的核心base64算法如此的简单以至于它太容易被识别因此出现了vmp化的base64被vmp化后我们无法直观识别但当我们动态分析时它的特征就会一一暴漏这样我们就能快速识别它了另外如果某个算法最终输出是一段长长的字符串且末尾中最多包含两个””那我们首先假设它就是base64算法。rc4识别有了识别base64的基础识别rc4就更容易了虽说这两个算法毫无关系但因为rc4算法简单因此结构和特征识别方式同样适用于rc4。同样我们看一下rc4的核心逻辑rc4核心点用密钥生成一个“伪随机序列”然后和明文按位异或XOR得到密文。你只要记住这句话RC4的原理你已经掌握了一半。RC4 工作流程分两步KSAKey-Scheduling Algorithm 用密钥打乱一个 0~255 的数组称为 S-boxPRGAPseudo-Random Generation Algorithm 生成一个伪随机字节流keystream 明文和这个流逐字节 XOR就得到了密文KSA初始化 S 盒S-box准备一个数组 S包含从 0 到 255 的整数共 256 个数S [0, 1, 2, ..., 255]再准备一个密钥数组 K用密钥循环填充key key → ASCII[107, 101, 121]K [107, 101, 121, 107, 101, 121, ..., 共 256 个]KSAKey-Scheduling Algorithm我们开始打乱 S 数组j 0for i 0 to 255:j (j S[i] K[i]) % 256swap(S[i], S[j])这个过程的目的就是用密钥来打乱初始数组 S从而产生一个独一无二的 S-box。KSA结构性描述1、 一个可有可无的大小为256的数组S数组中元素值即为索引值可能通过循环获得2、 一个循环256次对大小为256的数组K不停的重复填充输入密钥如密钥是“ABC”则数组K为[A,B,C,A,B,C……](可能在循环中通过索引直接获取密钥对应数据)3、 又一个循环256次计算某个索引几个数的和数据交换S数组元素交换PRGAPRGA生成伪随机序列初始化i 0 j 0开始生成密钥流每生成 1 字节加密 1 字节循环每个字节i (i 1) % 256j (j S[i]) % 256交换 S[i] 和 S[j]t (S[i] S[j]) % 256keystream_byte S[t]这个 keystream_byte 就是你用来和明文 XOR 的密钥流。加密XOR每个明文字节和密钥流字节异或cipher_byte plaintext_byte ⊕ keystream_byte对每个字符都这样做最终得到加密后的字节序列。PRGA结构性描述1、 又一次循环最后一次循环次数是输入数据的长度流式加密顺序的逐个的2、 又一次数据交换得到一个异或因子3、 取输入数据按顺序一个字节和异或因子异或得到加密后的值即输出结果rc4算法特征抽取由以上对rc4的原理详细分析我们可有抽取一些直观的特征1、 包含多次循环循环次数均循环256次256是一个常数除最后一次循环2、 无论是否由循环得到总有一个大小为256的数组并且数组元素值即为索引值初始S-box3、 某个循环256次计算了很多数据的和同时用该值作为数组项交换的索引4、 最后一次循环次数等于输入数据长度该循环包含数组数据交换同时存在异或操作看一下源代码c实现从源码中我们能看到存在三个大循环除最后一个都是循环256次存在多个循环256次的循环需要被注意很多和的计算很多数组的交换同时在最后一个循环中存在异或操作。示例KSA(两个循环次数均为256)伪代码重命名修改过PRGA伪代码重命名过以上两个部分合在一起就构成了完整的rc4总结rc4算法的识别最简单的特征就是算法包含多次循环并且多数循环的循环次数是256算法中数字256出现的频率特别多算法之初会构造或者默认提供一个256大小的数组并且数组元素值为其索引另外算法中包含异或操作并且异或后的值作为最终结果存储基本就可有断定它是rc4了如果你还想十分肯定它确实是那就依据rc4算法其他特征来做最终的判定。rc4是比较经典的流式加密算法做产品一般不会对算法进行修改但也会存在个别人或者企业偷偷对算法进行一点点的修改每个加密算法都有很深的数学和密码学原理胡乱修改会导致算法失效或者加密强度、性能降低等它仍被认为是rc4算法。rc4算法比较简单因此很多vmp化rc4很常见但它的原理结构和执行流程不变当我们动态分析一个算法时如果遇到算法出现多次循环循环次数256很多数组都是256大小甚至256作为变量出现很多次同时在某个循环体内存在异或操作那基本就可有肯定它是rc4了。好本篇文章到此就结束了它和上篇文章有相似之处都是在找固定的东西就像病毒查杀一样把它们收集起来作为识别的指纹简单算法一样其实复杂算法也一样也可以固定特征用于识别它们只不过需要做到效率折中希望这两篇文章能帮助刚刚入门不久或者经验不多的工程师们。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

17网一起做网店下载推广关键词如何优化

Godot引擎动态天气系统深度构建:从粒子效果到场景交互 【免费下载链接】godot Godot Engine,一个功能丰富的跨平台2D和3D游戏引擎,提供统一的界面用于创建游戏,并拥有活跃的社区支持和开源性质。 项目地址: https://gitcode.com…

张小明 2026/1/9 13:57:40 网站建设

大网站制作公司免费软件下载网站哪个好

西门子S7-1500暖通空调制药厂洁净空调PLC程序案例(包含冷水机组及洁净室空调机组),硬件采用西门子1500CPUET200SP接口IO模块,HMI采用西门子触摸屏。具体为制药厂BMS(洁净空调自控系统)医药洁净室空调程序&a…

张小明 2026/1/6 8:44:33 网站建设

苏州网站建设费用wordpress 菜单怎么使用方法

想建一个独立站来开拓外贸客源,核心思路是:先把“能转化的官网基础”搭好,再用“SEO 内容 广告 社媒 私域”把精准流量持续引进来,最后用表单/WhatsApp/邮件把线索沉淀并持续跟进。下面给你一套外贸企业最常用、最有效、也最容…

张小明 2026/1/6 8:44:01 网站建设

东莞公司网站制作新闻发稿公司

脚本高级功能与Linux系统启动及环境定制 1. 脚本高级功能 1.1 输入框(inputbox) 当需要用户通过键盘输入文本时,输入框选项很有用。在键盘输入文本时,可使用删除、退格和箭头光标键进行编辑。若输入文本超过输入框大小,输入字段会滚动。按下“确定”按钮后,输入的文本…

张小明 2026/1/6 8:43:28 网站建设

做的网站没给我备案制作logo免费网站

想要轻松下载在线视频却对命令行望而却步?yt-dlp-gui作为yt-dlp的图形界面版本,让视频下载变得简单直观。这款免费工具通过可视化操作界面,支持多种视频格式和质量选择,是您获取在线视频资源的得力助手。 【免费下载链接】yt-dlp-…

张小明 2026/1/6 8:42:23 网站建设

响应式网站 推广效果太原汽车网站建设

万相Wan2.1-I2V图生视频模型完整解析:从技术原理到实战应用 【免费下载链接】Wan2.1-I2V-14B-480P 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.1-I2V-14B-480P AI视频生成技术正迎来爆发式增长,万相Wan2.1-I2V模型矩阵的发布为内…

张小明 2026/1/6 8:41:50 网站建设