일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 히공
- web
- reversing
- hackingcamp
- 해킹캠프
- 리버싱
- Basic
- write-up
- 2021
- write up
- 강의
- 라이트 업
- ShaktiCTF
- 라이트업
- 리버스 엔지니어링
- 워 게임
- 드림핵
- probgame
- PYTHON
- 뭉뭉
- 풀이
- vsCode
- ctf
- 변수
- 코드엔진
- c언어
- 시탭
- 파이썬
- 라업
- reversing.kr
목록전체 글 (108)
히공
10번을 풀어보겠습니다. 이러한 문제입니다. 실행했을때 이런 화면이 나옵니다. peid로 확인해보니까 Aspack 패킹이였습니다. Aspack은 압축해제 -> 압축해제 끝 -> 프로그램 실행 이 순서입니다. pushad -> 압축해제 -> popad -> oep로 분기 방식으로 원본코드를 볼 수 있습니다. pushad 발견 pushad 실행 후 esp값 변화 확인 esp우클릭 후 덤프에서 따라기기 클릭 이러한 것이 밑에 뜹니다. 여기서 우클릭 - 중단점 - 하드웨어, 엑세스 - Dword 클릭 이제 esp가 가르키는 메모리 주소에 접근할 때 bp를 걸어두고 실행시키게 되면, 메모리 상에 복구를 마친 뒤 OEP로 분기전 상태가 되며 F9누르면 bp전까지 실행됩니다. f9로 실행하고 나서 jne구문 발견 이..
난 6월 21일날 cos pro 2급 파이썬 자격증 시험을 보러 갔다. 종로 ybm으로 갔었는데 1시간 일찍가서 기달리기 힘들었다. ㅠㅠ 시험 보러 들어가고, 컴퓨터를 키고 시험보는 셋팅을 해주시는데 이상하게 오류가 나서 고쳐주셨다. 20분을 오류땜에 날려서 20분을 추가시간으로 줬었다. 무난하게 문제를 풀었고, 합격이라는거를 바로 볼 수 있었다. 파이썬 공부는 무슨 책을 따로 사서 하지 않았고, 무슨 사이트에서 기출문제 한번 풀어보고 안했다. (예전에 3개월동안 파이썬만 했었기 때문이다.) 자신의 파이썬 실력이 궁금하면 한번 도전해보는것이 나쁘지 않다고 생각이 든다.
9번 문제를 풀어보겠습니다. 이러한 문제입니다. 자 StolenByte를 먼저 알아야 합니다. StolenByte StolenByte란 직역하면 훔친 코드 입니다. 패커가 훔친 코드의 일부분 입니다. UPX에서는 popad후 jmp전 일정 바이트를 넣습니다. 실행했을때 저런 messagebox가 나옵니다. pushad 발견 popad 후 jmp 원본 코드입니다. 뭐가 많이 비어있습니다. 어라? 이상하게 MessageBoxA를 호출하는데 push를 한번만 했습니다. docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa MessageBoxA function (winuser.h) - Win32 apps Displays a modal..
8번을 풀어보겠습니다. 이러한 문제이다. UPX패킹이 되어있다. pushad발견 popad후 oep로 가는 jmp oep : 01012475 (처음 푸는 분들은 Success가 떠야 정상입니다.) 정답 : 01012475
basic 7번 문제를 풀어보겠습니다. 이러한 문제이다. 실행시켰을때 문자열을 가지고 찾아보자 GetDlgItemTextA를 호출하는 부분에 브포를 걸고 입력값을 받아와보자. 이런식으로 12345를 입력해보았다. GetVolumeInformationA를 실행하고 보니까 push했던 주소중 0x40225C에 로컬 디스크가 들어가는 것을 볼 수 있다. docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getvolumeinformationa GetVolumeInformationA function (fileapi.h) - Win32 apps Retrieves information about the file system and volume associa..
SSTF의 CRACKME101 문제를 풀어보겠습니다. ida로 본 메인함수 rbp-78이 Dtd>=mhpNCqz?N!j(Z?B644[.$~96b6zjS*2t& rbp-70이 scanf로 페스워드를 입력받는것 rbp-70(입력한 페스워드값)을 인자로 넣는것을 볼 수 있다. 똑같은 인자를 두번 전달함 (인자의 주소를 전달함) rbp-18이 받아온 인자값이다. rbp-20도 받아온 인자이다. rbp-8부분에 u7fl(3JC=UkJGEhPk{q`/X5UzTI.t&A]2[rPM9 이거를 넣는거를 볼 수 있다. 페스워드값으로 strlen을 쓰는것을 볼 수 있다. (call sub_10b0 이 strlen이다.) strlen의 리턴값만큼 for문을 돌리는 것을 볼 수 있다. 그리고 rbp-20[i] = rbp-8[i..
오늘은 코드엔진 basic 6번 문제를 풀어보겠습니다. 이러한 문제입니다. 실행시켰을때 입니다. UPX로 패킹이 되어있습니다. pushad 발견 popad 후 jmp 원본코드 그러면 OEP는 00401360 입니다. 문자열 찾기로 틀렸을때 나오는 Wrong serial!!! 로 이동해봅시다. 0040107D가 분기점입니다. 브포 걸고 실행한 다음에 12345 입력 후 Check Serial 클릭 401290을 호출한다. 그리고 내가 입력한 Serial이랑 AD56DFS547을 push한다. 반환값이 1이다. 일단 strcmp라고 추측해볼 수 있다. 다시 실행해서 AD46DFS547를 입력해보니 반환값이 0이다. 이제 f9로 실행을 하면 잘 동작한다. 그러면 Serial은 : AD46DFS547 OEP :..