일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Best of the Best
- 사회분업론
- 디지털 포렌식 트랙
- 리버싱
- CodeEngn Basic 01
- 코드엔진 베이직
- 에밀 뒤르켐
- 철학
- BoB 12기 최종합격 후기
- BoB 12기
- 논문리뷰
- bob
- malware
- CodeEngn Basic 5
- 사회적 사실
- 코드엔진 basic 5
- 코드엔진
- codeengn basic rce 01
- h4ckinggame
- 자살론
- CodeEngn
- Today
- Total
목록전체 글 (167)
SEO
정확히 어떤 암호로 암호화 되었는지는 모르지만 빈도수 분석 공격을 통해 복호화가 가능하다. https://quipqiup.com/ quipqiup - cryptoquip and cryptogram solver quipqiup.com위 사이트를 이용해 빈도수 분석 후 평문을 얻었다. key 값은 kimyuna였다.
이진수로 되어있기 때문에 텍스트로 변환해주겠다.https://www.rapidtables.org/ko/convert/number/binary-to-ascii.html 바이너리에서 텍스트로 변환기 | 바이너리 번역기바이너리-텍스트 번역기 접두사 / 접미사 / 구분 기호와 함께 이진수를 입력하고 변환 버튼을 누릅니다 (예 : 01000101 01111000 01100001 01101101 01110000 01101100 01100101) : 이진 변환기 텍스트 ► ASCII 텍스트www.rapidtables.org해당 사이트에서 변환을 진행하였다.다음과 같은 결과가 나왔고, 처음엔 시저암호라고 추측을 했다.하지만 시저암호는 정답이 될 만한 문자열이 나오지 않았고, 치환암호 사이트에 돌려보았다.http://q..
포렌식으로 분류된 문제지만 사실상 암호학 문제이다. 먼저 해당 숫자들이 모두 십진수이다. 이 상태에서는 어떠한 암호가 사용되었는지 알 수 없기 때문에 아스키 문자로 변환하였다. (문제를 풀 때는 변환 사이트를 사용했지만, 풀이를 적을 때는 공부를 위해 파이썬 코드를 작성하겠다.) 아스키 변환 코드는 다음과 같다.ten = [86, 71, 57, 107, 89, 88, 107, 103, 97, 88, 77, 103, 89, 83, 66, 110, 98, 50, 57, 107, 73, 71, 82, 104, 101, 83, 52, 103, 86, 71, 104, 108, 73, 69, 70, 49, 100, 71, 104, 76, 90, 88, 107, 103, 97, 88, 77, 103, 86, 109,..
RegisterKEY를 찾는 문제이다. EAX 레지스터에 사용자가 입력한 값과 EDX 레지스터에 하드코딩 된 값이 저장되어있고 다음 명령어가 JNZ 인 것으로 보아 해당 함수의 내부 동작은 두 값을 비교한 후 같으면 성공 문자열 부분으로 점프하고 다르면 실패 문자열 부분으로 점프한다는 것을 추측할 수 있다. 실제로 확인해보면,두 값을 비교하고 반환값에 따라 점프 여부가 달라진다. 해당 문제에 serial은 2VB6H1XS0F 였고, 이 값을 exe 파일에 입력하면,Authkey 값이 나온다.
[suninatas rev 9]정답을 축하하는 메시지 박스 발견해당 주소로 이동 123을 사용자 입력값으로 입력 하드코딩 된 serial과 사용자의 입력값을 비교하는 함수로 추정된다.함수 안으로 들어가보겠다. 사용자 입력값과 913465를 비교하는 것을 확인할 수 있다. serial 을 확인했다.
serial을 알아내는 문제로 추정된다. ollydbg로 해당 파일이 열리지 않아 x64dbg로 열어보았다.하지만 OK, QUIT 문자열이나 호출되는 messagebox 주소를 확인할 수 없었고, 한줄씩 실행시켜 분석하는 것도 무의미했다. exeinfo PE로 해당 파일을 열어본 결과,C#/.NET 으로 프로그래밍 된 파일이라는 것을 확인할 수 있었다.(C#이나 .NET으로 프로그래밍 된 파일은 ollydbg로 열리지 않는다.)이러한 경우에는 C#/.NET 전용 디컴파일러를 사용하는 것이 좋다.디컴파일러는 어셈블리 수준의 리버싱 공부를 하기 적합하지 않은 것 같아 최대한 x64dbg를 이용해 풀려고 했지만 힌트를 찾기 어려워 툴을 사용한다. dotpeek 이라는 디컴파일러에 위 실행파일을 넣으면 다음과 ..
보호되어 있는 글입니다.
RCE L04 문제 RCE L04 문제풀이 Entry point 관련 정보를 찾을 수 없다. 패킹 된 것으로 추측된다. push 0으로 스택을 초기화하는 것으로 보아 해당 주소가 Original Entry point 이다. 패킹이 되어있어 어딘가에 BP를 걸어도 초기화되고 프로그램이 끝까지 실행된다. API를 찾는 방식으로 문제풀이를 진행하겠다. Ollydbg 시작 지점에서 한줄씩 실행시키면 해당 프로그램에서 사용하는 API가 담긴 주소 목록을 확인할 수 있다. lstrcmp 함수는 두개의 문자열을 비교할 때 사용하는 함수로 사용자가 입력한 serial과 하드코딩된 serial 값을 비교할 때 자주 사용되는 API이다. GetModuleHandleA API로 사용자가 입력한 Serial을 받아와서 lst..