전체 글

전체 글

    CodeEngn Malware06 풀이

    6번문제입니다. 악성코드의 Flow(디버거에서 볼 수 있는 graph) 의 일부분을 보고 이 프로그램의 Thread Mutex가 무엇인지 알아내는 문제입니다. Thread Mutex란 무엇일까요? 쓰레드는 말그대로 쓰레드이고 Mutex란 Mutual Exclusion 의 합성어로써 번역하면 상호배제라는 뜻입니다. Critical Section을 가진 Thread들의 running time이 서로 겹치지 않게, 각각 단독으로 실행되게 하는 기술입니다. * Critical Section : 프로그램 상에서 동시에 실행될 경우 문제을 일으킬 수 있는 부분. 그럼 문제로 돌아와서 이 흐름그래프에서 여러 쓰레드가 공유자원을 접근하는 부분이 있을것이고, 그부분을 제어하는 Thread Mutex를 찾는문제 같은데요 ..

    CodeEngn Malware05 풀이

    5번문제입니다. 악성코드의 일부분이 주어지고 무슨일을 하는 함수인지 알아내는 문제입니다. 코드를 살펴보면 이 함수는 3개의 파라미터를 인자로 받고 있습니다. 아마도 데이터가 들어있는 버퍼, 그리고 함수에서 어떤동작을 한뒤에 결과물을 받을 Output버퍼주소 그리고 데이터의 사이즈. 이걸로 유추해 보았을 때, 데이터를 받고 어떤 알고리즘을 거친뒤에 기존데이터를 어떤 문자값으로 바꾼후 종료해주는 것 같습니다. 인터넷을 찾아보니 전형적인 base64 인코딩 방식이라고 합니다. Base64 인코딩방식을 한번 알아보겠습니다. 문자열은 알파벳 대소문자와 숫자, 그리고 "+", "/" 기호 64개로 이루어지며, "="는 끝을 알리는 코드로 쓰인다 베이스64의 정확한 규격은 RFC 1421, RFC 2045에 정의된다..

    CodeEngn Malware04 풀이

    4번문제입니다. APM환경에서 SQL Injection을 막기위한 PHP설정파일 옵션 설정방법을 묻고 있습니다. 먼저 문제에 나온 용어들을 알아보도록 하겠습니다. 먼저 APM이란 Apache + PHP + MySQL 의 줄임말입니다. APM 소프트웨어가 존재하는 것이 아니라, 이 3가지가 연동되어 운영되도록 만든 환경을 APM이라고 합니다. Apache와 MySQL이 PHP와 호환성이 좋기 때문에 주로 세 프로그램을 묶어 패키지 형태로 사용합니다 Apache란 정식 명칭은 Apache HTTP server로 웹 서버 프로그램입니다. 웹 서버란 웹 서비스를 제공해주는 서버인데, 예를 들어 사용자가 사이트에 접속하면 웹 서버에게 HTML 파일을 요청합니다. 요청을 받은 웹 서버는 클라이언트 컴퓨터에 HTML..