일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BoB 12기 최종합격 후기
- 정보기
- cve-2024-6387
- 디포전
- 프로그래머스
- Best of the Best
- cve-2022-26923
- BoB 12기
- Active Directory
- CodeEngn
- 필기
- DLL 사이드로딩
- race condition
- 세마포어
- 정보보안기사
- 디포전 2급
- malware
- 뮤텍스
- h4ckinggame
- bob
- 논문리뷰
- dll side-loading
- 코드엔진
- 디지털 포렌식 트랙
- 디지털 포렌식 전문가 2급
- 리버싱
- Today
- Total
목록Wargame/codeengn (12)
SEO

RCE L04 문제 RCE L04 문제풀이 Entry point 관련 정보를 찾을 수 없다. 패킹 된 것으로 추측된다. push 0으로 스택을 초기화하는 것으로 보아 해당 주소가 Original Entry point 이다. 패킹이 되어있어 어딘가에 BP를 걸어도 초기화되고 프로그램이 끝까지 실행된다. API를 찾는 방식으로 문제풀이를 진행하겠다. Ollydbg 시작 지점에서 한줄씩 실행시키면 해당 프로그램에서 사용하는 API가 담긴 주소 목록을 확인할 수 있다. lstrcmp 함수는 두개의 문자열을 비교할 때 사용하는 함수로 사용자가 입력한 serial과 하드코딩된 serial 값을 비교할 때 자주 사용되는 API이다. GetModuleHandleA API로 사용자가 입력한 Serial을 받아와서 lst..

RCE L03 문제 RCE L03 문제 풀이 GetDlgItemTextA 함수 dialog box에서 제어와 관련된 제목이나 텍스트를 검색한다. UINT GetDlgItemTextA( [in] HWND hDlg, [in] int nIDDlgItem, [out] LPSTR lpString, [in] int cchMax ); 함수가 성공하면 반환 값은 종료 null 문자를 포함하지 않고 버퍼에 복사된 문자 수를 지정한다. 함수가 실패하면 반환 값은 0이다. 메모리를 확인하면 keygen 에 관한 내용이 나오는 것을 확인할 수 있다. (문자열 검색에서도 확인 가능하다.) 함수의 매개변수에 적혀있는 버퍼의 주소로 들어가면, 필자가 입력한 시리얼 값을 불러온 것을 확인할 수 있었다. wsprintfA 함수를 실행..

CodeEngn Advance RCE L02 CodeEngn Advance RCE L02 문제풀이 OllyDBG에 RCE L02 파일을 올리자마자 실행이 된다. IS와 EAX 레지스터에 값이 들어있지 않는 것으로 보아 이 중 하나의 값이 플래그일 것으로 예상했다. 또한 두번의 반복을 수행하고 해당 주소에서 비정상적으로 프로그램 작동이 중지된다. (이때까지는 '정답'이 잘못실행된 함수를 제대로 실행시키는 것인줄 알았다.)

CodeEngn Advance RCE L01 문제 CodeEngn Advance RCE L01 문제풀이 UPX로 패킹되었다는 것을 알 수 있다. 언패킹 후 Ollydbg에 올려 분석해보겠다. 이러한 경고창은 안티디버깅 기술이 exe 파일에 포함되어있을 경우 실행된다고 한다. 안티디버깅 기술을 우회하기 위해 해당 주소에서 부르는 함수 안으로 들어가보겠다. IsDebuggerPresent() 함수는 안티디버깅 함수이다. https://learn.microsoft.com/en-us/windows/win32/api/debugapi/nf-debugapi-isdebuggerpresent IsDebuggerPresent function (debugapi.h) - Win32 apps Determines whether ..

CodeEngn Basic RCE L07 문제 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 오른쪽 마우스 -> Search for -> All referenced text strings 오류 메세지를 출력해내는 곳을 찾아 이동하기 오류메세지를 출력하는, 메세지 함수를 호출하는 서브루틴 함수의 시작 주소에 BP를 걸고 실행시킨다. GetVolumeInformationA 함수는 지정된 루트 디렉터리와 연결된 파일 시스템 및 볼륨에 대한 정보를 검색하는 역할을 한다. 따라서 이 함수가 필자의 컴퓨터 C 드라이브 이름을 가져온다고 추측할 수 있다. (필자의 풀이 방식은 마이크로소프트 독스에서 함수를 찾아보며 풀이한다. 함수에 대한 더 자세한 ..

기록용 3줄 TMI 9번 풀이는 어제,엊그제 2일동안 거의 5시간 동안 작성하고 푼 문제였고(내가 다른 블로그 풀이를 이해하는데도 오래 걸렸고 ollydump를 다운받을 때도 많이 힘들었다.) 시간이 부족해서 밥도 안먹고 작성했던 풀이인데 진짜.. 아까 글 수정하려다 실수로 삭제를 눌러서 현재 2번째 풀고 쓰고 있다. StolenByte를 구하시오 Ex) 75156A0068352040 StolenByte 란? 프로그램의 어떤 부분의 코드를 다른 부분으로 옮긴 코드이다. 조금 더 쉽게 말하면 옮겨지는 코드들은 대부분 OEP 위에 코드들이 JMP 구문으로 OEP에 도달하기 전 코드들이다. 주로 패킹과 동시에 이루어지는 것 같다. (왜 이렇게 인터넷에 정확한 정보가 없는지... 빨리 영어 열심히 공부해서 외국..

기록용 3줄 TMI 요새 리버싱 공부에 대한 김칫국을 좀 마셨는데 거기에 대한 TMI를 적어볼까한다. 어느덧 리버싱 입문 책이 반정도 남았다. 다음 책은 무엇으로 공부할지, 포너블을 공부할지, 네트워크를 공부할지 등등 고민을 엄청 했는데 리버싱을 조금 더 깊게 공부해보려고 한다. 비주얼베이직에서 스트링 비교함수 이름은? 03.exe 파일을 열면 아마 대부분 에러가 뜰 것이다. System Error에 관한 내용인데 아마 MSVBVM50.DLL 파일이 없어서 뜨는 것일 거다. 이제 MSVBVM50.DLL 이 파일을 다운 받아주기만 하면 끝인데 난 엄청나게 오래걸렸다...기존에는 마이크로소프트 회사에서 오픈소스로 제공하던 파일인 것 같은데 주소를 옮긴건지, 더 이상 제공을 안하는 건지 내가 들어간 주소에는 ..

기록용 3줄 TMI 오늘 해킹 동아리에서 중간 세미나를 진행했다. 우리 리버싱팀 외에도 웹, 포너블, CTF, 취약점 분석, 악성코드 분석, 안드로이드 앱 모의 해킹 이렇게 현재 진행 정도와 개념에 대해 들었다. 요새 모의 해킹, 취약점 분석 등에 관심이 많던 중 세미나를 들으니 더 설레였다. 사실 다른 팀들 개념은 내 머리가 안따라줘서 이해는 잘 못했는데 빨리 방학 때 다른 해킹 분야도 공부해보고 싶다는 생각이 들었다. 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 올리디버거에서 분석하기 전 프로그램을 먼저 실행시켜보겠다. 현재 디버거를 키지 않은 상태이므로 정상이라는 단어가 출력된다는 것을 알 수 있다. 이 단어를 출력시키는 함수가 디버거를 탐지..