rop and lab3_4_recap
This commit is contained in:
28
lab3_4_recap/01_aquabank_armory/main.c
Normal file
28
lab3_4_recap/01_aquabank_armory/main.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
static void setup(void) {
|
||||
setvbuf(stdin, NULL, _IONBF, 0);
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
setvbuf(stderr, NULL, _IONBF, 0);
|
||||
}
|
||||
|
||||
__attribute__((naked, used)) void pop_rdi_ret(void) { __asm__("pop %rdi; ret"); }
|
||||
__attribute__((naked, used)) void pop_rsi_ret(void) { __asm__("pop %rsi; ret"); }
|
||||
__attribute__((naked, used)) void pop_rdx_ret(void) { __asm__("pop %rdx; ret"); }
|
||||
__attribute__((naked, used)) void syscall_ret(void) { __asm__("syscall; ret"); }
|
||||
|
||||
static void vuln(void) {
|
||||
char buf[64];
|
||||
|
||||
puts("[armory] Storeroom open -- pick your weapons:");
|
||||
(void)read(STDIN_FILENO, buf, 512);
|
||||
puts("[armory] Locking down.");
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
setup();
|
||||
vuln();
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user