标签:cat mic isp splay 指令 size string win strong
当fd为0的时候代表标准输入,也就是控制台,然后就可以实现buf=="LETMEWIN\n" , 编辑了一下fd.c-->命名为1.c用来测试,gcc编译指令“gcc 1.c -o 1”
#include <stdio.h> #include <stdlib.h> #include <string.h> char buf[32]; int main(int argc, char* argv[], char* envp[]){ if(argc<2) { printf("pass argv[1] a number\n"); return 0; } printf("%s %s\n",argv[0],argv[1]); int fd = atoi( argv[1] ) - 0x1234; printf("fd:%d\n",fd); int len = 0; len = read(fd, buf, 32); if(!strcmp("LETMEWIN\n", buf)){ printf("good job :)\n"); system("/bin/cat flag"); exit(0); } printf("learn about Linux file IO\n"); return 0; }
本来是想直接传0x1234但是atoi后为0,看来atoi函数不支持十六进制
标签:cat mic isp splay 指令 size string win strong
原文地址:https://www.cnblogs.com/chrysanthemum/p/12327540.html