배열은 색상이 다르며 단색이거나 파선될 수 있습니다. 실선은 무조건 점프를 나타내고 파선은 조건부 점프를 나타냅니다. 이 예제에서는 해당 주소에 있는 명령어가 무조건 명령 jmp를 사용하기 때문에 빨간색 선이 단색입니다. 메서드 번호 1을 시연합니다. 원하는 경우 이 예제를 다시 실행하고 방법 2를 시도할 수 있습니다. EAX 값을 마우스 오른쪽 버튼으로 클릭: 정적 검사를 통해 암호를 추출할 수 있었습니다. 우리는 명령 줄에서 crackMe를 실행하고 „ericroolz”를 입력하여 테스트 할 수 있습니다 우리는 „올바른 암호”메시지를 받아야합니다. 이것이 이 예제를 무효화하는 한 가지 방법입니다. 그러나 암호를 보거나 난독 화되거나 암호화되었거나 수천 줄의 코드에 묻혀 있다고 가정해 보십시오. 모든 손실되지 않습니다, 우리는이 중요한 결정 지점에 단계 IDA의 디버거를 사용할 수 있습니다 : 이 예제는 오히려 간단하지만, 그것은 디스어셈블러와 디버거를 사용하는 힘을 설명않습니다. 소스 코드를 가지고 있지 는 않지만 대상 바이너리가 어떻게 작동하는지 배우는 것을 막지는 못했습니다. 일단 바이너리가 어떻게 작동하는지 이해하면, 우리는 그것을 „잠금 해제”자체로 조작 할 수있었습니다. 그것은 내가 구글에서 찾을 수있는 유일한 간단한 IDA 설명서입니다.

악성 코드 검색의 몇 가지 예가 포함되어 있으면 좋겠다. 그러나 예를 들어 수동 모드에서 파일을 로드하여 조금 더 자세히 조사하면 어떨까요? 이 모드에서 사용자는 파일의 로드할 섹션을 지정할 수 있습니다. 안전한 측면에 있도록 모든 섹션을 로드해 보겠습니다. `가져오기 섹션 만들기` 확인란의 선택을 취소하여 `누락된 가져오기` 메시지를 피하겠습니다. __ImageBase를 클릭하면 여러 단어가 표시됩니다. IDA는 프로그램 헤더를 우리의 경우 잘못된 배열로 표현했습니다. 배열 (단축키 U)을 정의하지 않고 포인터 (단축 키 Esc)로 돌아가포인터를 다시 따릅니다. 이번에는 함수를 포함해야하는 주소 0x400130에서 끝날 것입니다. 0x400169의 명령어가 0x400130을 간접적으로 호출하기 때문에 우리는 확신합니다.

현재 주소에 함수가 있어야 한다는 것을 IDA에 알리기 위해 P(프로시저 또는 함수 만들기)를 누릅니다. 이 기능은 이제 화면에 있는 동안, 우리는 그것의 절반만! 그 프로그램을 작성한 사람이 그것을 난독화하고 함수를 여러 조각으로 분리하기를 원했던 것 같습니다. IDA는 이제 이러한 조각된 함수를 처리하는 방법을 알고 화면에 다른 기능 부분에 대한 정보를 표시합니다.

2010 © Copyright Fundacja Projekt Kultura