반응형

전체 글 154

Crackme2

crackme 2 crackme2.exe 파일을 실행하면 다음과 같이 나온다. Name과 Serial에 아무 값이나 넣어서 check 버튼을 눌러보면 오류 창이 뜬다. 해당 Name에 맞는 올바른 Serial값을 넣어야 하는 것으로 보인다. 그럼 이 파일을 Ollydbg에서 실행을 해보자 여기서 올바른 Serial 값을 넣었을 때 출력되는 내용을 찾아보자 오른쪽 마우스를 눌러 Search for -> All referenced text strings를 눌러준다. 그러면 String 값들이 나오게 되고 내리다 보면 Congratulation 이라는 성공 했을때의 문자열이 보인다. 그럼 break point를 걸어 실행을 해보자 Wrong serial! 이라는 string이 써 있는 곳에 F2를 눌러 bre..

Crackme 1

crackme 1 abex' crackme #1.exe 파일을 실행하면 다음과 같이 나온다. 처음엔 HD를 CD-Rom으로 생각하도록 하라고 나오고 확인을 누르면 error창이 나오면서 이것은 CD-Rom이 아니라고 출력 되는 것을 볼 수 있다. 해당 파일을 Ollydbg에 올려보면 다음과 같이 나온다. Messagebox 부분이 끝나면 call이 실행되면서 messagebox가 나오게 된다. 다음 부분을 보면 EAX와 ESI를 비교하고 같다면 주소를 점프하도록 되어있다. 점프하는 주소는 올바른 결과가 출력되는 곳의 주소로 보인다. 그렇다면 점프하는 부분을 EAX와 ESI가 같을 때 점프하는 것이 아닌 무조건 점프하도록 바꾸어주자. 해당 줄을 더블클릭하면 다음과 같이 나온다. 원래의 내용으로 해당 내용을..

Javascript -11- method, this, closure

method, this 바로 실습을 통해 확인하자 this.html this this.js function f(){ console.log(this); console.log("f is called"); } var o={name:"object", method:f}; f(); o.method(); 결과를 확인하면 다음과 같다. 처음 f함수를 그냥 호출한 경우 this 부분이 window라고 출력되게 되고 다음 변수 o의 method를 통해 호출한 경우에는 this 부분이 변수 o에 대한 정보가 출력되게 된다. this.js function setName(name){ this.name=name; } var o={name:"object", setName:setName}; var o2={name:"", setNam..

Javascript -10- scope, shadowing

scope 유효한 영역을 의미한다. 변수의 scope 선언한 변수가 유효한 영역을 의미한다. function scope 선언된 변수는 선언된 함수 안에서만 접근이 가능하다. 선언된 함수 안에서 선언된 함수에서도 접근이 가능하다. 실습을 살펴보자 scope.html scope scope.js function a(){ var v_a="a"; function b(){ var v_b="b"; console.log("b :", typeof(v), typeof(v_a), typeof(v_b)); } b(); console.log("a :", typeof(v), typeof(v_a), typeof(v_b)); } var v="v"; a(); console.log("o :", typeof(v), typeof(v_a),..

Javascript -9- 반복문

반복문 반복문 조건에 따라 프로그램의 일정 코드를 반복적으로 수행할 수 있도록 하는 구문이다.(while문, for문) while문 예시 코드 while( /*조건식*/ ){ /* 반복 실행될 코드 */ } continue, break continue: 남은 반복실행 될 코드를 모두 skip한다. break: 반복문에서 즉시 탈출한다. do, while문 예시 코드 do{ /* 반복 실행될 코드 */ }while( /*조건식*/ ); while문과 do,while문의 차이 조건식이 false인 경우 while문은 실행되지 않지만 do, while문은 do 안의 코드가 한번 실행 된 후 종료된다. for문 예시 코드 var sum = 0; for( var i = 0 ; i < 5 ; i++ ){ sum =..

Javascript -8- 조건문

조건문 조건문 조건에 따라 프로그램의 흐름을 분기해서 특정 코드가 실행되도록 한다. (if문, switch문) if문 예시 코드 if(/*조건식*/){ /*참인경우 실행될 코드*/ } else if( /*조건식*/ ){ /*if 문의 조건이 거짓이고, 위의 조건식이 참인경우 실행될 코드*/ } /* 여러개의 else if... */ else if( /*조건식*/ ){ /*위의 if, else if문의 모든 조건이 거짓이고, 위의 조건식이 참인경우 실행될 코드*/ } else{ /*모든 if, else if 문이 모두 실행되지 않았을 때 실행될 코드*/ } switch문 예시 코드 switch( /*비교할 값*/ ){ case /*값1*/: /*비교할 값이 값1인 경우 실행될 코드*/ break; case..

Javascript -7- 배열, 주석

기초적인 부분이라 빠르게 진행하기 위해 실습은 넘어가려 한다. 배열 값을 저장할수 있는 변수의 연속된 공간, index를 이용해 각 변수에 접근 가능 배열의 정의 빈 배열 var arr = []; 초기화된 배열 var arr= [1,2,3,4,5]; 각 index의 자료형은 어떤 자료형이든 가능 var mixed_arr = [1, true, 3.14, “string”, {name:”object”}. {1,2,3}]; 배열의 길이 arr.length 사용 배열의 각 엘리먼트 접근하기 대괄호 안에 index를 사용해서 접근 arr[0] = 1; 배열 엘리먼트 추가/삭제하기 배열의 뒤에 엘리먼트 추가 .push(element); 배뎔의 뒤에서 엘리먼트 삭제하고 리턴 .pop(); 배열의 앞에서 엘리먼트 삭제하..

Javascript -6- String

String 문자열의 길이 구하기 str 변수의 길이를 구하려고 할 때는 두가지 방법이 있다. 1. str.length; 2. str[“length”]; 문자열 붙이기 str1 변수 문자열에 str2 변수 문자열을 붙이려고 할 때에도 두가지 방법이 있다. 1. str1.concat(str2); 2. str1+str2 특정 위치의 문자열 알아내기 Str 변수의 첫 문자를 구하려고 할 때 두가지 방법 중 하나를 사용한다. 1. Str.charAt(0); 2. Str[0]; Str 변수의 마지막 문자를 구하려고 할 때 두가지 방법 중 하나를 사용한다. 1. Str.charAt(str.length-1); 2. Str[str.length-1]; 그러나 Str.charAt() 방식은 범위를 벗어난 경우 “”를 반환..

Javascript -5- 연산자, 함수

연산자 연산자도 다른 언어들이랑 동일하다 이항연산자 : +, -, *, /, % 단항연산자 : - 증감연산자 : ++, -- Math 관련 명령어 Math.pow(A,B); -> A의 B승을 구할 때 Math.sqrt(A); -> A의 제곱근을 구할 때 Math.random(); -> 0~1 사이의 임의의 난수를 발생시킬 때 함수 함수란 호출에 의해 여러 번 실행할 수 있는 코드 블럭을 말한다. 함수 정의 방법 function 함수이름(파라미터1, 파라미터2){ /* 실행될 코드 */ return 반환값; } 파라미터 함수의 정의 부분에 나열되어 있는 변수이다. 여러개인 경우 콤마(,)로 구분하여 사용하고 파라미터가 아예 필요 없는 경우도 있다. 함수 안의 코드에서 변수처럼 활용한다. return 함수의..

해커스쿨 ftz level20 (macOS)

해커스쿨 ftz Level20 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level20 단계이다. 드디어 마지막이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level20@서버ip 라고 입력합니다. Id: level20, pw: we are just regular guys 로 로그인하고 파일을 확인하였다. hint를 확인하니 이번에는 배열의 크기보다 작은 크기의 값을 입력받는다. 이번에는 printf에 bleh라는 배열을 그대로 넣어 출력하기 때문에 이를 이용해야겠다. 프로그램을 실행하여 아무값이나 넣어보았다. 일반 문자는 그대로 출력하는 반면 서식문자는 메..

반응형