FINSENTY54

几处早莺争暖树,谁家新燕啄春泥。

0%

ELF x86 - Format string bug basic 2


snprintf

snprintf— prints into a string with length checking
(https://pubs.opengroup.org/onlinepubs/009695399/functions/snprintf.html)
snprintf()函数应与sprintf()等效,并增加了n参数,该参数指出s所指缓冲区的大小。
·如果n为零,则不写任何内容,而s可以为空指针。
·否则,将丢弃第n-1st之后的输出字节,而不是将其写入数组,并且在实际写入数组的字节的末尾写入一个空字节。
也就是增加了限制

阅读全文 »

leetcode add two numbers

本题关于singly-linked list 单链表
链表是怎么链接在一起的??怎么存储的??

阅读全文 »

leetcode 1 two sum

学到的东西

hash-table 哈希表

散列表
是根据键(Key)而直接访问在内存储存位置的数据结构

若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数,按这个思想建立的表为散列表。

阅读全文 »

Z3:: big 表示大端序 即末尾放在高地址处 即顺序保持不变
地址:0x804810: – : 0x804820

Exploit writing tutorial part 1 : Stack Based Overflows

ax 16位
al 8位

mov     rax, [rbp+var_E0] ;rax=0xc8    0xdf    0xff    0xff    0xff    0x7f
mov     rax, [rax] ; rax=0x7fffffffe2f4
mov     [rbp+input], rax ;
mov     rax, [rbp+input] ; rax=0x7fffffffe2f4
mov     rdi, rax        ; s
call    _strlen
阅读全文 »

ELF x86 - Stack buffer overflow basic 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

void shell() {
setreuid(geteuid(), geteuid());
system("/bin/bash");
}

void sup() {
printf("Hey dude ! Waaaaazzaaaaaaaa ?!\n");
}

void main()
{
int var;
void (*func)()=sup;
char buf[128];
fgets(buf,133,stdin);
func();
}
阅读全文 »

Sploitfun-Classic Stack Based Buffer Overflow

sudo bash -c "echo 0 > /proc/sys/kernel/randomize_va_space"
关闭ASLR
具体可见https://blog.csdn.net/Plus_RE/article/details/79199772

gcc -pie Create a dynamically linked position independent executable.
Linux 平台通过 PIE 机制来负责代码段和数据段的随机化工作

gcc -g -fno-stack-protector -z execstack -o vuln vuln.c
阅读全文 »

ELF x64 - Nanomites - Introduction_WP

这是运用了Debug Blocker技术的题目
又花了些时间,终于破解了

gdb 设置跟踪父进程还是子进程

set follow-fork-mode parrent|child
当发生fork时,指示调试器执行父进程还是子进程

ptrace

在程序执行到int3时,就会触发 SIGTRAP 信号,

阅读全文 »