Write-up/Wargame
Abex Crack me #2.2
da1seun9
2020. 5. 1. 20:08
이전 차시에 했던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