[dreamhack] rev-basic-0
·
reversing
리버싱 기본 중 기본 문제를 풀어보았다.  IDA로 분석해보았다.맥은 F5로 디컴파일 할 수 없으니 TAB키로 디컴파일한다.  main 함수를 보니 sub_14001190은 문자열을 받고 있으므로 scanf이다.if 조건문에서 sub_140001000을 통해 문자열을 비교하고 맞으면 correct 틀리면 wrong을 출력한다. sub_140001000을 클릭해봤다. strcmp() 함수는 string을 비교하는 함수이다.a1이라는 문자열을 Compare~과 비교해 0과 1을 리턴한다. Compar3~ 가 FLAG가 된다
webhacking.kr / old-1
·
W3B H4CK1NG
코드에 따르면 쿠키 값이 3보다는 크되 4 이상이면 안 됨내가 좋아하는 숫자인 3.14를 넣어보도록 하겠음 ㅎㅎ~ 풀렸습니다 ^_^
I.Sly() CAMP Reversing Write-up
·
동아리_I.Sly()
보호되어 있는 글입니다.
RVA TO RAW, IAT
·
reversing
RVA TO RAWPE 파일이 메모리에 로딩되었을 때 각 섹션에서 메모리의 주소(RVA)와 오프셋을 잘 매핑해야 한다. 이러한 매핑을 RVA TO RAW라고 부른다RAW(File Offset)매핑 방식RVA가 속해있는 섹션 찾기공식을 이용하여 파일 오프셋을 계산공식RAW - PointerToRawData(파일에서의 섹션 시작 위치) = RVA - VA(메모리에서 섹션 시작 위치)RAW = RVA - VA + PointerToRawData 예제 #1 RVA = 3000일 때, RAW는 얼마인가?RVA는 400보다 크고 53200보다 작으므로 Section(text)에 있다PointerToRawData: 00000400VA: 01001000RAW = RVA - VA + PointerToRawData→ 300..
NT header, Section header
·
reversing
NT headerIMAGE_NT_HEADERS 구조체signature은 PE값을 가짐. (dos에서 MZ를 갖는 것처럼)IMAGE_FILE_HEADER //FileHeader WORD machine;CPU 호환칩의 고유한 번호를 저장WORD NumberOfSections;PE파일은 코드, 데이터, 리소스 등이 각각 섹션에 나뉘어 저장되는데, 섹션 개수를 알려주는 것. 이 값은 무조건 0보다 커야 한다. 실제 개수와 섹션의 개수가 다르다면 실행이 되지 않는다.WORD SizeOfOpticalHeader;IMAGE_OPTIONAL_HEADER32의 크기를 알려줌. 운영체제 때문에 명시하는 것.WORD Characteristics;파일 속성을 나타내는 값. 파일 속성이란, 실행 가능한 형태인지 DLL 파일인지..
함수 호출 규약, PE file
·
reversing
함수 호출 규약 calling convention함수를 호출할 때 매개변수(파라미터)를 어떤 식으로 전달하는가? 에 대한 일종의 약속caller: 함수를 호출한 코드callee: 함수 호출 당한 코드함수 호출 규약을 크게 3가지로 분류cdeclC언어에서 사용하는 방식. caller는 매개변수를 오른쪽에서 왼쪽으로 스택에 push. Caller가 함수 호출 후 스택 정리.stdcallcaller는 매개변수를 오른쪽에서 왼쪽으로 스택에 push. Callee가 스택을 정리. Window32 API에서 사용됨.fastcallcaller는 처음 몇 개의 매개변수는 레지스터에 저장해서 함수에 저장하고 나머지 매개변수는 오른쪽에서 왼쪽 순서로 스택에 저장하여 전달. callee가 스택 정리. x64매개변수 4개이고..