본문 바로가기

전체 글

(167)
ELF - Random Crackme 우선 이번 문제는 상당히 쉽지만 내가 눈이 안좋아서 못푼거같다이 문제를 보면 저기 Good문자열까지 수정해가면서 가면될거같다근데? 디버깅이 안된다? 음... 파일을 보니 ar 아키텍처라고... 뭔지 모르겠다 이런건 처음봤다 ㅂㄷㅂㄷ거리면서 디버깅안하고 풀어볼려고 난리쳐보고 코딩했었는데실패!! 바보같이 멍때리고있었는데눈이 엄청 안좋다는걸 알 수 있었다. 하.. ㅂㄷㅂㄷ아무튼 저거 뒤로 다 지우면 정상적으로 디버깅이된다... 그래서 실행해보면 플래그가 나온다처음엔 저값을 password에 입력했을 때 안되서 플래그가 아닌줄 _VQLG1160_VTEPI_AVTG_3093_
ELF - Anti-debug 파일 실행 ㄱㄱ음 이번에도 패스워드를 찾아야한다 IDA로 열어보자~ 충격이였다 함수가 이게 끝이다 ㄷㄷㄷ우선 Start를 헥스레이로 보면 그냥 디버깅 못하게 하고 싶은가보다.. 다음 함수인 sub_80480E2를 보자result에서 값을 받아와서 XOR하고 result에 다시 저장한다 그럼이제 디버깅 ㄱ처음부분에 브포를 걸어준다(안티디버깅을 우회해야하기 때문) 이렇게 어셈을 바꿀 수 있는데 그냥 바로 sub_80480E2로 넘어가자 이렇게 수정하고 F8을 누른 후 헥스레이로 보면 잘 도착한 것을 볼 수 있다 result의 값은 이렇다 근데 처음부터 든 생각이였지만 저기 위에있는Enter the password: 이문자열과 성공 실패 문자열이 보이지 않는다그 문자열은루프를 다 돌아서 저장된 result의 ..
ELF - ExploitMe 지난번 문제랑 소스가 비슷한거 같다 그래서 저부분에 브포를 걸고 실행 이거랑 같아야하는데 저거는 입력이 안됨 아무튼 잘 맞게 분기해서 asm_을 실행한다 자 여기를 잘 보면 저기 &s부분이 플래그일 것이다 이렇게 내리다 보면 분기가 있는데 그냥 뭐 풀리는듯 이게 플래그였다 소름 저게 답일줄은 생각도 못했는데25260060504_VE_T25_*t*_
ELF - CrackPass IDA로 열어보면이렇게 문자열을 체크하는 부분이 나온다 s1이 뭔지 알면 될거같은데이 함수를 호출하는 부분을 찾아보자xrefs를 통해 보면 맨 밑에 함수를 호출한다 지난번 문제처럼 위에 ptrace로 디버깅을 탐지하는데그 위에 브레이크 포인트를 걸고 실행해보자 인자로 AAAA를 주고 실행했다Don't use a debuger !쪽으로 분기를하게되는데 ZF 플래그를 수정해 넘기면된다 그리고 실행해보면 아까 문자열을 비교하던 부분이 나온다s2에 내가 입력한 AAAA가 보이는 것을 알 수 있다 그럼 s1과 비교하는데 ebx를 덤프창에서 보면 저렇게 나온다 근데 분기를 보면 ebx 값을 고대로 넣고 출력하기 때문에ff07031d6fb052490149f44b1d5e94f1592b6bac93c06ca9이 와같은 값..
PE - SEHVEH 우선 열어보자~!저 함수를 분석해보면된다~ 실행하고 6자리를 입력해봤다 대부분 ECX 레지스터 문자열 길이와 관련이 있다그만큼 반복하기 때문에근데 6자리를 입력했는데 9가 나온다 그리고 cl에 F0을 더해서FF와 비교한다그럼 계산을 해봤을 때문자열의 길이가 12자리라는것을 알 수 있다6자리를 입력했는데 9가 나온걸 보면3+되었다그럼 F가 15이니깐 12자리를 입력해야한다12자리를 입력하면 je ch17.11614AD를 만족해서 점프를 뛴다 그리고 조금 내리면 이렇게 4자리씩 찾을 수 있다내가 입력한 앞에 4자리와 EDX를 XOR해서 비교한다그럼 반대로 3628552E와 5A643059를 XOR하면 된다0x6c4c6577 이렇게 나오는데 이렇게 나온다그럼 리틀엔디안으로 weLl이렇게 4글자를 찾았다 다음으..
ELF - No software breakpoints 너무 어려운거같아서 이번에도 angr를 사용해 풀었다이문제는 원래 ROR를 해서 비트를 뒤집는데 이건 코딩으로 풀어야한다
PYC - ByteCode 파이썬 pyc파일을 주는데 구글에 검색해보면 easycompiler가 있다이걸 사용하면 .dic로 디컴해준다 이제 소스를 읽으면 끝인데이렇게 한글자씩 맞춰갔다 총 몇번을 실행했는지 참
ELF - ARM basic 이번문제는 arm인데 arm환경이 없어서 직접 디버깅을 하지 못했다그래서 angr이라는 바이너리 분석 프레임워크를 사용해보록하겠다값을 디버깅해서 확인할 수가 없다이렇게 분기가있는데이렇게 코딩을 한다0x8634를 EIP로 맞추는데 0x8644는 피해가도록 설정한것이다위에 6*8은 8은 모르겠지만 6은 6글자를 의미한다