'OllyDbg'에 해당되는 글 3건

  1. 2019.02.10 Back to user mode 4
  2. 2019.02.05 Windows 10에서 *.hlp 파일 열기 10
  3. 2019.02.02 ollydbg Jump 위치 표시 2

Back to user mode

Reverse Engineering 2019. 2. 10. 22:21 |
반응형

프로세서가 kernel mode에서 user mode로 변경되는 시점을 간단히 찾을 수 있다. (User mode and kernel mode)

 

 

 

예를 들어 Message box가 종료되는 지점을 찾아 보자. ollydbg에서 분석할 프로그램을 열어 준다.

 

RegisterMe.zip
0.00MB

(password: lena)

 

 

F9를 눌러 실행 한다.

 

아래와 같은 Message box가 나타난다.

 

F12를 눌러 정시 시킨다.

 

 

아래와 같은 곳으로 이동 된다.

 

Alt + F9를 눌러 back to user mode를 실행 한다.

 

오른쪽 아래에 Till user가 표시 된다.

 

'Register Me' 메세지 박스에서 '확인'을 클릭하면 아래와 같이 MessageBoxA CALL 이 종료되는 시점에서 정지 된다.

 

 

이번엔 scanf 가 종료되는 지점을 찾아 보자. 아래와 같은 소스로 실행 파일을 만들어 준다. (

FindMe.zip
다운로드

)

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
    int i;
 
    printf("Enter a number: ");
    scanf_s("%d"&i);
    printf("Number: %d", i);
 
    return 0;
}
cs

 

ollydbg(v.2.01)로 열어 준다.

 

F9를 눌러 실행 한다.

 

아래와 같이 숫자를 입력하는 콘솔창이 뜬다.

 

 

다시 ollydbg로 돌아와 F12를 눌러 정지 시킨다. 하지만 여기서는 Paused 상태가 되지 않고 Pausing 상태가 된다.

 

콘솔창에서 숫자를 입력 한다.

 

숫자를 입력하면 아래와 같은 주소로 이동하고 정지 상태가 된다.

 

F8, Alt + F9, Ctrl + F9 를 적당히 눌러가며 진행 하면 scanf가 종료되는 것으로 보이는 위치가 나타난다.

 

 

같은 파일을 x32dbg로 열어 보자.

 

F9를 눌러 진행 한다.

 

한번 더 F9를 눌러 진행하면 아래와 같이 Running 상태가 된다.

 

숫자를 입력하라는 콘솔창이 뜬다.

 

 

x32dbg로 돌아가 Threads 창을 열어 준다.

 

Title Bar에는 Main Thread가 선택되어 있는 것 처럼 표시 되지만 Main Thread가 아닌 2번 thread가 활성화 되어 있다. 이 상태에서는 break point가 제대로 작동하지 않는다. Main Thread를 활성화 해 준다.

 

아래와 같은 주소로 이동 된다. F12를 눌러 Pause 한 후(F12를 한 번 누르면 화면에는 아무것 도 표시되지 않는다. 두 번 누르면 Error setting breakpoint at XXXXXXXX! (SetBPX) 가 표시 되지만 무시하자) 콘솔창에서 숫자를 입력한다.

 

숫자를 입력하고 나면 아래와 같이 Paused 상태가 된다.

 

 

F8, Alt + F9, Ctrl + F9 를 적당히 눌러가며 진행 하면 scanf가 종료되는 것으로 보이는 위치가 나타난다.

 

스크롤을 조금 올려 보면 프로그램의 전체적인 내용을 파악 할 수 있다. pdb파일이 같이 있기 때문에 소스 라인까지 표시 된다.

 

 

반응형

'Reverse Engineering' 카테고리의 다른 글

x64dbg Color Scheme 바꾸기  (0) 2019.02.19
Cheat Engine으로 Pointer 찾기  (2) 2019.02.13
Windows 10에서 *.hlp 파일 열기  (10) 2019.02.05
IDA Pro Skin 바꾸기  (1) 2019.02.04
ollydbg Jump 위치 표시  (2) 2019.02.02
Posted by J-sean
:
반응형

ollydbg 에서 많이 사용하는 win32.hlp는 Windows 3.0 부터 XP까지 지원하는 도움말 파일 형식(*.hlp) 이다.

도움말 탐색기(winhlp.exe)로 열 수 있는 이 형식은 XP 이후로는 공식 업데이트를 이용해 사용 가능하지만 Windows 10 부터는 공식 지원이 되지 않고 있다.


Windows 10에서 *.hlp 파일을 실행 하면 아래와 같이 MS Windows 도움말 홈페이지가 연결 된다.


다음과 같은 방법으로 Windows 10에서도 *.hlp 파일을 열어 볼 수 있다.


적당한 폴더를 만들고 아래 파일 중 사용 중인 윈도우에 맞는 버전을 다운 받아서 압축을 풀어 준다.

winhlp32_WinXP_x86.zip

winhlp32_WinXP_x64.zip


같은 폴더에 아래 파일을 다운 받는다.

Windows10_hlp_fix.cmd


파일 내용:

@echo off

set crtpth=%CD%

takeown /f "%windir%\winhlp32.exe" >nul

icacls "%windir%\winhlp32.exe" /grant *S-1-5-32-544:F >nul

copy /y "%crtpth%\winhlp32.exe" %windir%

icacls "%windir%\winhlp32.exe" /setowner "NT Service\TrustedInstaller" >nul

echo.

echo Done.

echo.

echo Press any key to Exit

pause >nul

exit




명령 프롬프트를 관리자 권한으로 실행하고 다운 받은 폴더가 위치한 곳으로 이동한다.


Windows10_hlp_fix.cmd 파일을 실행 한다.


이제 *.hlp 파일을 열어 보면 잘 열린다.



반응형

'Reverse Engineering' 카테고리의 다른 글

x64dbg Color Scheme 바꾸기  (0) 2019.02.19
Cheat Engine으로 Pointer 찾기  (2) 2019.02.13
Back to user mode  (4) 2019.02.10
IDA Pro Skin 바꾸기  (1) 2019.02.04
ollydbg Jump 위치 표시  (2) 2019.02.02
Posted by J-sean
:
반응형

ollydbg에서 jump 명령어 실행 시 이동되는 위치는 시각적으로 명확히 표시되지 않는것이 기본 세팅 이다.



ollydbg.ini 파일에서 아래와 같은 항목들의 값을 1로 바꿔 준다.

  • Show jump path
  • Show jumpfrom path
  • Show path if jump is not taken



ollydbg를 실행해서 확인하면 아래와 같이 화살표로 jump 가 명확히 표시된다.


반응형

'Reverse Engineering' 카테고리의 다른 글

x64dbg Color Scheme 바꾸기  (0) 2019.02.19
Cheat Engine으로 Pointer 찾기  (2) 2019.02.13
Back to user mode  (4) 2019.02.10
Windows 10에서 *.hlp 파일 열기  (10) 2019.02.05
IDA Pro Skin 바꾸기  (1) 2019.02.04
Posted by J-sean
: