제목 : abex #1
목적 : 프로그램 내 분기를 파악하여 변형 시킨다.
파일명 : abexcm1.exe (첨부파일)
내부 로직 :
GetDriverType을 얻어와 해당 값을 감소 시키고
비교 값을 증가 시켜 결과를 나타나게 한다.
GetDriverType결과 값 감소, 감소 (결과값 -2) VS 비교값 증가, 증가, 증가 (3) -> 같을 경우 : success -> 다를 경우 : fail |
GetDriverType Return 값은 현재 '3'의 값을 Return 시키고 있다.
결론 적으로 '3' - '2' VS '3' = 같지 않음.
같지 않은 경우 -> Fail 창 보임
성공을 위해서는 Return 값이 '5'가 되어야 함.
입력 값 변환 Logic :
1. 분기문을 강제 수정(가장 많이 쓰인 방식 - naver상 검색 결과는 대부분 이 방식)
2. 해당 감소문 NOP 처리(여기서 사용한 방식)
-40101E 주소라인 NOP처리
-401023 주소 라인 NOP처리
사용 Tool : OllyDbg
난이도 : ★☆☆☆☆
-------------------------------------------------------------------------------
Debug 화면 Capture
1. 내부 Logic 점검 (8라인 부터 15번 라인)
![]() |
2. 해당 API 점검 (GetDriverType) (현재는 '3' Drive Fixed 값이 Return 됨 - 5가 Return 되어야 Success 가능)
![]() |
3. Return 값 수정이 어려운 관계로 감소 부분을 NOP 처리 시킴(9,13 라인)
![]() |
4. Success
![]() |
![]() |
댓글 없음:
댓글 쓰기