OllyDbg란 무엇인가요?
OllyDbg는 32비트 어셈블리 수준의 직관적인 분석 디버거입니다.
소스 코드를 사용할 수 없거나 컴파일러에 문제가 있을 때 특히 유용합니다.
작동에 필요합니다. Windows 95, 98, Me, NT 또는 2000(아마도 XP)에서 작동합니다(테스트되지 않음).
모든 펜티엄급 컴퓨터에서 실행되지만 원활한 디버깅을 원한다면 최소 300MHz 이상의 프로세서가 필요할 수 있습니다.
Ollydbg는 메모리 집약적입니다. 추적과 같은 일부 확장 기능을 사용하려면 128 이상의 RAM을 권장합니다.
지원되는 프로세서. OllyDbg는 Athlon 확장, SSE 명령어 및 해당 데이터 형식을 포함하여 모든 80x86, Pentium, MMX, 3Dnow!를 지원합니다.
그러나 SSE2는 구성이 지원되지 않습니다. OllyDbg의 동작과 모양을 제어하는 약 100가지 옵션이 있습니다.
데이터 형식.
덤프 창에는 모든 일반적인 데이터 형식이 표시됩니다.
16진수, ASCII, UNICODE, 16 및 32비트 양수/음수/16진수 정수, 32/64/80비트 부동 소수점 숫자, 주소, 디스어셈블리(MASM 또는 IDEAL) 또는 주석
PE 래디컬 또는 스레드 데이터 블록.
도와주세요.
이 파일에는 OllyDbg를 이해하고 사용하는 데 필요한 중요한 정보가 포함되어 있습니다.
Windows API 도움말 파일(저작권 문제로 인해 포함되지 않음)이 있는 경우 이를 OllyDbg에 첨부하여 시스템이 도움말을 호출할 때 즉시 액세스할 수 있습니다.
시작하세요.
명령줄, 파일 메뉴, 끌어서 놓기, 마지막으로 디버깅된 프로그램 다시 시작 또는 실행 중인 프로그램에 첨부를 통해 실행 파일을 지정할 수 있습니다
. OllyDbg는 실시간 디버깅을 지원합니다. 설치가 필요하지 않으며 플로피 디스크에서 OllyDbg를 시작할 수 있습니다.
스레드.
OllyDbg는 멀티스레드 애플리케이션을 디버깅할 수 있습니다. 한 스레드에서 다른 스레드로 전환하거나 스레드를 일시 중지, 재개 및 중단하거나 우선 순위를 변경할 수 있습니다.
스레드 창에는 각 스레드의 오류 정보가 표시됩니다(GetLastError를 호출하여 반환됨)
분석.
분석기는 OllyDbg의 중요한 부분입니다. 코드, 복잡한 구조, API 함수 호출, 함수 매개변수 번호, 입력 섹션 등에 포함된 프로시저, 단순 및 계단식 변환기, 테이블, 상수 및 문자열을 식별합니다. 프로파일링을 사용하면 이진 코드를 더 읽기 쉽게 만들고, 디버깅을 더 쉽게 만들고, 잘못된 중단 및 충돌 가능성을 줄일 수 있습니다. 이는 컴파일러 지향적이지 않으며 모든 PE 프로그램에서 동일하게 잘 작동합니다.
객체 스캐너.
OllyDbg는 개체 파일이나 라이브러리(OMF 및 COFF 형식 모두)를 검색하고 코드 세그먼트를 해제한 후 디버깅 중인 프로그램에서 해당 위치를 찾습니다.
IMPLIB 스캐너.
일부 DLL은 기호를 서수로만 출력하는데 이는 인간의 눈에는 의미가 없습니다. 해당 입력 라이브러리가 있는 경우 OllyDBg는
서수를 기호 이름으로 다시 변환할 수 있습니다.
완전한 유니코드를 지원합니다.
ASCII 문자열에서 사용할 수 있는 거의 모든 작업은 UNICODE 문자열에서도 사용할 수 있으며 그 반대의 경우도 마찬가지입니다.
이름.
OllyDbg는 모든 입력 및 출력 기호를 Borland 형식에 따라 디버깅 정보에서 추출합니다. 개체 스캐너를 사용하면 라이브러리 기능
번호를 식별할 수 있습니다. 자신의 이름과 설명을 추가할 수 있습니다. DLL의 일부 기능을 서수를 통해 내보내는 경우 가져오기 라이브러리를 OllyDbg에 연결하여 원래 이름을 복원할 수 있습니다.
Ollydbg는 또한 창 메시지, 오류 코드 또는 비트 필드와 같은 많은 상수의 기호 이름을 인식한 다음 호출에서 알려진 함수로 디코딩할 수 있습니다.
알려진 기능.
OllyDbg는 C 및 Windows API에서 자주 사용되는 약 2100개의 함수를 이름으로 식별하고 해당 매개변수를 디코딩할 수 있습니다. 자신만의 설명을 추가하거나
사전 정의된 디코딩을 할당할 수 있습니다. 알려진 함수 및 로그 매개변수에 대한 로깅 중단점을 설정할 수 있습니다.
스택. 간단한 경험적 방법을 사용하여 OllyDbg는 반환 주소와 스택 프레임을 식별하려고 시도합니다.
그러나 이전 호출의 남은 부분일 수 있다는 점에 유의하세요(역자: 크래킹할 때 가끔 필요합니다!). 프로그램이 알려진 함수에서
일시 중지되면 스택 창은 실제 인수를 디코딩합니다. 찾다. 수많은 가능성! 명령(정확하거나 대략적인), 명령 번호, 상수, 바이너리 또는 텍스트 문자열(
연속일 필요는 없음)을 검색하고, 주소, 상수 또는 주소 범위를 참조하는 모든 명령을 검색하고, 검색합니다. 이름의 경우 전체에서 이진 시퀀스에 할당된 메모리를 검색합니다. 여러 주소가 발견되면 주소 간에 전환할 수 있습니다.
자원.
Windows API 함수가 리소스 문자열을 참조하는 경우 OllyDbg는 이를 해제하고 표시할 수 있습니다(번역자: w32dsam). 다른 유형은 첨부된 리소스 나열, 덤핑 및 바이너리 편집으로 제한됩니다. 중단점. OllyDbg는 단순 중단점, 조건부 중단점, 로그 파일에 안전하게 기록된 중단점(예: 함수 매개변수), 메모리 중단점 쓰기 또는 액세스, 하드웨어 중단점 중단점(ME/NT/2000에만 해당) 등 모든 종류의 일반 중단점을 지원합니다. 적중 추적의 극단적인 경우 모듈의 모든 명령에 INT3 인터럽트를 설정할 수 있습니다. 500MHz 프로세서를 갖춘 Windows NT 환경에서 OllyDbg는 초당 5000개 이상의 인터럽트를 처리할 수 있습니다. 모니터링 및 보기 도구. Watch는 프로그램이 일시 중지될 때마다 평가되는 표현식입니다. 레지스터, 상수, 주소 표현식, 부울 및 복잡한 대수 연산자를 사용할 수 있습니다. ASCII와 UNICODE 문자열을 비교할 수 있습니다. Inspector는 2개의 인덱스를 포함하는 Watch이며
2차원 테이블 형태로 표현될 수 있으며 배열과 구조를 디코딩할 수 있습니다.
실행합니다.
프로그램을 단계별로 실행하거나 하위 프로세스를 입력하거나 즉시 실행할 수 있습니다. 프로그램이 지정된 위치로 돌아가거나 실행될 때까지 실행하거나 계속 실행될 수 있습니다. 프로그램이 실행되는 동안에도 프로그램을 완벽하게 제어할 수 있으며 메모리를 확인하고 중단점을 설정하며 실행되는 동안 실시간으로 코드를 조정할 수도 있습니다. 또한 언제든지 디버깅된 프로그램을 일시 중지하고 다시 시작할 수 있습니다. 히트 추적. 적중 추적은 지금까지 실행된 명령이나 프로세스를 표시하므로 코드의 모든 분기를 검사할 수 있습니다. 적중 추적은 지정된 각 명령 위와 아래에 중단점을 배치하고 명령이 실행된 후에 이를 제거합니다(hit
Hit).
추적을 실행합니다.
실행 추적은 프로그램을 단계별로 실행하고 실행 결과를 큰 버퍼에 요약합니다. 이 요약에는 모든 레지스터(SSE 제외), 플래그
및 스레드 오류, 알려진 기능의 메시지 및 디코딩된 매개변수가 포함됩니다. 원래 명령을 저장할 수 있으므로 자체 변경 프로그램을 더 쉽게 디버깅할 수 있습니다.
추적을 중지하는 조건을 지정할 수 있습니다. 또는 주소 범위, 표현식 또는 명령을 통해 가능합니다. 실행 추적 결과를 파일에 저장하고 두 개의 독립적인 실행을 비교할 수 있습니다. Run Trace를 사용하면 수많은 명령의 실행을 자세히 추적하고 분석할 수 있습니다.
추상적입니다.
요약은 실행 추적 버퍼에 특정 명령이 나열된 횟수를 계산합니다. 요약을 사용하면 코드의 어느 부분이 가장 많은 처리 시간을 소비하는지 알 수 있습니다.
패치.
내장된 어셈블러는 자동으로 가능한 가장 짧은 코드를 선택합니다. 바이너리 편집기는 ASCII, UNICODE 및 16진수 형식으로 데이터를 동시에 표시합니다. 기본 복사 및 붙여넣기 기능은 계속 사용할 수 있습니다. 자동 백업을 사용하면 변경 내용을 취소할 수 있습니다. 직접 수정하여 실행 파일에 복사할 수 있으며 OllyDbg는 변경 사항을 적절하게 조정할 수도 있습니다.
자동 압축 풀기 파일입니다.
자동 압축 풀기 파일을 디버깅할 때 자동 압축 풀기를 건너뛰고 원래 프로그램의 진입점에서 중지하고 싶은 경우가 많습니다. OllDbg는 실제 항목을 찾으려고 시도하는 SFX(자체 추출) 추적을 수행합니다. SFX 추적은 보호된 자동 추출 프로그램에 대해 무력한 경우가 많습니다. 항목을 발견(또는 지정)한 후 OllyDbg는 압축 해제 프로세스를 보다 빠르고 안정적으로 건너뛸 수 있습니다. 플러그인. 자신만의 플러그인을 작성하여 OllyDbg에 기능을 추가할 수 있습니다. 플러그인은 모든 중요한 데이터 구조에 액세스하고
기존 OllyDbg 창에 메뉴와 바로가기를 추가하며 완전히 문서화된 100개 이상의 플러그인 API 기능을 사용합니다.
UDD.
OllyDbg는 모든 프로그램이나 모듈 관련 정보를 하나의 파일에 저장하고 모듈이 로드될 때 이를 읽습니다. 이 정보에는 레이블, 설명, 중단점, 모니터링, 분석 데이터, 조건 등이 포함됩니다. 맞춤 제작. 글꼴과 색 구성표를 사용자 정의할 수 있습니다.