保留NULL的异或

保留NULL的异或

保留NULL的异或,规则如下:

  1. 如果明文中字符是NULL(值为0的字节)或者密钥本身,则被跳过
  2. 如果明文中字符既不是NULL也不是密码本身,则将被使用XOR密钥加密

可以稍微增加一点识别和恢复的难度。

python的一个实现:

# coding:utf8
# python3

the_file = open('git.exe', 'rb')
file_content = the_file.read()
the_file.close()

xor_key = 0x12
new_content = b''
for i in file_content:
    if i == 0 or i == xor_key:
        new_content += i.to_bytes(1, 'big')
    else:
        new_content += (i ^ xor_key).to_bytes(1, 'big')

new_file = open('enc_file', 'wb')
new_file.write(new_content)
new_file.close()

来源: 恶意代码分析实战

2021/8/20

VHDL是一种硬件描述语言,用于描述数字电路和系统。它包括了一些保留字,这些是被编程语言保留的,不能用作变量或子程序的名称。VHDL语言的保留字包括:ABS(绝对值函数)、ACCESS(访问类型)、AFTER(延迟时间)、ALIAS(别名)、ALL(全集函数)、AND(逻辑与运算符)、ARCHITECTURE(体系结构)、ARRAY(数组类型)、ASSERT(断言)、ASSIGN(赋值语句)、ATTRIBUTE(属性)、BEGIN(标记体系结构的开始)、BLOCK(组合语句块)、BODY(子程序体)、BUFFER(缓冲体)、BUS(总线)、CASE(多路选择语句)、COMPONENT(组件)、CONFIGURATION(配置)、CONSTANT(常量)、DISCONNECT(断开连接语句)、DOWNTO(降序范围)、ELSE(条件语句的其他情况)、ELSIF(条件语句的其他情况)、END(结束某个类型的定义)、ENTITY(实体)、EXIT(退出语句)、FILE(文件类型)、FOR(循环语句的起始)、FUNCTION(函数定义)、GENERATE(生成器)、GENERIC(泛型)、GROUP(分组声明)、GUARDED(触发方式)、IF(条件语句的起始)、IN(输入方向)、INERTIAL(惯性方式)、INOUT(双向方向)、IS(开始定义体系结构)、LABEL(标签)、LIBRARY(库声明)、LINKAGE(连接任务或数据)、LITERAL(字面值)、LOOP(循环语句的开始)、MAP(映射实体端口的接口)、MOD(求余运算符)、NAND(与非运算符)、NEW(为对象分配内存)、NEXT(跳转到循环的下一次迭代)、NOR(或非运算符)、NOT(非运算符)、NULL(空指针)、 OF(类型属性的开头)、ON(事件激发条件)、OPEN(打开文件)、OR(逻辑或运算符)、OTHERS(条件语句的其他情况)、OUT(输出方向)、PACKAGE(包声明)、PORT(端口声明)、POSTPONED(延迟的条件处理)、PROCEDURE(过程)、PROCESS(处理)、PURE(纯函数定义)、RANGE(范围类型)、RECORD(记录类型)、REGISTER(寄存器)、REJECT(消息拒绝)、REM(取余运算符)、REPORT(报告消息)、RETURN(返回)、ROL(向左循环移位运算符)、ROR(向右循环移位运算符)、SELECT(信号表达式)、SEVERITY(严重程度标识符)、SHARED(共享变量)、SIGNAL(信号)、SLL(逻辑左移运算符)、SRA(算术右移运算符)、SRL(逻辑右移运算符)、SUBTYPE(细分类型)、THEN(条件语句的结果)、TO(范围)、TRANSPORT(传输方式)、TYPE(类型)、UNAFFECTED(保持不变)、UNITS(单位定义)、UNTIL(循环条件)、USE(导入包)、VARIABLE(变量)、WAIT(等待条件)、WHEN(条件语句的情况)、WHILE(循环语句的条件)、WITH(条件分支)、XNOR(异或非运算符)、XOR(异或运算符)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值