본문 바로가기
728x90
반응형

IT/DreamHack4

[DreamHack] Reversing Basic Challenge #0, #1, #2, #3 (#14, #15, #16, #17) / 어셈블리어 / 악성코드 분석 방법 [동아리] 팀프로젝트 과제 #1[어셈블리어 (Assembly Language)]1. 기계어와 어셈블리어CPU는 어떠한 프로세서에 명령을 내리기 위해서 고유의 명령어 세트들을 가지고 있다.이 명령어 세트를 기계어라고 하는데 숫자들의 규칙 조합이기 때문에 이대로 그냥 사용하기에는 어려움이 많다.때문에 이를 쉬운 기호 코드로 나타낸 것이 어셈블리어이다. 어셈블리어는 저급 언어에 속하는 기계어보다 위의 단계의 프로그래밍 언어이다.통일되어 있는 규격이 없어 컴퓨터 구조와 어셈블러에 따라 문법이나 표현 등이 다르다.본 글은 Intel 문법과 64비트 운영 체제를 기준으로 설명한다. 어셈블리어는 기계어와 일대일대응이기 때문에 어셈블리어를 공부하면 컴퓨터 시스템과 메모리 구조 등에 대해서 더 깊게 이해할 수 있다.반대.. 2024. 4. 4.
[Dreamhack] ROT128 #852 #!/usr/bin/env python3 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] with open('flag.png', 'rb') as f: plain_s = f.read() plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] enc_list = list(range(len(plain_list))) for i in range(len(plain_list)): enc_list[i] = hex_list[(hex_list.index(plain_list[i]) + 128) % 256] enc_list = ''.join(enc_list) with open('encfile', 'w', enc.. 2024. 4. 3.
[DreamHack] addition-quiz #1114 랜덤한 2개의 숫자를 더한 결과가 입력 값과 일치하는지 확인하는 과정을 50번 반복하는 프로그램입니다. 모두 일치하면 flag 파일에 있는 플래그를 출력합니다. 알맞은 값을 입력하여 플래그를 획득하세요. 힌트로 pwntools를 줬다. 파이썬 모듈인데 확실히 파이썬은 신이다. 50번 덧셈을 1초 안에 해야하는데 이건 아인슈타인이 와도 못 할 것이다.. 무조건 프로그램을 만들어서 쓰라는 것 같다. int main(void) { int fd; char *flag; initialize(); srand(time(NULL)); flag = (char *)malloc(FLAG_SIZE); fd = open("./flag", O_RDONLY); read(fd, flag, FLAG_SIZE); close(fd); in.. 2024. 3. 30.
[DreamHack] Path Finder #702 처음으로 써보는 워게임 풀이이다. 시작한지 얼마 안 됐는데 시스템 해킹 너무 어렵다ㅜㅜ 이것저것 찾아보면서 하고 있긴 한데 이번 문제는 자료 찾아가면서 혼자서 풀어내서 그냥 기록용이나 공부용으로 풀이를 남겨보기로 했다. 물론 질문글들의 도움을 받긴 했다.. 아직 힌트 없이 혼자 뚫어내기에는 지식도 없고 쉽지 않다. int __fastcall main(int argc, const char **argv, const char **envp) { setresgid(0x3E9u, 0x3E9u, 0x3E9u); system("clear"); puts("Tada~!"); return 0; } 문제에서 준 chal 파일을 IDA에 돌려봤다. setresgid() 함수에 관한 정보를 좀 찾아봤는데 생각한 만큼 그리 많이 .. 2024. 3. 30.
728x90
반응형