rc4
rc4加密过程 密钥调度算法(KSA)(Key Scheduling Algorithm) 初始化一个长度为256的数组S,值为S[i]=i,其中i是索引. s=list(range(256)) 根据密钥(char类型)和S[i]生成j,S[j],并进行置换: 初始化:j=0 开循环: j=j+S[i]+key[i%len(key)]%256 交换S[i]和S[j] 伪随机数生成算法(PRGA) 初始化两个索引变量:i,j=0 以密文字节长度开循环: i = (i+1)%256s j = (j+s[i])%256 交换S[i]和S[j] t = ( S[i]+S[j] )%256 KEY = S[t] enc[h]^KEY
常见函数用法
常见函数用法1.read1read(0, buf, 0xAuLL); 用法: 12ssize_t read(int fd, void *buf, size_t count);bash 参数解释: fd:文件描述符,表示要读取的文件或者输入源。在 UNIX 系统中,0 表示标准输入(STDIN),1 表示标准输出(STDOUT),2 表示标准错误(STDERR)。 文件描述符0:用于接收用户输入或者从管道、重定向或者其他输入源读取数据。 文件描述符1:用于向终端或者其他输出目标输出数据。 buf:指向存储读取数据的缓冲区的指针。 count:要读取的最大字节数。 注:0xAuLL 中的 uLL 表示这是一个无符号长长整型(unsigned long long)的常量,sleep(0x1BF52u)中的u表示无符号整型(unsigned)。 2.strcat1strcat(dest, buf); 这行代码将用户输入的内容追加到 dest 字符串后面 双击跟进 dest 可以看到 dest 被声明为一个大小为 4 字节的字符数组,用来存储字符串 详细解释: dest 是一...
Android动态调试小记
安卓动态调试——apk加上动态可调试属性 刷了一下2024xyctf的DebugMe题目,记一下这次动态调试过程。 用jeb打开后看到有调试检查,再根据题目提示为动态调试。知道需要进行动调。 先用雷电模拟器在程序里面运行这个程序,接着用adb测试远程连接:输入adb devices。如图显示就算端口连接好了。 adb devices -l查看连接的设备 adb shell ps查看线程状态 然后才能在jeb里面点击调试器或者甲虫下图标进行动态调试,不然会显示调试的目标不存在。 点击attach附上。 提示程序不可调试nondebuggable。 提示无法attach上。 一、用Android Killer编译的方法修改apk为可调式 用Android Killer打开apk,可以解包这个程序。 点开AndroidMainfest.xml,在<application那一行后面加上android:debuggable=”true”这个属性(记得要ctrl+s保存)。 把...
“gcc编译”
C++编译全过程 gcc flag.c -o flag(用gcc编译成可执行文件) 一、四个步骤: 预处理(Processing) gcc -E flag.cpp -o flag.ii -E Preprocess only; do not compile, assemble or link. 编译(Compilation) gcc -S flag.ii -o flag.s -S Compile only; do not assemble or link. 汇编(Assemble) gcc -c flag.s -o flag.o -c Compile and assemble, but do not link. nasm -f elf64 -o flag.o flag.asm # 使用 nasm 将 .asm 文件编译成 .o 文件 (有的asm文件nasm汇编后需要这样操作,因为他是NASM语法编写的代码,gcc无法直接处理) 链接(linking) ...
Base64编码解析
Base64编码解析 计算机单位解析一、位,字节,的定义1.bit(Binary Digits)就是二进制数字中的位,是信息量的度量单位,为信息量的最小单位,也叫比特位,存放一位二进制数,即0或1,是计算机表示数据最小的单位。 (b) 2.byte就是字节,字节(Byte)是计量单位,是计算机的基本存储单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位.通常情况下一字节等于8位,一个字节由8个相邻的二进制位组成,每个位由0或1组成。字节是计算机技术中最小的可操作存储单位。 (B) ASCII 使用 7 位二进制 表示字符,总共可以表示 2⁷ = 128 个字符 虽然是 7 位,但通常用 8 位(1 字节)存储 二、换算 1byte=8bit 1KB=1024B 1MB=1024KB 1G=1024MB 1tb=1024gb 1pb=1024tb 1字节=8位二进制=2个十六进制字符 三、字节与字符 字符的定义: 字符(Character)计算机中使用的字母、数字、字和符...
f5报错的几种类型
f5生成伪代码出错的几种类型 常见F5出错信息1.posutuve sp value has been found 成因:IDA会自动分析SP寄存器的变化量,由于缺少调用约定、参数个数等信息,导致分析出错。 一般是程序代码有一些干扰代码,让IDA的反汇编分析出现错误。比如用push + n条指令 + retn来实际跳转,而IDA会以为retn是函数要结束,结果它分析后发现调用栈不平衡,因此就提示sp analysis failed。 解决方案:Option->General设置显示Stack Pointer,检查对应地址附近的调用约定以及栈指针变化。直接使用alt+k修改sp指针,将其修改为应有的值即可(可以改为指向上一行的sp或者修改为0)。(有风险) 2. cannot convert to microcode 成因:部分指令无法被反编译,有未设置成指令的数据字节。 解决方案: 最常见起因是函数中有未设置成指令的数据字节,按c将其设置为指令即可。 其次常见的是x86中的rep前缀,比如repxx jmp等。可以将该指令的第一个...
逆向破解010 Editor
前几天做misc的时候发现010Editor试用期结束了,这回无论怎么卸载再安装也没法使用了,也找不到注册码,于是我想着逆向分析一下这个程序看能不能把他给破解了,多次尝试无果,于是上网查找相关资料,最后真的成功破解了! 接下来记录一下这次破解过程: 一.明确思路:破解010 Editor需要注册码,如果找不出注册码,只要始终把注册标志标记为已注册,就可以成功破解。 二.完整流程:1.下载010 Editor从官网下载010 Editor 2.固定PE基址我们在windows逆向时,经常会遇到PE文件的基地址随机的情况,不利于反汇编的对比分析,比如利用OD反汇编时的地址和IDA反汇编时就会有不同,两者在对比分析过程中就很难对应上。 这时我们利用反汇编查壳神器study PE++ x64来固定基址 把exe拖入studype,点击固定PE基址,再点击文件保存更改。 3.拖入x64dbg分析1>找程序入口: 按F9运行程序直到出现程序入口(Entrypoint),能看到一堆jmp指令。 2>找Evaluation Ver...
web学习记录
一、万能密码万能密码:’ or ‘=’ #select * from user where username=’’or ‘=’#’ and password=’ ‘(*是通配符,#注释掉后面的语句,or前面是空的,为假,后面为真的,又因为是or语句,所以总体为真。)(除了 # 以外, – 也是SQL中的注释符,但SQL的语法格式规定–和后面的注释内容必须间隔一个空格,所以这需要使用 a’ or 1 – a 而不是 a’ or 1 – 其原理和 a’ or 1 # 大同小异) 二、SQL注入1.SQL注入的分类:1.根据注入位置分类:get、post、head头注入 根据反馈结果分类:有回显(显错注入)、无回显(盲注) 根据数据类型分类: 1.数字型:0123456789 2.字符型:输入的参数为字符串。最大的区别:字符型不需要闭合,字符串型一般需要闭合。 2.SQL注入的流程:?id=1asdfg 一、看是否报错:1.不报错:字符型 报错:数字型 二、看是...
IDA超全使用方法
一、IDA的下载ida的官网下载地址ida下载,包含x64和x32. 也可以在52破解上下载。 二、IDA的介绍及如何使用1.IDA简介IDA,全称为交互式反汇编器专业版(Interactive Disassembler Professional),是一款功能强大的静态反编译软件。它被广泛用于软件安全分析,尤其是在0day研究和ShellCode分析中不可或缺。IDA Pro以其交互性、可编程性、可扩展性以及对多处理器的支持而闻名,能够在Windows、Linux、WinCE、MacOS等多个平台上运行,分析各种程序代码。 IDA Pro支持多种CPU指令集,包括但不限于Intel x86、x64、MIPS、PowerPC、ARM、Z80、68000和c8051。这使得IDA Pro能够分析各种不同架构的程序,成为逆向工程领域的重要工具。IDA Pro的递归下降反汇编能力,以及其在区分代码和数据、确定数据类型方面的高效算法,使得它能够提供接近源代码的反汇编输出。 2.在IDA中打开文件 双击ida new会打开一个空白页面,把想逆向的文件拖进去即可...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment



