ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Garbage Code
    Hack/Reversing 2015. 2. 25. 20:44

    Garbage Code는 말그대로 쓰레기 코드이다.


    리버싱하는데 리버서들에게 혼란을 주기위해 넣는 코드로, 아무의미없는 코드로 되어있다.


    push eax

    push ebx

    push ecx

    pop ecx

    pop ebx

    pop eax


    해당 코드는 아무의미없는 코드이다.

    단지 eax와 ebx, ecx값을 푸쉬하고 결국엔 다시 꺼내온다.


    그냥 왔다갔다 시키는 코드인데, 이 사이에 mov 코드를 숨겨놓으면 리버서들은 더욱 힘들어진다.


    push eax

    mov eax,0x18

    mov eax,ebx

    push ebx

    xor eax, eax

    mov ebx,ecx

    mov eax,ebx

    push ecx

    mov ecx,0x37

    pop ecx

    pop ebx

    pop eax


    첫번쨰 코드와 다른게없다


    모든 레지스터들은 디폴트값을 가진다.


    코드를 분석해보면 eax에 0x18을 넣지만 결국 ebx 즉, 빈값을 eax에 다시 넣어 초기화시킨다

    그 밑에서도 ebx는 ecx로 초기화시킨다. 이런식으로 가비지코드와 동반하면 리버서들은 혼란을 겪는다.


    이번엔 진짜 코드와 가짜 코드를 섞어본다.


    저 코드 사이사이에  IsDebuggerPresent 거셈을 넣어두면 리버서들은 4줄을 여러줄로 힘들게 알아차리게된다.

    수준있는 리버서가 아니라면 그 코드를 그냥 넘겨버릴수도있게된다.


    프로그래머들은 해커에게 정보를 노출하고싶지않을 때 해당 방법을 사용하면 해커에게 조그만한 혼란을 줄수있으니 유용하게 사용하길 바란다



    'Hack > Reversing' 카테고리의 다른 글

    [CodeEngn]Level 3  (0) 2015.02.26
    [CodeEngn]Level2  (0) 2015.02.26
    Hot Patching  (0) 2015.02.25
    DLL with notepad  (0) 2015.02.23
    ELF Header 문서  (0) 2015.02.15

    댓글

Designed by Tistory.