sunshine CTF
更新中... Pluto Chat 程序分析 首先看到main函数 void __fastcall __noreturn main(int a1, char **a2, char **a3) { sockaddr addr; // [rsp+20h] [rbp-220h] BYREF char s_1[256]; // [rsp+30h] [rbp…
L3HCTF复现_菜鸡的自我救赎(┭┮﹏┭┮)
TemporalParadox 根据ida的报错 patch掉花指令之后还原代码爆破即可 可惜当时做的时候没有看出花指令,然后想通过Frida Hook函数爆破,然后就没写出来呜呜(┭┮﹏┭┮) (事实证明Frida爆破也是一种可行的方式,需要hook time64() 函数,并通过多进程的方式爆破) main.cpp #include <i…
Ph0en1x-100 从一道安卓逆向题目练习frida hook
前言 最近刚好在学习安卓逆向,又碰巧在学习frida的使用方法,做到一道攻防世界上面的题目,想着是否能够借助这次机会来学习一下Frida的使用方法 Step1 首先是运行一下看看它的实现方式,发现是input加验证的方式 我们接着反汇编它的代码 package com.ph0en1x.android_crackme; import android.…
ACTF deeptx逆向复现笔记
时隔这么久,终于断断续续的把这道题看完了. 不得不说浙大的✌水平还是太高了.做的那叫一个痛苦(也有可能是我太菜的原因:) 初见 怎么借助工具拿到汇编这里就不赘述了,网上许多WP都有写了 也可以参考阿里云CTF的一道题目 这里附上链接阿里云CTF2025 Writeup - 星盟安全团队 int __fastcall main(int argc, c…
CTF中一些主要的算法介绍
碎碎念 最近越发觉得对常用加密算法的研究比较粗糙,借着完善社团文档的机会,再继续修改一下我的文章. 一些前置小知识 一、为什么需要加密模式(Modes of Operation) 像 RC6 这样的分组加密算法,是固定长度加密的: RC6-32/20/16 每次只能加密 128 bit(16 字节) 数据块 如果明文超过 16 字节,就必须把数据切…
攻防世界 难度5 津门杯 GoodRE
攻防世界 津门杯 GoodRE 1.点开,64位,无壳,无混淆 2.查看基本函数逻辑 __int64 __fastcall main(int a1, char **a2, char **a3) { __int64 *i64_v3_input; // r12 int *v4; // r14 __int64 v5; // rbx int v6_Inpu…
PWN 攻防世界 repeater
PWN 攻防世界 repeater 1.用ida打开,首先我们能看到maim函数先进入一个循环, 里面有一个read函数 __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char s[32]; // [rsp+0h] [rbp-30h] BYREF int v5; // [rs…
攻防世界-polyre
攻防世界-polyre WP 难度5 大概的流程 刚开始直接ollvm混淆吓死你 1.首先使用deflat.py去除控制流平坦化,这里给出使用示例: (angr-dev) <path>/deflat/flat_control_flow$ python3 deflat.py -f samples/bin/check_passwd_x866…
windows内存管理
1.(x86)每个进程都有4GB的虚拟内存 2.(x86)中物理内存以4KB的大小进行分页管理 (X86) 低2GB称为用户空间 高2GB称为内核空间 0X00000000----0X0000FFFF 空指针赋值区 0X00010000----0X7FFEFFFF 用户模式区 0X7FFF0000----0X7FFFFFFF 64KB禁入区 0X8…
进程与线程(x86)
进程介绍 1.任何进程都是进程创建的 explorer.exe 2.进程创建过程 映射exe文件 创建内核对象eprocess 映射系统DLL(ntdll.dll) 创建线程内核对象ETHREAD 系统启动线程 映射DLL(ntdll.LdrInitializeThunk) 线程开始执行 windows进程加载示意 每个进程都有一个句柄表 句柄是用…