0x07 CTF/[라이트업 보고 푼 것](5)
-
NOX CTF att3nti0n[REV]
NOX CTF 라이트업을 보니까 내가 접근 하지 못한 부분이 존재하였다. 그것은 바로 "VirtualAlloc부터 존재하는 루틴에 대한 미 이해 "좀 더 꼼꼼히 코드를 봐야겠다. 그럼 그대로 따라하면서 연습해보자. 먼저 main 부분부터 살펴보도록 하자.프로그램의 인자 값이 키 값이 되는 형태다.int __cdecl main(int argc, const char **argv, const char **envp) { int result; // eax __main(); if ( argc == 2 ) { if ( (unsigned __int8)check(argv[1]) == 1 ) fwrite("Correct! :)\n", 1u, 0xCu, (FILE *)__iob[0]._ptr); else fwrite("No..
2018.09.09 -
ISITDTU CTF PWNABLE XOXOPWN
보호되어 있는 글입니다.
2018.07.30 -
defcon2015 r0pbaby writeup
보호되어 있는 글입니다.
2018.04.08 -
defcon2015 r0pbaby 풀고 알게 된 것들
느낀점 : ROP 어렵다 . 아직까지 오프셋 계산 왔다 갔다 하는게 적응이 되지 않는다. 알게 된 것 : pop rdi ; ret ; (system함수의 인자는 rdi) libc 주소를 보는 법 : pwngdb 실행 후 ctrl+c로 인터럽트 걸고, vmmap 이용해서 살펴 봄 system 함수 주소 보는 법 : pwngdb 실행 후 p system 여기서 나온 주소와 libc 주소를 이용하여 system함수의 offset값을 구할 수 있음libc base addr - system_offset = system addr 여기에서 s는 sfp, r은 ret인 것을 알게됨 libc.so.6 찾는 방법 find / -name libc.so.6 2>/dev/null rp++ 를 사용하는 방법에 대해 알게 됨 : ..
2018.04.08 -
DEPCAMP r100
Angr 공부용으로 풀어보았다. 바이너리 : 메인함수이다.패스워드를 입력하고 옳고 그름을 판단하는 전형적인 문제다. 심플해보이지만, 계산하기 귀찮게 되어 있는 연산이다. 이 연산을 한방에 해결하는 녀석이 angr라고 한다. 진심으로 오늘 처음 사용하고 충격받았다.import angr def main():p = angr.Project("r100", load_options={'auto_load_libs': False}) // 실행시킬 바이너리 명 # 내가 찾는 주소가 0x400844 (Nice!)# 피하려는 주소가 0x400855 (Incorrect Password!)ex = p.surveyors.Explorer(find=(0x400844, ), avoid=(0x400855,))ex.run() // 실행re..
2018.04.02