AES加密算法学习
算法简介
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。(摘自百度百科)
AES属于对称加密算法,加密解密使用的密钥相同,同时也是分组加密算法,明文长度固定为128位,密钥长度分为128位,192位,256位,(也就是常说的AES128,AES192,AES256),密钥每增加64位加密函数增加两轮。
萌新是跟着这位爷和这个视频学的。
前置芝士伽罗华域(Galois Field)上的四则运算
GF(2^8)有限域上的运算问题
看了一天AES数学基础,果然最痛的还是数学😭
个人理解:有限域上的多项式运算主要是把握住加减法运算和异或运算的等效性,理解了这一层,对于有限域G ...
js逆向初探
JS 基础瞎几把写就得,记录一下特性即可。
万物皆对象,了解一些内置函数和内置属性,比如name, arguments等
var 有变量提升,let没有,闭包概念
匿名方法 const 匿名方法 = (functinn() {})
JS是弱类型语言
自主垃圾回收,引用计数
原型对象和实例对象,构造函数,打印原型对象得.prototype,原型对象和实例对象下面都有一个 __proto__属性,指向了其原型对象
原型对象和实例对象的 this 指向是不同的,实例对象:谁调用的就是谁(比如 window),原型对象:指向的是原型对象的实例
一个函数被new出来就变成了一个构造函数&原型对象,构造函数的属性和原型对象的属性不同
原型链:对于实例而言a.__proto__ 指向其原型对象,对于原型对象而言指向的其父原型对象,直到 Object 原型对象
一个例子:
1234567function pro() { this.a = 1;}pro.a = 2;var aa = new pro(); // new 出来一个 ...
SCTF2024-re-wp
BBoxSO层算法
注意,不同平台的rand()不一样,一定要在linux的环境跑伪随机数
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127// so层算法的流程和逆向#include <bits/stdc++.h>using namespace std;struct randList{ int len; int num[2333];} r;void encrypt(int seed){// time_t time_0 = time(0); char e ...
前端开发初上手
vue 3 学习
组合式API
setup,setup里的this是undifined,最后ret到模版
选项式的数据,方法,就是定义在setup里面的数据函数
setup比beforeCreate的声明周期更早,由于其生命周期很早,因此其他的组件也可以读取到setup里定义的变量/函数,通过this读取,也就是说旧写法能读取新写法的,但是新写法不能读取旧的,也就是setup读不了其他的
箭头函数:例子return ()=>'hello',setup的返回值也可以是一个函数/箭头函数
响应式:如果直接定义一个变量,比如 let name = "EPsilon",这个就不是响应式的,当我们通过一些事件修改这个变量的时候,虽然日志打印是没问题的,但是前端不会同步响应,要想达到响应式,就得用 ref 来定义,比如 let name = ref("EPsilon")
setup 语法糖:在 <script> 标签里面写 <script setup> ,就相当于写了一个 setup 函数
vue3 组件可 ...
unidbg初探
参考链接(主要是备份向)unidbg入门笔记
项目简介项目地址
unidbg 是建立在Unicorn引擎之上的,Unicorn引擎是一个强大的开源CPU模拟器框架,支持多种架构,包括x86、ARM、MIPS等,因此unidbg也能够模拟这些不同的CPU架构。UniDGB的另一个核心组成部分是Capstone引擎,它用于反汇编和指令解码。
基本框架1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package com.kanxue.test2; import com.github.unidbg.AndroidEmulator;import com.github.unidbg.Module;import com.github.unidbg.arm.backend.DynarmicFactory;import com.github.unidbg.linux.android.AndroidEmulatorBuilder;import co ...
Charles 抓包学习
安装Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy (charlesproxy.com)
免费版有使用期限,分享一个在线的激活码生成网站
Charles破解工具 (zzzmode.com)
配置
电脑安装证书->安装到本地计算机->选择受信任的证书颁发机构
proxy->proxy_setting->端口号
SSL proxy settings->Enable SSL->端口 *:443(443是HTTPS默认端口)
help->local IP address->找到wifi的ip地址->手机wifi(手机电脑连一个wifi)设置手动代理 ip+port
手机安装证书,先计算hash再用MoveCertificates(一个magisk模块)mount到系统目录(android 13 系统,折腾不来system分区解锁,直接用magisk面具吧)
一些额外操作:
Proxy -> ...
某东sign算法分析记录(萌新向)
app 版本:12.2.2
抓包用Charles抓包,可以用Structure查看 api.m.jd.com 里面的接口,很多 client.action 的包
看一下contents,可以根据这个 x-api-eid-token 定位签名逻辑
x-api-eid-tokenx-api-eid-token 是一个用于身份验证和授权的关键参数,通过API网关传递给后端服务,实现流程大概分为三步:
客户端发起请求到API网关
API网关验证并生成 x-api-eid-token
API网关把 x-api-eid-token 传递给后端
静态分析扔 jadx 搜索 EID_TOKEN,再找到交叉引用
定位到这个函数,输入一个参数 z,生成一个包含各种设备和用户信息的URL参数字符串,下面逐段分析一下
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 ...
selinux 学习
ROOT 的本质是什么所谓 root 的本质,就是 当前任务访问系统资源的能力。
在一般的实时操作系统中,这里的任务(task)指的就是线程,是计算机 CPU 对程序进行调度的最小单位。
如果我们要执行一条命令 cat /etc/passwd,当前用户运行了可执行文件/bin/cat,并且新生成一个子进程,在该进程中读取了/etc/passwd文件。
要看所执行的 cat /etc/passwd 是否能够成功,其实是看在内核中下面这些条件能否满足:
当前的线程是否可访问、执行cat可执行文件,是否可以创建新进程;
新进程如何继承当前进程的属性,这决定了新线程是否可以访问 /etc/passwd;
访问控制是什么在计算机安全领域,访问控制表示操作系统对某个主体(subject)访问或者执行某种操作的约束,主体可以是线程或者进程,操作可以是访问文件、目录、TCP/UDP 端口、共享内存段、IO 设备等对象。这类约束可以抽象成两大类,一类可以由对象的属主对自己的访问者进行管理,称为自主访问控制(DAC);另外一类由操作系统统一管理,称为强制访问控制(MAC)。
DACDAC 即 Di ...
某病毒样本分析报告
某病毒样本分析报告一些碎碎念学了这么久逆向感觉一直面向的CTF题,很少接触真正的实际应用,刚接触样本分析感觉很多都不会,找一篇写的不错的文章入个门先
[原创]样本分析核心手法:一个简单的开始-软件逆向-看雪-安全社区|安全招聘|kanxue.com
哈哈由于暑假比较摆烂,中间再插播一个工业互联网决赛,所以学的很慢,调的也比较慢,结合一些网上的文章还有一些样本分析实例勉强做了一些浅薄的分析,过程如下:
样本名称:8aca8fe2dfa143a3210f00df3f43d4185fefa7a3
分析软件:火绒剑/idapro/OllyDBG/studyPE/010Editor/exeinfo
调试环境:Windows 10 x64 22H2
行为分析这里使用火绒剑进行行为分析
发现有很多注册表操作,对文件目录的读取和修改行为,以及网络连接行为,连接的 ip 地址经查询在保加利亚,最后还把自己给删了
查壳之前只接触过 UPX 壳,还稍微研究过一点点源码,但是样本分析里面的查壳比想象中复杂很多,光是判断有没有壳就是一道难题
exeinfo PE 能查出来C++版本,MSVC编译,入口点 ...
frida-lab做题记录
刚学 frida,从网上找了一个题库练练手。
Challenge 0x1
逻辑很简单,就是输入一个数然后判断是不是等于 get_random 这个函数的返回值 * 2 + 4,直接对该返回值 hook
12345678function hook_1() { var utils = Java.use("com.ad2001.frida0x1.MainActivity"); utils.get_random.implementation = function() { var res = this.get_random(); console.log(res); return res; }}
Challenge 0x2直接主动调用这个函数即可
1234function hook_2() { var MainActivity = Java.use("com.ad2001.frida0x2.MainActivity"); MainAct ...