ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lena 12강
    > Information Security/Reverse Engineering 2012. 4. 28. 16:28

    lena 12강

    @zrungee

     

     

     이번에 열어볼 파일은

     

     

    실행시켜보니 다음과 같은 창이 뜬다.

     

     

     

     

     

    비정식버전이고, 시리얼을 등록하는 형태일 것이다.

    이와같이

    어떤 프로그램인지는 모르나, 시리얼을 등록하는 형태는 다음과 같은 방식으로 패치할 수 있다.

    Search for > All referenced text strings > Search for text 에서 'registration' (혹은 regist)로 검색.

     

     

     

     

     

     

     

     

     

    registration에 관한 성공/실패문을 찾았다.

    첫번째. 해당 분기문으로 가서 JNZ를 NOP으로 바꾸어주는 방법과

     

     

     

     

    두번째. 델파이로 제작된 파일을 분석하는 방법이 있다.

     

     

     

    델파이로 제작된 파일은 점프문이 윗방향으로 역행하는 것이 특징이다.

    점프문 아래의 MOV를 통해 알아보도록 한다.

    Find reference to > Selected command에서

     

     

    표시된 부분으로 간 뒤,

     

     두 부분에 BP를 건다.

     

    델파이의 특징중 하나다. push + retn = jump

    이 상태에서 위로 쭉 올라가다보면

     

     

     

     

    와 같이 보인다. Key값은 Firtst Name과 Last Name의 형태로 나와있는 듯 하다.

    우리는 key값이 필요하므로 Key value를 이용할 것이다.

     

    이 두부분에 BP를 걸어주고,

     

     

     

    Ollydbg에서 재생.

     

     

     

     

     

     

     

    About > Use RegKey에서 다음과 같이 입력한다. 이때 Registration Key창에는 Fist와 Last에 입력한 값보다 길게 입력해준 뒤 Register버튼을 클릭. ( 그렇지 않으면 중간에 두번의 nop을 거쳐야 한다)

     

     

      

     

    이부분에서 걸린것을 확인할 수 있다.

    여기에서부터 F8로 하나씩 진행시키다 보면 어느순간 갑자기 다른곳으로 이동된 것이 보인다.

     

     

     

     

     

    이때는 키보드에서 [ - ] 키를 눌러주면,

    이부분으로 오게한 곳으로 되돌아 갈 수 있다.

     

     

      

     

    바로 이 CALL문이다.

    이부분에 BP를 걸고 nop처리. 

     

     

     

    다시 진행해주면

     

     

     

    다음과 같은 에러창에서 확인>Register을 눌러주면            LEA부분으로 분기한다.

     

     

     

     

    진행>진행>진행 을 눌러주면 문제없이 넘어오는 것을 확인할 수 있다.

    F8로 하나씩 트래싱하며 진행해주다가 역행문이 나오면 BP를 걸어주고 nop때리구 넘어간다. 

     

     

     

     

    에러문인데도 점프하지 않는 부분도 BP를 걸어준다.

     

     

    ZF를 1로 변경해주고 F8로 트래싱.

     

    JBE보다 JMP가 더 좋을것으로 판단된다.

    마찬가지로 이부분에도 BP를 걸어준다. 계속 트래싱.

     

     

      

     

    이부분도 BP

    점프하지 못하도록 ZF를 1로 변경.
    계속해서 트래싱하다보면 Key value가 나타난다.

     

     

    이 값을 Key value에 입력한 뒤 아까 BP를 걸었던 부분을 체크하며 패치한다.

    jnz나 jbe 같은 부분은 jmp로 나머지는 nop처리 후 저장한다.

     

     

     

     

    Registered ver.로 변경되었다.

     

     

    <레지스트리 삭제>

     

     

    실행 >' regedit '

     

     

     

     

    HKEY_CLASSES_ROOT 에서는 Teksched.asScripTest를 삭제

    HKEY_CURRENT_USER 에서는 Dean Software을 삭제.

     

     

    728x90
    반응형

    '> Information Security > Reverse Engineering' 카테고리의 다른 글

    NuMega SmartCheck  (0) 2012.04.08
    lena 9강  (0) 2012.04.08
    lena 8강  (0) 2012.04.08
    lordPE DELUX  (0) 2012.04.07
    W32dasm  (0) 2012.04.07
Designed by Tistory.