공부

    [CodEngn]Basic RCE_Level 03 문제풀이

    [CodEngn]Basic RCE_Level 03 문제풀이

    Level 02 풀이에 이어 Level 03문제도 풀어보자. (Msvbvm50.dll 에러가 나타나면 아래 파일을 다운받아 프로그램과 같은 경로에 넣어두자) 문제가 단순하다. 비주얼베이직에서 스트링 비교함수 이름을 찾으라는 것 같다. 프로그램을 실행 시켜보자. 해당 메시지 창이 뜨고 '확인' 버튼을 누르면 다음과 같이 Regcode를 넣는 창이 뜨게 된다. 값을 입력하였을 때, 패스워드가 틀리다는 메시지가 뜬다. 해당 프로그램에서 패스워드를 비교하는 함수가 있는데, 그때 사용되는 함수명을 찾으라는 문제 인 것같다. 올리디버그로 살펴보자. 이전 풀이 문제들과 다르게 String값과 어셈블리어는 보이지 않는다. 문제에서는 함수명을 찾는 것이기 때문에, PE구조만 확인하면 해당 프로그램에서 사용된 함수명들을 ..

    [CodEngn]Basic RCE_Level 02 문제풀이

    [CodEngn]Basic RCE_Level 02 문제풀이

    Level 01에 이어 Level 02문제를 풀어 보겠습니다. 패스워드를 찾으라는 문제인 것 같다. 파일을 실행해 보면 다음과 같은 메시지창이 뜬다. 해당 파일이 16bit 환경이라는 것 같다. 그리고 CS:0591 같은 문자들이 보기이도 한다. '닫기'를 누르면 프로그램이 종료되고, '무시'를 누르면 프로그램이 아무런 동작을 하지 않는다. 일단 올리디버그로 뜯어보자. 올리디버그 조차 에러를 뿜어내며 실행되지 않는다. 황당할 수 있지만, 올리디버그가 안되면 HxD를 이용해서 바이너리값을 확인해 보자. 바이너리 값을 확인하다보면 특별한 문자들을 확인 할 수 있다. 비밀번호가 틀렸을 때와, 맞았을때 나타나는 메시지 구문 같다. you did it! 이라는 메시지 뒤에 Crackme#1 문자와 JK3FjZh라..

    [Reversing.kr]Easy Crack

    [Reversing.kr]Easy Crack

    Easy Crack 파일을 다운받아 실행시켜 보면 입력창과 확인버튼이 있다. 아무 내용을 넣고 확인을 누르면 "Incorrect Password"라는 경고창이 뜬다. 해당 파일을 분석해서 Password가 뭔지 찾아내면 될 것 같다. 분석※ OllyDbg프로그램에 대한 기본 단축키와 디스어셈블리 언어를 기본적으로 알고있다는 가정하에 진행합니다. 처음 디버거에 붙이면 401188주소에서 시작된다. 한줄 한줄씩 분석해서 내려가자. 401251주소에서 401000주소부분을 콜하는 것을 볼 수 있다. 해당 라인을 실행(단축키 : F8) 시키면 아까와 같이 입력창이 뜬다.그러면 401000주소 부분에 입력창을 뜨게 하는 명령이 있다는 것을 추측할 수 있다.해당 주소로 가보자. 401000주소부터 하나씩 분석해가며..

    APPLE, Swift 1.1 데이터형과 변수 (작성중)

    APPLE, Swift 1.1 데이터형과 변수 (작성중)

    1.1 데이터형과 변수 # 스위프트의 데이터형 스위프트에선 클래스에서 만들어진 객체는 물론, 정수, 구조체 등의 데이터형도 모두 인스턴스(instance)라고 부른다.스위프트에는 데이터 자체와 그것을 가리키는 포인터(pointer)라는 개념이 없다. 단, 여러 변수를 통해 동시에 참조될 가능성이 있는 형과 그렇지 않는 형은 구별해 두어야 한다. C언어와 마찬가지로, 수치 데이터를 변수에 대입하거나 함수에 전달할때 데이터가 복제되서 이후 연산이나 처리 시에 기존 데이터에는 영향을 주지 않는다. 스위프트에서는 이런 성징을 가진 데이터형을 값형(value type)이라고 한다.값형 데이터는 기본적으로 하나의 변수만 참조할 수 있다. 값형과 달리 대입 시에 복제를 하는 것이 아니라 데이터 자체에 대한 참조(다른..