본문 바로가기

전체 글

(26)
reversing.kr (Replace.exe) 이런 바이너리가 주어진다. WINAPI에 BreakPoint를 설치해보면 다음과 같이 나온다. 0040106C의 JMP를 따라가면 다음 코드가 나오는데, 00401071로 다시 점프함을 알수있다. F9으로 쭉 실행시키면 예외가 발생되는데, [eax]주소에 nop을 설치하려다 예외가 발생되어서 실행이 멈추어진것이다. 정리해보면, 00401071주소의 Jmp를 nop으로 만들어서 Correct문자열을 출력시키면 되는것이다. eax의 값를 보면 다음과 같이 나왔다. 입력은 1234였고, inc명령을 통해서 + 1이 진행되는걸 알고있다. 0을 기준으로 계산하면 어떤식으로 계산하는지 빠르게 알수있을것같다. -1을 넣어야하는데, 음수를 받지않으니 16진수로 FFFFFFFF -> 4294967295를 넣는다. +1을..
reversing.kr (Music_Player.exe) 이런 모습의 바이너리가 제공되는데, MP3 Player는 1분이상 음악을 실행하지않는다. 1분 이상으로 음악을 실행시키는게 목적이다. 59초에서, MessageBox API를 사용하여 사용자에게 더이상 못듣는다고 알려주는데 해당 API를 검색한 이후, ret을 반복시켜서 원본코드로 진입하면 다음과 같은 코드가 나온다. 분기문이 보인다. cmp eax, 0xEA60 60000 밀리세컨드만큼 비교를 진행하고있으며, jl (Jump Less)일경우에만 음악을 실행하고 있다 그렇기때문에, Jl -> Jmp로 바꾸고 실행하였지만 중간에 에러가 뜬다. 음악을 실행하는 루틴에 존재하는 모든 분기문에 BreakPoint를 설치해보았다. 그리고 F8을 반복해서, 정상적인 실행이 확인되는 부분의 BreakPoint를 제거..
reversing.kr (Easy_UnpackMe.exe) StepOver를 반복하면 OEP가 나온다. 원본 어셈블리의 모습
reversing.kr (Easy_KeygenMe.exe) Name, Serial을 입력받고, 인증을 진행하는 바이너리이다. 어셈블리를 분석한결과는 다음과 같다. 첫번째 입력에 따라서 시리얼이 바뀐다. ‘asd’를 첫번째 입력했을때, 함수내부에서 ‘asd’에 대응하는 시리얼을 만든다. 그리고 ‘asd’에 대응하는 시리얼이 입력되었는지 검증한다음 성공여부로 분기한다. ‘asd‘에 대응하는 시리얼은 715354이다. 715354를 입력했을때, Correct문자열이 나왔다. 하지만 문제에서는 Serial에 대응하는 Name을 요구하고 있다. 어셈블리를 분석해서 만들어낸 코드이다. 컴파일 후에 입력을 진행했을때, Name은 다음과 같았다.
reversing.kr (Easy_CrackMe.exe) BreackPoint를 걸어놓고, Ctrl + F2를 통해서 재실행한다음 분석을 진행한다. 정확히 인증루틴이 나온다. 인증루틴 위의 어셈블리를 분석해서 풀었다.
프로세스 탐색 API구현 NTDLL API를 사용한 kernel32 API를 카피해보았다 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 11..
윈도우리버싱 정리 /* 문서작성일: 2020-03-01 문서편집일: 2020-03-28 */ 목차 - 폰노이만의 컴퓨터 구조 - 주저장장치, 보조저장장치, 중앙 처리 장치 - 운영체제 - 실행파일의 구조 - 어셈블리 - WINAPI의 실체 - PEB의 구조 - WINAPI의 주소를 직접 구해보기 내용 ---------------------------------------------------------------------------------------------------------------- -주저장장치, 보조저장장치, 중앙 처리 장치 폰노이만의 컴퓨터 구조는, 2020년도에도 사용되는 매우 유서깊은 컴퓨터의 기본 구조를 칭하는 용어이다. 크게 3가지로 이루어진다. (non-volatile memory) 보조 저장..
윈도우 쉘코드 https://github.com/traitor0213/universal-shellcode traitor0213/universal-shellcode Contribute to traitor0213/universal-shellcode development by creating an account on GitHub. github.com #windows shellcode #universal shellcode