Home

Lab1

lab1 启动顺序 1 相关寄存器设置初始值,cs寄存器初值为0xf000,ip寄存器初值为0xfff0,此时pc指针指向的内存地址为 base + offset = 0xfffffff0(0xffff0000 为cs寄存器隐含的值) 此地址为bios的eprom地址,通常为长跳转指令,跳转至1m的bios代码中执行 (注:视频中地址长度为20位,两个16位寄存器相加,即cs左移4位+ip,地址为0xffff0) 2 bios加载存储设备第一个扇区的512字节到内存的0x7c00处,pc跳转至0x7c00处执行代码(此512字节代码称之为bootloader) (注:由于bios能力限制,不能一次加载完整个的os代码至内存中,故分多次加载) bootloader的功能...

Read more

2018

2018 不知道什么时候开始流行写年终总结,可能是我这个年龄段的年轻人开始变得老成了,不过想一想好像自己今年也22了,好像确实在从哥哥向叔叔一步步迈进了。 我想2018年里面我还是经历了很多的,有很多东西想说的,但是真正说可以写出来的,可能到了眼前就忘了,剩下的可能就是一些不连续的奇怪的印象。 科大的记忆到了三月份就画上句号了,可能三年前那个二期士官给我别上肩章的时候打死也想不到我的退伍仪式就只是对着全队的战友吹了一通牛逼。回去的时候我就在想,真的结束了。 都说什么痛苦的经历到最后肯定会笑着说出来,是这样的,我看着科大的黄本子里页框的边边角角写满了当时的激进的想法,对连干,对制度,对自己,读着读着感觉自己又回到了大二时候躲在闷热的箱包房里一遍一遍对着我的平板练着口语。 我很不...

Read more

湘潭大学2018高校运维赛wp

justnote 很经典的选单程序,好久没遇到这么经典的堆题了。。 三个功能,add,delete,edit add: int insert_note() { __int64 content_addr; // [rsp+8h][rbp-18h] __int64 len; // [rsp+10h][rbp-10h] signed int i; // [rsp+1Ch][rbp-4h] for ( i = 0; i <= 31 && *(_QWORD *)(16LL * i + note_lst); ++i ) ; if ( i == 32 ) return puts("no more, no more"); cont...

Read more

hctf heapstorm

heapsorm 比赛的时候没做出来,想破了头也没找到怎么在只有0x20-0x40大小的fastbin的情况下利用offbynull来getshell,当时还以为真有这种方法没有学到 漏洞点很简单,就是个offbynull unsigned __int64 __fastcall sub_EE0(_BYTE *a1, __int64 a2) { _BYTE *v2; // rbx signed __int64 v3; // rdx _BYTE *v4; // rax bool v5; // zf char buf; // [rsp+7h][rbp-31h] unsigned __int64 v8; // [rsp+8h][rbp-30h] v8 = _...

Read more

xctffinal 2018

xctf final 2018 wp 1. reader 程序分析 程序代码量比较大,逆起来比较费劲 主要两个结构,book和paper 00000000 paper struc ; (sizeof=0x178, mappedto_7) 00000000 flag dd ? 00000004 size dd ? 00000008 content db 256 dup(?) 00000108 title db 32 dup(?) 00000128 description db 80 dup(?) 00000178 paper ends 00000178...

Read more

hack it ctf (3)

KAMIKAZE 本来我以为昨天那题目就够恶心了,妈的这个更恶心!!!恶心!!! 程序分析 unsigned __int64 add() { signed int n; // [rsp+8h] [rbp-48h] struct song *v2; // [rsp+10h] [rbp-40h] struct song *song_struct; // [rsp+18h] [rbp-38h] char nptr; // [rsp+20h] [rbp-30h] char buf; // [rsp+30h] [rbp-20h] unsigned __int64 v6; // [rsp+48h] [rbp-8h] v6 = __readfsqword(0x28...

Read more

hack it ctf (2)

chall2-bank 这道题目真的快烦死我了。。。 if ( i <= 19 ) { v3 = (struct bank *)malloc(0x28uLL); v3->flag = (__int64)&magic; LODWORD(v3->size) = 16; printf("Enter title of bank account: "); read(0, v3->title, 0x11uLL); printf("Enter size of your bank statement: ", v3->title); fflush(stdout); scanf("%d\n",...

Read more

hack it ctf

1.army 还以为是个堆题目,想多了 三个功能,加入军队,显示信息,升级(delete) 漏洞点在于加入军队和升级,全局变量magic那里 unsigned int sub_4007E7() { unsigned int result; // eax int v1; // eax int v2; // eax char nptr; // [rsp+0h] [rbp-30h] void *des; // [rsp+8h] [rbp-28h] void *answer; // [rsp+10h] [rbp-20h] int answer_size; // [rsp+1Ch] [rbp-...

Read more