Dreamhack/Dreamhack Wargame (Challenge) 179

[112] IT 비전공자 [dreamhack][CodeEngn] Malware L06문제 풀기

Thread Mutex란?Thread Mutex(Mutual Exclusion, 상호 배제)는 멀티스레드 프로그래밍에서 공유 자원의 동시 접근 문제를 해결하기 위한 동기화 메커니즘입니다.왜 Mutex가 필요한가?멀티스레드 환경에서는 여러 스레드가 동시에 실행되며, 공유 자원(예: 메모리, 파일, 데이터베이스 등)에 접근하는 경우 데이터가 손상될 수 있습니다. 이를 **Race Condition(경쟁 상태)**라고 합니다.Mutex는 공유 자원에 대한 접근을 하나의 스레드로 제한하여 이러한 문제를 방지합니다.Mutex의 작동 방식잠금(Lock):스레드가 공유 자원에 접근하기 전에 Mutex를 잠급니다.다른 스레드들은 Mutex가 해제될 때까지 대기해야 합니다.해제(Unlock):작업이 완료되면 Mutex를..

[111] IT 비전공자 [dreamhack]Easy Assembly문제 풀기

이 어셈블리 코드는 비밀번호 검증 루틴(check_password)을 나타내며, 두 개의 문자열(혹은 데이터 배열)을 비교하여 특정 조건을 만족하는지 확인하는 로직입니다. 아래에서 명령어 별로 분석하고 이 코드가 하는 작업을 설명하겠습니다.코드 분석초기 상태esi: 입력된 데이터(비밀번호)의 시작 주소.edi: 기준 데이터(예: 올바른 비밀번호)의 시작 주소.eax: 비교할 데이터의 길이.ecx: 결과를 저장하는 레지스터 (모든 연산의 결과를 통합).코드 명령어 해석xor edx, edxedx 레지스터를 0으로 초기화.목적: 이후 연산에 사용할 준비.mov dl, [esi]**esi**가 가리키는 입력 데이터의 바이트를 **dl**로 복사.**esi**는 입력 데이터의 현재 위치를 나타냄.xor dl, ..

[109] IT 비전공자 [dreamhack]mmapped문제 풀기

mmap은 메모리 매핑(Memory Mapping)을 수행하는 시스템 호출로, 파일이나 디바이스의 내용을 가상 메모리에 매핑하여 접근할 수 있도록 해주는 강력한 기능입니다. 이를 통해 파일 데이터를 메모리처럼 사용할 수 있습니다.mmap의 기본 개념메모리 매핑:디스크 파일의 내용을 가상 메모리 공간에 직접 매핑.파일 데이터를 읽거나 쓸 때 별도의 I/O 작업 없이 메모리를 통해 바로 접근 가능.효율성:파일 데이터를 메모리에 로드하고, 메모리 내에서 처리할 수 있으므로 속도가 빠름.대규모 파일 처리 시 유용.mmap의 동작 원리파일을 열고 메모리에 매핑:mmap 호출을 통해, 지정된 파일 디스크립터가 가상 메모리 주소로 매핑됨.이후 이 메모리 주소를 사용하여 파일 내용을 읽거나 변경 가능.페이지 단위 작업..

[108] IT 비전공자 [dreamhack]darimchal_001문제 풀기

소스코드다#include #include #include #define JOKER "\x40\x53\x06\x03\x43\x52\x54\x3b"#define KEY "023661dd4\0"#define TRUE 1#define FALSE 0#define OK 0#define ERRO -1void __print_sw_title (char *sw_name);int __is_valid_pwd (char *pwd);char *__obfuscation (char *pwd, char *key);void __create_tag (char *id);int main (int argc, char *argv[]) { if (argc != 2) { __print_sw_title(argv[0]); ret..