분류 전체보기

Codeengn Challenges = Basic 18 풀이. 18번이다. 이번 문제도 시리얼을 구하는 문제이다.일단 다운로드받아서 .exe 파일을 열어본다. 홈 이름과 시리얼을 적는 부분이 나온다.일단 올리디버거로 열어본다. 성공과 실패 문자열이 보인다. JE를 이용해 성공 문자열 쪽으로 점프하는 것이다.JE는 비교함수에서 쓰이는 두 변수의 값이 같을 때 점프한다. 그런데 CMP가 없다. 위쪽에 박스친 곳을 보면 Istrcmpi라고 이상한 것이 있다.문자열을 비교해주는 함수이다. 즉 이 두 값이 같아야 JE에서 인식을 하여 성공 문자열로 점프한다.일단 한 번 확인해본다. 위의 화면처럼 Serial를 입력한 후 Check를 누른다. 아직 반응은 아까와 동일하다. 위 화면을 보면 두 변수에 값이 나와 있는..
Codeengn Challenges = Basic 17 풀이. KEY 값이 BEDA-2F56-BC4F4368-8A71-870B일 때 NAME을 구하라는 문제이다.다운로드해서 .exe 파일을 실행해본다. 문제에 있는 KEY 값 써보자. Check it!을 눌러본다. 더 많은 문자를 입력하라고 한다.아마 NAME의 문자열 길이를 비교하는 함수가 있는 거 같다.일단 PEID를 실행해본다. 따로 패킹은 아니다.일단 올리디버거를 실행한다. 문자열을 검색하고, 따라가서 1개 이상으로 바꿔줘야 한다. CMP문으로 문자열의 개수를 비교하는 것이 보인다.수정해야 되서 파일로 만든다. 저장한다. 저장을 한 뒤에는 1글자만 입력해도 딱히 문제가 생기지 않는다.A ~ Z, a ~ z, 0 ~ 9까지 대입해본다. 좀 노가다일 ..
Codeengn Challenges = Basic 16 풀이. 이름이 CodeEngn일 떄 시리얼을 구하는 문제이다. 흠...문제 유형이 반복되는 것 같다.일단 PEID를 실행해본다. 음........................딱히 언급할만 한 것이 없다.올리디버거를 실행해봤다. 분기점을 찾아본다. 분기점을 확인.아 맞다. exe 프로그램 실행 화면은 아래와 같다. 대충 임의로 PW를 써봤다.당연히 안 된다. 다시 이어 가자. EAX와 SS가 존재한다.EAX는 1E240, SS는 E4C60D97 SS는..................... EAX는................... SS가 시리얼 번호이다. 383818485 끝..................................비슷한 문제 유형..
Codeengn Challenges = Basic 15 풀이. 일단 14번 문제랑 똑같다. PEID를 실행해본다. 별 다른 건 없다..... Borland Delphi..? 잘 모르겠다..일단 올리디버거를 실행해본다. 문자열을 찾은 비교문 다음에 나올만한 문자가 있다. 분기점에 브레이크 포인트를 실행한다.F9로 실행한다. 임의로 이름은 CodeEngn로 하고, 시리얼은 123456으로 입력한다. 분기점은 DS와 EAX이다. 이제 계산기를 사용해 값을 구해본다. DS는 6160이고, EAX는 1E240이다.즉. DS는 24928로 EAX는 123456으로 값을 구할 수 있다.24928이 시리얼 값이다. Check it!을 눌러본다. 끝.................
Codeengn Challenges = Basic 14 풀이. 말 그대로 Name이 CodeEngn일 때 Serial를 구하라는 문제이다.Bruteforce가 필요하다고 한다. Bruteforce.....? 사전적 의미로 무차별 대입이라는 뜻이다.일단 맞던 틀리던 대입해보라는 뜻인 거 같다.다운로드를 해서 .exe 파일을 열어보았다. ??????????????????뭐지?????????????? 그림....... 일단 Check를 눌러본다. 1글자 이상 채우라고 한다.다시 화면으로 돌아가서 ID 같은 칸에 1 PW 같은 칸에 1를 입력해봤다. 모르겠으니 올리디버거를 본다. 일단 재생 버튼을 눌러본다. PUSHAD 명령어가 있다. 즉 패킹된 파일이 있다는 것이니 PEID를 열어본다. 역시 패킹되어있다. 다..
Codeengn Challenges = Basic 13 풀이. 말 그대로 정답은 무엇인가...............? 찾으면 된다.음...................일단 다운로드 후 .exe를 실행해본다. PW를 치라고 한다. 그래서 올리디버거로 실행이 되는데,프로그램을 닫으니 아래와 같은 상황이 된다. ????????????????? 올리디버거도 아래와 같이 실행이 된다. 올리디버거의 내용이 없다...........뭐지??????? 심지어 컴퓨터 문제인줄 알고 재부팅도 해봤다;;일단 어떤 언어로 생겼는지, 무엇을 패킹했는지 확인해야 되서 PEID를 실행해본다. NET를 이용한 C#을 사용한다는 것 같다....흠 아직까지는 잘 모르겠다.즉 Visual이 앞에 있는 것을 보니 Visual C#을 사용햇다..
C++ About const and static. 1.C++ Initialization List of Constructor Apple::Apple() { price = 508; coord_x = coord_y = 0; amount = 10; origin = U.S.A; } 생성자 이름 뒤에 : price(500), coord_x(0), coord_y(0), amount(10), origin(U.S.A) {}로 오는 것을 초기화 리스트 (initializer list) 라고 부르며, 생성자 호출과 동시에 멤버 변수들을 초기화해주게 된다. Apple::Apple(int x, int y) : coord_x(x), coord_y(y), price(500), amount(10), origin(U.S.A) {} c..
C++ Constructors and destructors. 1.Introduction. 보통 어떠한 객체의 내부적 성질, 상태 등에 관련된 변수들은 모두 private 범주에 두고, 그 객체가 외부에 하는 행동들은 함수로써 구현하여 public 에 두면 된다고 한다. new 와 malloc 모두 동적으로 할당하지만 '무언가' 다르다고 했는데, new 의 경우 객체를 동적으로 생성하면서와 동시에 자동으로 생성자도 호출해준다. 2.C++ destructors 명확히 delete 를 지정하지 않는 한 자동으로 delete 가 되는 경우는 없다. 즉 동적으로 할당했던 X는 영원히 메모리 공간 속에서 둥둥 떠다닌다는 말.사실 몇 바이트 정도 밖에 되지 않을 것이지만 X들이 쌓이고 쌓이게 되면 메모리 누수 (Me..
Allblackk
'분류 전체보기' 카테고리의 글 목록 (37 Page)