이전 차시에 했던Abex Crackme #2 문제를 다른 방법으로 풀어보았다
이렇게 떴었는데
이번에는 조건분기문을 고쳐서 프로그램을 패치까지 해보겠다.
먼저 정상적으로 작동할 때 나오는 문자열을 찾아 브레이크 포인트를 걸어둔다
그 이후에 je 분기문을 바꾸면 된다
je는 (jump if equal)로써 값이 같을경우에 해당하는 데 ZF(zero Flag)가 1일때 동작한다
그전에 현재의 흐름을 알아야 하는데 계속 Wrong Error가 뜨는 이유가 TEST ax,ax에서 연산 후 비교를 했을 때(Test는 AND 연산을 한다. 해서 결과가 0이 나오면 ZF=1이 됌)
두 값이 같아서 0으로 결과값이 도출되어 je분기문의 원리에따라 주소가 403408로 이동이 되고 Error가 뜨는 것이다
그러므로 JE구문을 JNE로 바꾸면 된다
그 후에 Ctrl + P를 눌러 파일 패치를 한다
그러면 어떤 동작을 하든 정상실행이 되는 Crack me 패치판 프로그램이 만들어진다
바뀐 프로그램이다
clear
'Write-up > Wargame' 카테고리의 다른 글
[Dreamhack wargame] Quiz: x86 Assembly 1 풀이 (2) | 2022.09.25 |
---|---|
Abex's Crackme #4 (1) | 2021.04.27 |
Abex Crackme #3 (1) | 2020.09.19 |
Abex Crack me #2.1 (0) | 2020.05.01 |
Abex Crack me #1 (0) | 2020.04.30 |