본문 바로가기

리버싱 기초를 위한 어셈블리어 오른쪽에 첨부된 pdf파일은 초보자들을 위한 어셈블리어 기초라는 pdf파일입니다. 저또한 이 pdf를 통해 어셈블리어를 공부했고요. 저같은 경우는 segment와 레지스터부터 막혔습니다. 하지만 저는 워낙 책이나 문서를 보는 스타일이 모르는 부분은 넘어가고 전체를 먼저 본다음에 다시 한번 보고 계속 보는 스타일이라서 그냥 글씨가 있다는 것만 보고나서 어셈블리어 명령어를 공부했습니다. 여기 문서에 적혀있는 명령어들과 jmp구문들 정도가 있으면 리버싱을 할 때 흐름을 보진 못해도 각각 명령이 어떤 명령인지 정도는 파악을 할 수 있습니다. 그리고 나서 레지스터,메모리,세그먼트,스택 등에 대해서 공부하면서 프로그램이 어떻게 작동하는지 작동원리를 배우고 나면 안티 디버깅이나 안티 리버싱기술이 없는 프로그램을 분석.. 더보기
리버싱 관련 분석 자료 제가 현재 리버스코드엔지니어링 포스팅의 분석자료로 사용하는 프로그램들은 모두 리버스엔지니어링으로 유명한 코드엔진블로그에 올라와 있는 Basic RCE의 자료들입니다. 코드엔진 블로그 주소 : http://codeengn.com/ 코드엔진에 들어가서 Challenge 부분에서 Basic RCE에서 1단계 문제를 보고 Start의 Continue 부분에 문제의 답을 쓰면 다음 문제가 나오는 형식입니다. 원래는 리버싱 포스팅에 DLL인젝션에 대한 부분을 쓰고싶었으나 아직 공부가 덜 된 관계로 .... 고2 여름방학때 쯤부터 Basic RCE를 모두 끝내고 DLL인젝션을 쓸 수 있을 것 같네요. 그럼 모두 리버싱을 잘 하시길 바라겠습니다!! 더보기
CodeEngn Basic RCE L01 문제 풀이 일단 프로그램을 무작정 뜯어보기 전에 프로그램에 대한 설명을 보겠습니다. Korea : 로 써있는 부분에 "HDD(하드디스크)를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가" 라고 써있는데요. 이 GetDriveTypeA라는 함수가 어떤 함수인지 알아보겠습니다. -출처 MSDN 이 함수의 리턴 값에 대한 것인데요 이 프로그램이 실행된 드라이브를 리턴값으로 하는데요 그 값들로는 각각 드라이브를 찾을수 없음(0), 최상위경로가 없음(1), 이동식디스크(2), 고정디스크(3), 네트워크드라이브(4), cd롬(5),램디스크(6) 으로 되있는 데요, 우리가 찾는 HDD와 CD롬은 각각 3과 5에 있습니다. 그냥 문제만 풀거라면 CD롬을 가리키는 □번을 정답으로 쓰면.. 더보기