본문 바로가기

2. Reversing (리버싱)

(75)
[2024.11.16]리버씽씽이_6주차 활동 6주차에는 유튜브 리버싱 강의를 18강 ~ 20강까지 학습하였다. https://www.youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO 리버싱 강의리버싱에 대해 공부합시다.www.youtube.com 1. EAT라이브러리 파일에서 제공하는 함수를 다른 프로그램에서 가져와 사용할 수 있도록 해주는 핵심 메커니즘함수의 시작 주소 파악 가능 및 구조체가 있음EAT 내부에 저장되는 함수들의 정보는 PE 파일이 내보내는 함수의 개수와 해당 함수의 주소 뿐 → 한 개의 배열(IMAGE_EXPORT_DIRECTORY)2. IMAGE_EXPORT_DIRECTORY(EAT의 구조체)– IMAGE_OPTIONAL_HEADER에 위치NumberOfFunctions..
[2024.11.09]리버씽씽이_5주차 활동 5주차에는 유튜브 리버싱 강의를 15강~17강까지 학습하였다.  리버싱 강의리버싱에 대해 공부합시다.www.youtube.com  섹션헤더에 대해 잘 이해했다면 이제부터 PE파일이 메모리에 로딩되었을 때 각 섹션에서 메모리의 주소(RVA)와 오프셋(offset)을 잘 매핑할 수 있어야한다.이러한 매핑을 일반적으로 RVA To RAW라고 부른다.오프셋: 오차, 문자 A의 배열이 abcdef를 포함한다면 ‘c’ 문자는 A 시작점에서 2의 오프셋을 지닌다고 할 수 있음 RAW(File Offset)RVA가 속해 있는 섹션을 찾는다.공식을 이용해서 파일 오프셋(RAW)을 계산한다. RAW(File offset) - PointerToRawData(파일에서 섹션의 시작 위치) = RVA(상대주소) - VA(메모리에..
[2024.11.02]리버씽씽이_4주차 활동 4주차에는 유튜브 리버싱 강의를 12강 ~ 14강까지 학습하였다.https://www.youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO 리버싱 강의리버싱에 대해 공부합시다.www.youtube.com  IMAGE_NT_HEADERS 구조체signature은 PE 값을 가짐.(dos에서 MZ를 갖는 것처럼)  IMAGE_FILE_HEADER 구조체 (IMAGE_NT_HEADERS의 멤버)CPU 호환칩의 고유한 번호를 저장 (리틀 엔디안 방식) 4C 01 → 014C, 32bit 인텔 호환칩에서 사용함PE 파일은 코드, 데이터, 리소스 등이 각각 섹션에 나뉘어 저장NumberOfSections는 PE 파일 섹션의 개수를 알려줌 (값은 무조건 0보다 ..
[2024.10.26]리버씽씽이_3주차 활동 3주차에는 유튜브 리버싱 강의를 8강~11강까지 학습하였다.https://youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO&si=_-ulXwpWPqYW6NVt 리버싱 강의리버싱에 대해 공부합시다.www.youtube.com  1. 함수 호출 규약: 함수를 호출할 때 매개변수를 어떤식으로 정리하고 스택을 어떻게 정리할 것인지에 대한 약속    1) 용어       A. caller(호출자): 함수 호출자       B. callee(피호출자): 함수 호출 당한 자       C. cdecl          i. C언어에서 사용되는 방식으로 caller(main함수)가 스택을 정리함         ii. 오른쪽에서 왼쪽 인자 순으로 스택에 저장됨  ..
[2024.09.28] 리버씽씽이_2주차 활동 2주차에는 유튜브 리버싱 강의를 4강~7강까지 학습하였다. https://www.youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO 리버싱 강의리버싱에 대해 공부합시다.www.youtube.com   목표: IA-32 Register에 대해 배워보자      1. CPU 레지스터         : CPU 내부에 있는 저장공간            →  CPU 내부에 있기에 데이터 연산속도가 매우 빠름(용량이 매우 작음)      2. 범용 레지스터(General Register): 일반적인 레지스터         - IA-32 4byte(reg size: 4byte)      범용 레지스터(General Register)의 종류       -  EA..
[2024.09.21] 리버씽씽이_1주차 활동 1주차에는 유튜브 리버싱 강의를 1강~3강까지 학습하였다. https://youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO&si=gihRwDoT8ATLvdeZ 리버싱 강의리버싱에 대해 공부합시다.www.youtube.com    리버싱(역공학)=RE(Revese Engineering) =RCE(Reverse Code Engineering)         공학: 어떠한 물건을 만드는 것         역공학: 제품을 어떤 방식으로 만들었는지 확인하여 설계도를 제작하는 것. 공학과는 반대 방향  리버싱 분석방법1. 정적 분석       : 파일을 실행하지 않고 분석하는 방법            파일의 겉모습을 분석       - 정적 프로그램    ..
[2024.05.25] 리버씽씽카 7주차 활동 리버싱 스터디 7주차에는 CodeEngn의 Basic RCE L02와 Basic RCE L03를 풀어보고 정리한 후 어려웠던 부분을 공유하며 질문을 통해 해결하는 시간을 가졌다.https://ch.codeengn.com/ CodeEngn.com [코드엔진]코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다.ch.codeengn.com Basic RCE L02 처음에 x64dbg로 열어봤지만 잘못된 PE 파일이라고 뜬다.x32dbg로 열어봐도 마찬가지.IDA로 다시 한번 열어봤다.이것도 안 된다.문제에서 말했듯이 실행파일이 손상되어 실행이 안 되는 것을 확인했다.그래서 뭐로 열어볼까 하다 H..
[2024.05.18] 리버씽씽카 6주차 활동 이번 리버싱 스터디 6주차에는 16-17강을 듣고 내용을 정리한 후 어려웠던 부분을 공유하며 질문을 통해 해결하는 시간을 가졌다.참고한 유튜브 영상: https://www.youtube.com/playlist?list=PLY12b4RRLcSdsxgVvTW3mnNzMjVrd8JhO 리버싱 강의리버싱에 대해 공부합시다.www.youtube.comIAT: 어떤 프로그램에 어떤 라이브러리에 어떤 함수를 사용하고 있는지 기술한 테이블, 배열이다.DLL (Dynamic Linked Library. 동적 연결 라이브러리)MS-DOS 시절: 16비트 DLL 없었고 라이브러리만 있었음단점: 메모리 낭비 큼, 효율 안 좋음, 같은 작업 반복ex. printf() → stdio.h 바이너리 코드(2진수) 코드를 긁어와서 필..