블로그? 썸네일형 리스트형 ransomeware upx -d -o[output] [input] 이렇게해야 되더라. 퍼미션디나이드 왜뜨나했네 아 이거 이뮤니티로 까보면 주석 다 적어놨음 핵심부분만 설명해주면 key[n]랑 0xff를 xor하고 plaintext[n]이랑 또 xor한다고 보면될듯 b = bytearray(open('test', 'rb').read())for i in range(len(b)): b[i] ^= 0xffopen('result', 'wb').write(b)이게 xor 하는 코드 key는 반복으로 계속.. 그래서 key를 알기위해선 걍 0xff로 파일 한번 xor시켜주면 pe 특성상 null로 되어있는 공간에 key가 노출됨 letsplaychess가 key였고 복구된 파일을 열어보면 Key -> 어쩌고저쩌고 라고 나온다 더보기 imageprc 그 사용자한테 입력받은 이미지랑 리소스에 저장된 이미지랑 1바이트씩 비교함. 비교 대상 주소는 사용자 이미지([ECX])고 저장된 리소스 이미지([ECX+EAX])라는걸 확인할 수 있었음. 이미지 추출하려고 [ECX+EAX] 영역 덤프(메모리)한 다음에 BMP헤더붙이면 끝 더보기 easy_elf 소스까보면됨 걍 xor만 함. 계산하면 풀림 더보기 ㅁㄴㅇ 건강악화로 공부 나중에 ㅠ 더보기 메모 https://blog.exodusintel.com/2013/01/02/happy-new-year-analysis-of-cve-2012-4792/https://www.exploit-db.com/exploits/24495/http://www.binvul.com/ https://www.greyhathacker.net/https://github.com/demi6od/Smashing_The_Browser/tree/master/Internet%20Explorer/IE%2011%20UAF%200day%20Exploit%20Windows%207 http://language-and-engineering.hatenablog.jp/entry/20140508/IEBrowserHeapSprayUseAfterFreeVulner.. 더보기 gdb x command o - octalx - hexadecimald - decimalu - unsigned decimalt - binaryf - floating pointa - addressc - chars - stringi - instructionThe following size modifiers are supported: b - byteh - halfword (16-bit value)w - word (32-bit value)g - giant word (64-bit value) 더보기 흑 감기 몸살나서 며칠 고생했네요 ㅠ쪼끔 나아진듯하니 다시 문제 풀러.. 더보기 net4 (gdb) disas mainDump of assembler code for function main:0x0804975f :push %ebp0x08049760 :mov %esp,%ebp0x08049762 :and $0xfffffff0,%esp0x08049765 :push %ebx0x08049766 :sub $0x2c,%esp0x08049769 :call 0x8048c9c 0x0804976e :mov %eax,%ebx0x08049770 :call 0x8048b9c 0x08049775 :mov %ebx,0x8(%esp)0x08049779 :mov %eax,0x4(%esp)0x0804977d :movl $0x8049ba4,(%esp)0x08049784 :call 0x8048e58 0x08049789 :movl.. 더보기 net3 #include "../common/common.c" #define NAME "net3"#define UID 996#define GID 996#define PORT 2996 /** Extract a null terminated string from the buffer */ int get_string(char **result, unsigned char *buffer, u_int16_t len){unsigned char byte; byte = *buffer; if(byte > len) errx(1, "badly formed packet");*result = malloc(byte);strcpy(*result, buffer + 1); return byte + 1;} /** Check to see if we ca.. 더보기 net2 (gdb) disas runDump of assembler code for function run:0x0804978a :push ebp0x0804978b :mov ebp,esp0x0804978d :push ebx0x0804978e :sub esp,0x340x08049791 :mov DWORD PTR [ebp-0xc],0x0//val1(ebp-0xc) = 00x08049798 :mov DWORD PTR [ebp-0x10],0x0//val2(ebp-0x10) = 00x0804979f :jmp 0x80497fb 0x080497a1 :mov ebx,DWORD PTR [ebp-0x10]//edx = val20x080497a4 :call 0x8048a98 0x080497a9 :mov DWORD PTR [ebp+eb.. 더보기 이전 1 2 3 4 5 ··· 8 다음