RC4脚本
形如下列形式的加密模式可初步判断为RC4加密
12345678910111213141516171819Function Initialize(strPwd) Dim box(256) Dim tempSwap Dim a Dim b For i = 0 To 255 box(i) = i Next a = 0 b = 0 For i = 0 To 255 a = (a + box(i) + Asc(Mid(strPwd, (i Mod Len(strPwd)) + 1, 1))) Mod 256 tempSwap = box(i) box(i) = box(a) box(a) = tempSwap Next
当我们确定了密文和密钥后可以实用脚本来解密
脚本大概分两类,如下:
密钥 (key) 是一个字符串,例如 "H&NKEY"
密文(ciphertext)为一个十六进制字符串,例如 “59fc6b263c3d0fcbc ...
花指令脚本
花指令
12345678startaddr = 0x001144endaddr = 0x3100 for i in range(startaddr,endaddr): if get_wide_byte(i) == 0xEB: # 获取地址 i 处的字节数据,然后检查该字节数据是否等于 0xEB(十六进制) if get_wide_byte(i+1) == 0xFF: # 如果前一个字节等于 0xEB,则继续检查地址 i+1 处的字节数据是否等于 0xFF patch_byte(i,0x90) # 将地址 i 处的字节数据替换为 0x90(0x90其实就是nop指令) print("[+] Addr {} is patched".format(hex(i)))
VBS
原题链接提取码:1234
这是vbs混淆,首先我们打开vs studio,打开调试->选项->实时,把脚本选项打开
win+R,wscript /X +文件路径,这里是我的路径:
1wscript /X D:\赛题\赛题\HNCTF\Reverse\Baby_OBVBS\Baby_OBVBS\Baby_OBVBS.vbs
再点击vs studio是这种显示
ctrl+a全选复制到记事本
这是vbs混淆,通过脚本来解决
1234567891011121314151617181920212223242526Option Explicit Function Defuscator(vbs) Dim t t = InStr(1, vbs, "Execute", 1) t = Mid(vbs, t + Len("Execute")) t = Eval(t) Defuscator = tEnd Function Dim fso, iConst ForReading = 1Set fso = CreateObject(&qu ...
Windows rust安装全教程(保姆级)
[TOC]
安装条件rust底层依赖C环境,所以我们需要先安装C/C++编译环境。这时我们有两个选择:1.安装微软的msvc;2.安装mingw/cygwin。选择msvc安装的优点是一路默认即可,缺点是内存占用较大,需要好几个G;mingw安装的优点是内存占用较小,缺点是在安装中需要手动选择一下。接下来我会分别将讲述两个安装过程,大家看自己需求进行安装。
路径调整本人不喜欢在C盘安装东西,所以这个步骤是调整安装路径的,如果选择安装在C盘可以跳过此第一步,跳至2.配置加速安装地址
1.配置rustup和cargo目录我们可以通过设置环境变量来改变默认安装位置
打开环境变量的过程如下:打开设置->在搜索框搜索环境变量->点击编辑系统环境变量->点击环境变量->在系统变量或者用户变量点击新建,输入
CARGO_HOME W:\Rust\.cargo
RUSTUP_HOME W:\Rust\.rustup
这里的W:是我的rust安装的盘,大家自行换成想要安装的盘
2.配置加速安装地址因为从官网下载很慢,所以改用国内镜像加速,设置以下 ...
base64脚本
base64脚本
123456import base64str1 = "" #str1是要解密的代码string1 = "" #string1是改过之后的base64表string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"print (base64.b64decode(str1.translate(str.maketrans(string1,string2))))
推断base 64编码的方法:
1、是否 使用64个字符来表示所有可能的值。这些字符通常包括大小写字母、数字和一些特殊字符例如’A’到’Z’、’a’到’z’、’0’到’9’、’+’和’/‘。有时候,也可能会包含填充字符’=’
2、如果输入的数据长度不是3的倍数,base 64编码会使用填充字符来补齐。通常填充字符为’=’,用于表示数据结尾的不完整片段出现在编码末尾,用于对数据进行填充以满足长度要求。因此,可以检查文本末尾是否包含1 ...
AES
AESAES是一种分组加密算法,明文分组大小为128位,密钥长度有128、192、256位三种。
分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:
AES 密钥长度(32位比特字) 分组长度(32位比特字) 加密轮数AES-128 4 4 10AES-192 6 4 12AES-256 8 4 14轮数在下面介绍,这里实现的是AES-128,也就是密钥 ...