fa1con Blog

我干了什么 究竟拿了时间换了什么

D^3CTF SIMD writeup

D^3CTF SIMD writeup

前言 第二次出大比赛的题目,今年因为个人原因出了一道比较无聊的题目,代码本来是想参加密码学技术竞赛的,结果因为一些原因咕咕咕了,然后稍微改了一下就拿过来用了 题解 avx2网上找有很多资料,放点比较重要的 1 2 3 vmovdqu ymm2/m256, ymm1:Move unaligned packed integer values from ymm1 to ymm2/m256. ...

现代密码学第一次实验

The first experiment of modern cryptography

现代密码学第一次实验 前言 老师让写在博客,代码有些是copy的(实验实在太多,什么?居然不是全抄的?别怀疑,有些题还是我自己写的),如有侵权,请联系本文作者删除,时间匆忙,难免有错(你们懂的XD,也留给后来的同学抄一抄 第一题:Many Time Pad 该题目提供了十条使用同一密钥(有意义的英文语句)加密后的密文结果,要求根据所给的密文解密最终的target ciphertext(目标密...

安卓动态加载技术

dynamic technology for android

动态加载技术 动态加载apk java中用继承自ClassLoader的类加载器,然后通过defineClass从二进制流中加载Class android中派生出两个类DexClassLoader和PathClassLoader,本质上重载了findClass方法,Dalvik虚拟机识别的是dex文件 DexFile在加载类时,具体是调用成员方法loadClass或者loadCl...

flare on6-challenge

flare on6-challenge

1:MemeCatBattlestation C#逆向,搜字符,发现对应函数,可以查看调用函数 两关,stage1From和stage2From 明文存储 异或 1 2 3 4 5 6 eql = [0x3,ord(' '),ord('&'),ord('$'),ord('-'),0x1e,0x2,ord(' '),ord('/'),ord('/'),ord('.'),ord('...

看雪ctf2019 Q3

kanxue CTF 2019 Q3

前段时间忙(摸),没打比赛,emmm,抽空补一下 签到题:乱世鬼雄 用户名的十六进制编码后与序列号异或,然后看到md5的常量,猜测是md5,然后试了一下发现确实是md5,KCTF补0与前面异或的结果再异或回去就是答案了 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import hashlib print "5D78C3FDF21998AC".encode('hex') ...

toolbar学习

toolbar learning

记录学习,不定时更新 概述 toolbar用来制作app标题栏 前置工作 导入v7包 1 2 import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; MainActivity需要继承AppCompatActivity 1 public class MainActiv...

*ctf yy waiteup

*ctf yy waiteup

根据语法分析器,可以搜关于那个分析器的源码,虽然没卵用 调试可以得到如下类似虚拟机的对应关系表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 0F -- a 10 -- b 11 -- c 12 -- d 13 -- e 14 -- f 15...

z3学习和在CTF中使用

z3 learning and be used in CTF

z3学习笔记 注意事项 移位操作支持可能不理想,可以采用先&后/的方法解决 想使用异或操作只能选择BitVec类型 BitVec是无符号数,Int是有符号数 BitVecVal值之间不能进行>或<比较,只能转换成python认识的类型才可以比较 BitVec变量值之间可进行>或<或=或>=或<=的比较 z3中不允许列表与列表之间添加==约...

java学习

java learning

java 第一个程序 src目录下创建一个package,package下创建一个class类型的java文件,demo如下 1 2 3 4 5 6 7 8 9 10 11 12 13 package com.fun.demo; public class helloworld { public static void main(String[] args){ Str...

anti-debug

anti-debug

[toc] linux反调试 ptrace 原理:同一时间内进程最多只能被一个调试器进行调试。通过调试进程自身,判断是否已经有调试器的存在。 1 2 3 4 5 6 7 8 9 10 #include <stdio.h> #include <sys/ptrace.h> int main(int argc, char *argv[]) { if(ptrace(...