목록전체 글 (77)
Jiyong's STUDY

id와 pw가 보이고 뭔가 수상한 쿠키 외에는 아무 것도 없음 뭔가 쿠키를 조작하여 id와 pw를 바꿔야 할 것만 같음... 하드코딩 된 id와 pw가 보임 base64 인코딩을 20번 진행함 1~8까지의 숫자를 특수문자로 치환을 한다... 왜? 복호화를 하기 전에 치환을 한 값을 다시 돌려 놓는데, 어차피 base64에는 특수문자가 존재하지 않아서 아무 의미가 없어 보이는데 코드를 보지 않고 쿠키를 해독하는 것을 방지하려는 것으로 추측됨... id 복호화는 cookie값으로 한다는 것을 알 수 있는 부분이 존재함 앞서 말했듯이 문제 풀이에는 쓸모가 없는 문자열 치환이 보임 마찬가지로 위와 반대로 연산하는 과정 다음으로 보이는 부분에서는 클리어 조건의 id와 pw가 보임 크롬 console 내부 함수인 ..

Rainbow table을 이용하는 문제 rainbow table은 hash 함수를 사용해서 가능한 모든 hash value를 저장시킨 표 brute force를 할 때 속도를 단축시키기 위해 사용하곤 한다고 함 ???? 시간 많은 사람만 풀면 되겠다.

Machine은 어떤 CPU에서 이 파일이 실행될 수 있는지를 알려주는 역할을 한다. NumberOfSections는 섹션이 몇 개 있는지 알려주는 역할을 함. .text나 .rdata, .data와 같은 섹션을 말함. 보통 VS에서 MFC를 컴파일하면 .text, .rdata, .data, .rsrc로 4개의 섹션이 있고 NumberOfSection의 값도 4다. 어떠한 이유로 섹션의 수가 증가한다면 이 값도 증가한다. TimeDateStamp는 이 파일을 빌드한 날짜가 표시된다. obj 파일이 컴파일러를 통해 exe로 생성한 시간을 말한다. 델파이로 만든 파일은 이 값을 정상적으로 기록하지 않으므로 이 필드를 통해 빌드 시간을 확인할 수 없다. 이 필드는 4바이트를 차지하므로 0xA134F467와 같..

Signature은 "PE\0\0"를 표시하는 4바이트 값. 50 45 00 00이 된다. 그저 PE 파일임을 표시하는 용도 말고는 딱히 사용할 일이 없다. 하지만 요즘의 운영체제에서는 이 부분에 50450000이 아닌 다른 값이 들어오면 실행시키지 않는다. PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((DWORD) pDosHeader + pDosHdr->e_lfanew); if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) { printf("This is not PE format.\n); } 위와 같은 코드에서 이용된다. PE 파일이 맞는지 확인하는 코드이다.

IMAGE_DOS_HEADER에서 e_magic 필드는 현재 파일이 PE 파일인지 체크하는 역할만 한다. e_magic==5A4D(IMAGE_DOS_SIGNATURE)이라면 PE 파일이 맞다. IMAGE_DOS_SIGNATURE은 PE 파일의 가장 첫 번째 값이다. PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)lpFileBase; if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) { printf("It's not PE File format.\n"); } 위와 같이 e_magic과 IMAGE_DOS_SIGNATURE을 비교하여 같은 지 확인할 때만 사용한다. 0x5A4D (메모리에선 4D 5A로, 리틀엔디언) e_lfanew는..