记事本

passcode

代码如下 #include <stdio.h>#include <stdlib.h>void login(){ int passcode1; int passcode2; printf("enter passcode1 : "); scanf("%d", passcode1); fflush(st...

input

代码如下 #include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>int main(int argc, char* argv[], char* envp[]){ print...

flag

直接用IDA打开,居然连输出的字符串都找不到…于是通过strings发现文件是被UPX压缩了。下载UPX,用upx -d flag解压缩后,直接找到flag地址。或者再用strings

collision

代码如下 #include <stdio.h>#include <string.h>unsigned long hashcode = 0x21DD09EC;unsigned long check_password(const char* p){ int* ip = (int*)p; int i; int res=0; ...

bof

代码如下 #include <stdio.h>#include <string.h>#include <stdlib.h>void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); if(key == 0xcafebab...

unexploitable

这次是500分的rop #include <stdio.h>void main(){ printf("Not all the bugs are exploitable.\n"); printf("Try to exploit this one and you will see.\n"); printf("Or.. maybe you c...

fd

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...

ELF segments and sections

有时候需要搞明白ELF文件里哪些部分是可写的,之前一直是稀里糊涂的,没有仔细去研究。今天稍微看了一下manpage,并动手试了下,大概明白了segments和sections之间的关系。 以下内容是基于我自己的理解写的,所以有些部分可能并不准确。 首先是两个概念,segments和sections,这两个是完全不同的。ELF文件除了ELF header,还有program header和...

安装metasploit

首先是ruby1.9,因为版本低,所以从aur里装的。为了方便起见,把PKGBUILD里面涉及到的后缀1.9全部去掉,方便。再给gemrc文件里加上 gem: --no-ri --no-rdoc gemrc文件可以通过 $ strace gem 2>&1 | grep gemrc 找到在哪里。 还需要bundle来管理gems $ gem install bundler...

save the world

http://www.wechall.net/challenge/Z/save_the_world/index.php 这道题和ISG里的yaya用的是同样的思路,这里再复述一遍。 据说这个方法的名字是Hastad,但我觉得思路其实很简单: 用中国剩余定理找到c, 使得c%n1=c1, c%n2=c2, c%n3=c3 求c的立方根p #!/usr/bin/python2...