반응형

방법은 2가지가 있다.

 

1. 콘솔에서 하는 방식

 

2. 시스템 구성에서 하는 방식

 

우선, VMWare에서 시리얼 포트를 생성한다. 생성하는 과정은 아래와 같다.

그리고 유심히 봐야할 것은 시리얼 포트의 번호 이다. 시리얼 포트의 번호가 따로 없는데 새로 생성하면

2로 만들어지는 것은 VMWare 상에서 우선적으로 사용하고 있기 때문에 향후 콘솔 설정에서 유의하여 연결 해야 한다.

 

 

 

 

 

 

 

 

 

Serial Port 2로 추가 된 것을 볼 수 있다.

VMWare 상태에서 끝났으므로 windbg에서도 대기 접속 대기 상태를 유지한다.

 

 

 

 

(단축키로 만들어 놓으면 좋다.)

windbg.exe -k com:pipe,port=\\.\pipe\babyhack,baud=115200, resets=0, reconnect

 

자 이젠 준비가 완료 되었다.

그럼 진행 해보도록 하자.

 

1. 콘솔 모드로 연결하는 방법

(* cmd.exe를 실행할 때는 반드시 관리자 권한으로 해야 한다.)

 

  부트로더 생성 Debug mode로 실행시키고 싶지 않을때를 위하여 부트로더를 하나 추가하여 사용하는 것이 좋다.

 

       C:\Windows\system32>bcdedit /copy {current} /d DebugEntry

       The entry was successfully copied to {dcffe704-9da4-11e1-a0dd-8c5e574c6735}.

 

       C:\Windows\system32>bcdedit /debug {dcffe704-9da4-11e1-a0dd-8c5e574c6735} ON

       The operation completed successfully.

 

       C:\Windows\system32>bcdedit /default {dcffe704-9da4-11e1-a0dd-8c5e574c6735}

       The operation completed successfully. 

        

C:\Windows\system32>bcdedit

....................................

Windows 부팅 로더
-------------------
identifier                    {current}
device                       partition=C:
path                          \Windows\system32\winload.exe
description                 DebugEntry
locale                        ko-KR
inherit                        {bootloadersettings}
recoverysequence      {dcffe704-9da4-11e1-a0dd-8c5e574c6735}
recoveryenabled         Yes
osdevice                    partition=C:
systemroot                 \Windows
resumeobject             {dcffe702-9da4-11e1-a0dd-8c5e574c6735}
nx                            OptIn
debug                       Yes 

 

     bcdedit /dbgsettings serial debugport:2 baudrate:115200

     (* debugport를 2로 사용한 이유는 COM1은 프린트 용도로 VMWare에서 선점하고 있기 때문에

        COM2를 의미하는 2로 설정한 것이다.)

 

2. 시스템 구성에서 하는 방식

 

   msconfig 명령을 이용하여 부팅 옵션을 설정 변경 할 수 있다.

 

 

 

  시스템 구성 방식에서 설정한 것 처럼 추가하는 방법은 제공하지 않고 있다.

  따라서, 부트로더를 적용하기 위해서는 bcdedit를 이용하던지 부트로더 등록 프로그램을 활용하여 설정하는 것이 안전하고

  편할 것으로 보인다.

 

3. 접속 테스트

  

   심볼 주소 등록 : srv*d:\symbols*http://msdl.microsoft.com/download/symbols

 

 

  ctrl + break 명령을 통하여, Interrupt를 걸고 이 후 g 명령을 통해서 Interrupt 건 상태를 풀어 윈도우가 정상적으로

  동작하게 유지한다. 

 

 

 

참고 사이트

  - http://msdn.microsoft.com/en-us/library/windows/hardware/ff538143(v=vs.85).aspx

  - http://sinarn.blog.me/130183074480

  - http://lucid7.egloos.com/viewer/2760612

  - http://blog.naver.com/bbasyoong/20190453141

  - http://sanaigon.tistory.com/178 (Virtual KD Application 소개)

반응형
반응형

 

 

지금 카드 정보 유출이 카드사 만의 문제일까요?

여러 분들의 정보가 카드사에서만 유출되고 있을까요?

 

엄청난 많은 정보들이 지금 인터넷에 떠돌고 있으며, 굳이 카드사가 아니더라도

손 쉽게 얻을 수 있습니다.

@.@

 

금일 키사에 신고는 해놓았는데 어떻게 처리되는지 봐야겠네요.

 

 

 

반응형

'Hacking' 카테고리의 다른 글

[WEB] Blind SQL Injection 공격 방법  (0) 2016.08.04
[CE] cheatengine 멋지다..  (0) 2013.07.01
[one point] 지뢰찾기  (0) 2012.01.05
반응형

 

Name Mangling 이라고 하면 저에게 생소한 부분이였습니다.

Cod, Map 파일을 분석하면서 연계가 되어 Name Mangling 까지 가게 되었네요.

 

이후 부터는 반어를 사용합니다. 이점 양해해 주시길 바랍니다.

////////////////////////////////////////////////////////////

 

1. Name Mangling 이란?

   프로그램에서 함수를 선언하거나 전역 변수 등의 선언 했을때, 실제 생성된 함수는 컴파일러의 특징에 따라서 일정한 규칙을 통하여 함수, 변수명이 변경 된다. 이것을 Name Mangling 또는 Name Decoration 이라고 한다. 

   즉, 임의로 Test() 함수가 !Test@@YAXHAPAK 와 같이 변경되는 것을 의미한다.

 

 

 

 

2. 바뀌는 이유가 무엇인가?

   Function Overloading과 관련이 있다. Function Overloading이란 동일한 이름으로 다른 기능을 수행하는 함수를 여러개 만들었다고 치자. 그럴 경우 어떤 함수를 불렀는지 확인 할 수 없으므로 동일한 이름이라고 하더라도 따른 이름을 부여하여 프로그램이 동작하는데 있어서 문제가 발생하지 않도록 하기 위한 하나의 방지 책이다. 그림으로 쉽게 설명하도록 하겠다.

 

 

< 출처 : http://spikez.tistory.com/19 >

 

3. Name Mangling을 적용 / 미 적용 방법

 

Name Mangling 미적용 

  extern "C" __declspec(dllexport) void h(void)

  void h()

Name Mangling 적용

  __declspec(dllexport)

  ?h@@YAXXZ

 

  위와 같이 extern "C"를 붙이게 되면 C Type으로 함수명을 Naming을 하겠다는 선언이다. C Type의 Naming은 코드 상에서 사용하는 함수명 그대로 사용하는 것을 의미 한다.

 

4. Name Mangling 적용된 파일 분석 하는 방법

 

   undname 이라는 유틸리티가 있습니다. undname 프로그램은 Visual Studio를 설치하게 되면

 

[VS 설치 폴더]\VC\bin\undname.exe 

  

   존재 할 것이다. 해당 파일을 그냥 때려 막으면 Name Mangling가 복원되어 화면에 출력해 준다. 그때 아래의 명령으로

   파일로 생성하여 분석에 활용하면 Name Mangling으로 된 함수로 인해서 눈 아픈 일은 없어질 것이다.

 

 

undname.exe TestProg.map > und_function_Map.txt 

 

  이와 같이 할 경우 아래와 같은 결과 물을 얻을 수 있어서 분석하는데 도움이 될 것이다.

 

 

/////////////////////////////////////////////////////////

이번 기회에 undname을 통하여 Name Mangling이 적용된 함수를 C Type의 함수로 변경하는 방법을 알 수 있었습니다.

굳이, 파일이 아니더라도 문자열을 넣어도 변환 되므로 편의에 맞게 사용하면 좋을 것 같습니다.

사용 방법은 동일 합니다.

 

    

반응형

+ Recent posts