2022年终总结
写在前面
憨鸠鸠又一日,柒懵懵又一年。
2023.1.6 下午开写摆
1.11 更新
来日
好好吃饭,好好上课,好好睡觉
克服拖延症
拿下一台 macOS
空闲时间继续学二进制,尝试复现一些🍎的漏洞
过大四体测
装修好自己的房间
养成一些良好的习惯,比如早睡早起、跑步/散步/快走
身体恢复正常
今年唯一可惜的可能就是没有考研上岸吧。
这一年过的很平淡,大四老东西从社团中慢慢脱身,变成了一个普通的大学生卷入考研的浪潮。得益于规律的考研生活,以前的鬼见愁作息也调整过来了,一年下来也没生什么病,最严重的一场大病就是考研前阳了,真是各种意义上的严重。
上半年拿了个 3k 的企业奖学金,自己填了点买了个二手的 mac mini,年末因为实在受不了一加 7p 的碎屏和烧屏,收了个二手的 iPhone13 pro,再加上去年买的底配 iPad,也算磕磕绊绊凑齐了全家桶,被迫投入了苹果生态的怀抱。比较不满意的是没能坚持挤出时间来学二进制,mac mini 没有实现我买它的初衷。
今年家里面全部重新装修,我的房间全部大改,我从初中开始住校到今年大四,不论 ...
2021年终总结
写在前面
2021 一年走下来,感觉就好像走到了人生的又一个拐点,跟高三那年一样。
2021.12.28 更新了个寂寞
2021.12.31 凌晨更新
考试背不完了,事情忙不完了,太想摆烂了,等 1.6 去松山湖找鹏神玩回来以后再更新完整版
2022.1.12 正式开写
rm flag ; touch flag惯例这里放着自己在新的一年里的目标与期望,同时也对上一年的 flag 进行总结
2021 年都说过什么蠢话呢?
好好吃饭,好好上课,好好睡觉,务必做到
转型二进制选手,web也不能落下
学会做开发!学会做开发!学会做开发!!!
提高学习效率,尽量少熬夜,不要再困倒在厕所门口的垃圾桶旁边了
多读书,同时也要做读书笔记,不然看了就忘,没用
争取大二暑假结束去找个实习
多打比赛,争取多拿几个奖,争取进一次大比赛的线下赛,两次三次更好!
抽点时间出来打游戏陪陪自己,不要只买游戏不玩游戏
锻炼身体
本以为会有大部分完不成,但是回顾下来居然也完成了很多
在生活上,去年大部分时间还是有好好睡觉,少部分时间作息失调,考试前几天还 ...
2020年终总结
写在前面2020挺不容易的,做个总结吧
2020.12.31 更新
这篇文写了有几天,最后还是想着,把明年的目标和期望写在文章的最前面,然后把文顶置,以后每次点开看到的都是去年对自己新的一年的展望,应该会蛮有动力的吧
2021
好好吃饭,好好上课,好好睡觉,务必做到
转型二进制选手,web也不能落下
学会做开发!学会做开发!学会做开发!!!
提高学习效率,尽量少熬夜,不要再困倒在厕所门口的垃圾桶旁边了
多读书,同时也要做读书笔记,不然看了就忘,没用
争取大二暑假结束去找个实习
多打比赛,争取多拿几个奖,争取进一次大比赛的线下赛,两次三次更好!
抽点时间出来打游戏陪陪自己,不要只买游戏不玩游戏
锻炼身体
2020.12.27 更新
上半年
居家时期2020 上半年不管对谁来说都很不容易,因为疫情的原因,上半年一直到四月底五月初都一直是呆在家里的,也刚好是因为一直在家里面,也遇到了一个很特别的人
在学习跟生活上对自己是不满意的,(现在反省自己),本来就自律能力不强,学习能力直线下降,拖慢了自己很多进度,本来有很多想学的东西,一直是因为自己懒惰、拖延的毛病 ...
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
llvm代码混淆学习(九)
写在前面
随便学学 llvm 代码混淆,顺便做个毕设,水几篇文章就当做做笔记
常量替代原理分析概述常量替代指的是将二元运算指令(如加法、减法、异或等等)中使用的常数,替换为等效而更复杂的表达式,以达到混淆计算过程或某些特殊常量的目的。
例:将 TEA 加密中使用的常量 0x9e3779b 替换为12167 * 16715 + 18858 * 32146 - 643678438。
同指令替代,目前仅支持整数常量的替换,因为替换浮点数会造成舍入的错误和误差。且仅支持 32 位整数的替换。
混淆效果类似于指令替代,函数的控制流没有发生变化,但是运算过程变得难以分析:
扩展常量替代可进一步扩展为常量数组的替代和字符串替代。
常量数组替代可以抹去 AES,DES 等加密算法中的特征数组,字符串替代可以防止攻击者通过字符串定位关键代码。
常量替代代码实现思路实现步骤总体思路扫描所有指令,对目标指令(操作数类型为 32 位整数)进行替换:
123456789for(Instruction *I : origInst){ // 只对二元运算指令中的常量进行替换 if(Bin ...
llvm代码混淆学习(八)
写在前面
随便学学 llvm 代码混淆,顺便做个毕设,水几篇文章就当做做笔记
随机控制流原理分析概述随机控制流是虚假控制流的一种变体,随机控制流通过克隆基本块,以及添加随机跳转(随机跳转到两个功能相同的基本块中的一个)来混淆控制流。
与虚假控制流不同,随机控制流中不存在不可达基本块和不透明谓词,因此用于去除虚假控制流的手段(消除不透明谓词、符号执行获得不可达基本块后去除)失效。
随机控制流的控制流图与虚假控制流类似,都呈长条形。
混淆效果随机的跳转和冗余的不可达基本块导致了大量的垃圾代码,严重干扰了攻击者的分析,并且 rdrand 指令可以干扰某些符号执行引擎(如 angr )的分析。
原理随机控制流同样是以基本块为单位进行混淆的,每个基本块要经过分裂、克隆、构造随机跳转和构造虚假随机跳转四个操作。
随机控制流代码实现思路实现步骤第一步:基本块拆分将基本块拆分成头部、中部、尾部三个基本块,同虚假控制流。
通过 getFirstNonPHI 函数获取第一个不是 PHINode 的指令,以该指令为界限进行分割,得到 entryBB 和 bodyBB。
以 bodyBB 的终结指令 ...
llvm代码混淆学习(七)
写在前面
随便学学 llvm 代码混淆,顺便做个毕设,水几篇文章就当做做笔记
指令替代原理分析概述指令替代指将正常的二元运算指令(如加法、减法、异或等等),替换为等效而更复杂的指令序列,以达到混淆计算过程的目的。
例如,将 a + b 替换为 a - (-b),将 a ^ b 替换为 (~a & b) | (a & ~b)等等。
仅支持整数运算的替换,因为替换浮点指令会造成舍入错误和误差。
混淆效果函数的控制流并没有发生变化,但是运算过程变得难以分辨:
原理扫描所有指令,对目标指令(加法、减法、与或非、异或)进行替换:
12345678910111213141516bool Substitution::runOnFunction(Function &F){ for(int i = 0;i < ObfuTime;i ++){ for(BasicBlock &BB : F){ vector<Instruction*> origInst; fo ...
llvm代码混淆学习(六)
写在前面
随便学学 llvm 代码混淆,顺便做个毕设,水几篇文章就当做做笔记
虚假控制流原理分析概述虚假控制流指,通过向正常控制流中插入若干不可达基本块(永远不会被执行的基本块)和由不透明谓词(指一个表达式,它的值在执行到某处时,对程序员而言必然是已知的,但是由于某种原因,编译器或者说静态分析器无法推断出这个值,只能在运行时确定)造成的虚假跳转,以产生大量垃圾代码干扰攻击者分析的混淆。
真实的情况更加复杂。虚假的跳转和冗余的不可达基本块导致了大量垃圾代码,严重干扰了攻击者的分析:
结构 && 混淆效果与控制流平坦化不同,经过虚假控制流混淆的控制流图呈长条状。
原理虚假控制流是以基本块为单位进行混淆的,每个基本块要经过分裂、克隆、构建虚假跳转等操作。
虚假控制流代码实现思路实现步骤第一步:基本块拆分将基本块拆分成头部、中部和尾部三个基本块。
通过 getFirstNonPHI 函数获取第一个不是 PHINode 的指令,以该指令为界限进行分割,得到 entryBB 和 bodyBB。
因为绝大多数基本块中 PHI 指令都在最前面
以 bodyBB 的终结 ...