리버스엔지니어링 2

Abex Crack me #2.2

이전 차시에 했던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구..

Write-up/Wargame 2020.05.01

Abex Crack me #2.1

기본적으로 한 프로그램이 주어진다 간단히 프로그램의 작동이 어떤지 알아보기 위해서 Name과 Serial을 채워 넣었다 check버튼을 누르자 마자 Serial이 틀렸다고 나온다 하지만 그 어떤 값을 넣어도 다 틀리다고 나오니까 여기서 시간낭비는 하지 말자 오늘도 x64dbg로 이 프로그램을 다 파헤쳐보겠다. 오늘은 거의 모든 인터페이스를 다 볼 거다 F9를 누르면 함수의 시작주소가 401238로 나온다 우선 아까 우리가 봤던 Error창에 뜨던 문자열중 하나인 Wrong을 찾아보자 어셈블리코드 창에서 마우스 오른쪽 >> 다음을 찾기 >> 모든 모듈 >> 문자열 참조를 누르면 이런 창이 뜨는데 검색창에 wrong을 쓰면 된다 더블클릭을 하면 그 주소 어셈블리 코드로 바로 간다 이번에도 빨간 박스 안에 j..

Write-up/Wargame 2020.05.01