[dreamhack] patch

chwrld·2023년 9월 4일
0

dreamhack

목록 보기
8/19

https://dreamhack.io/wargame/challenges/49/

  1. 메시지 콜백 함수를 찾는다.
  2. BeginPaint 와 EndPaint 사이에 있는 sub_140002C40() 함수
  3. 그리는 함수가 많이 있는데 어떤 것이 선을 그리는지 알아낸다.
  4. 제일 첫번째 함수 sub_140002B80() 내부를 살펴본다.
    -> 선을 한번만 그린다.
  5. 똑같은 함수들이 중복된다. 그 다음 함수인 sub_1400017A0() 내부를 살펴본다.
    -> 선을 여러개 그린다.
    = = > 선을 한번만 그리는 2B80 함수가 글자를 가리는 함수라고 예측할 수 있다.
  6. 첫번째 2B80함수에 BP(BreakPoint)를 걸고 디버깅(F9)을 실행한다.
  7. F8 (Step Over)를 누르며 Alt+Tab 으로 프로그램 진행 상황을 확인한다.
  8. 선이 하나씩 그려지는 것이 확인된다. 이것을 못 그리게 패치해야한다.
  9. 2B80 함수 주소 (7FF784272B80 디버깅 해서 바뀐건지 원래 이 주소인지 모르겠다)로 g를 누르고 이동한다.
  10. 첫번째 어셈블리어을 클릭하고 Edit -> Patch Program -> Assemble -> ret 을 입력한다.
  11. UI가 변경되는데 신경쓰지 않아도 된다. Edit -> Patch Program -> Apply patches to input file 메뉴를 클릭한다.
  12. ok를 누른다.
  13. 프로그램을 다시 실행한다. FLAG를 획득했다.

profile
BoB 13th 최강포린이👮

0개의 댓글