ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • IDA 사용법 및 문법
    해킹/리버싱 이론 2024. 10. 7. 09:34

    Dreamhack의 Exercise : Helloworld 강의를 정리함.

    IDA 실행 후 exe 파일 드래그 -> 바로 ok

    정적분석

    main함수를 찾기 위해 문자열 검색 (shift+F12) ->더블 클릭하여 따라감

    참조하는 함수 찾기 : 스트링 클릭 후 우클릭 -> List cross reference to... -> 해당 변수를 참조하는 모든 주소가 출력 됨.

    main함수를 찾았으면 디컴파일 F5

    *_acrt_iob_func 함수 : 스트림을 가져옴 , 인자로 1이 들어갈 경우 stdout, 0이면 stdin

    숫자를 문자로 변환 -> 숫자에 커서올리고 r  

    a dup(b) -> b 가 a번 반복됨

    data 주소에서 (Shift+E) -> hex string으로 export 가능 -> python의 bytes.fromhex사용해 bytes로 불러오기 이용

    xor은 교환,결합이 가능해서 양변에 같은 값을 연산 할 수 있다.

     

    GUI프로그램

    WinMain함수를 찾아야함

    윈도우를 생성할 때 사용하는 CreateWindowExW 함수를 찾으면 XRef를 통해 WinMain을 찾을 수 있음

    wcex.lpfnWndProc 윈도우의 메시지 처리를 위한 콜백 함수를 등록하는 것으로 윈도우를 생성하고 메시지를 처리할 때 여기에 등록한 함수를 사용하여 처리합니다.

    바이너리 패치 IDA view(assembly단)에서 상단 edit-Patch-assemble... 수정 후 edit- patch-patch apply patches ~~ 클릭

    동적분석

    중단점 설정 단축키 F2

    디버깅 시작, 프로그램을 계속 실행 F9 -> local windows debugger

    디버깅 중단 (Ctrl+F2)

    한 단계 실행 (Step Over) F8 : 함수 내부로는 진입 x

    함수 내부로 진입(Step Into) F7

    Continue F9

     

    디버깅은 mac이라 local debugger로 디버깅 불가능 원격 디버깅 설정 필요

    '해킹 > 리버싱 이론' 카테고리의 다른 글

    03 - x86 Assembly  (1) 2024.10.06
    02 - 컴퓨터 구조 / Window memory layout  (2) 2024.10.06
    01 - 리버싱  (2) 2024.10.06

    댓글

Designed by Tistory.