- Today
- Total
Phantom
ReversingKr KeygenMe Find the Name when the Serial is 5B134977135E7D13 압축을 풀고 ReadMe.txt를 열면 저 문장이 나온다. 시리얼값은 찾은 듯 하고 이제 파일에 대한 분석을 해야겠다. 이번도 역시 C++로 짜여져 있다. 실행을 하면 다음과 같이 나온다. 맞지 않은 Name을 입력해서 그런지 Wrong이라는 메시지를 출력하고 프로그램은 종료 됐다. 이번도 역시 Wrong이라는 문자열을 추적해서 문제를 푸는 쪽으로 가봐야겠다. 역시나 분기문이 존재 했다. 입력 함수를 찾고 거기에 BP를 걸고 트레이싱을 한다. 이것이 XOR 루프인데 여기서 스트링을 XOR시켜버린다. 맨 아래부분은 문자열의 길이를 비교하고 JMP시키는 명령이다. 문자열의 길이는 루..
음.... 나는 리버싱을 다시만지는 것은 참 오랜만이다. 많은 정보를 듣고 머리로 저장만해두고 사용해본적이 오랜만이라는것 또한 같다. 그리고 나는 포너블과 취약점 분석을 더 잘하기 위해 리버싱을 시작했다. 시원포럼에 다녀와서 느낀것을 가지고 리버싱을 시작했다. 첫 문제는 Easy_CrackMe이다. 프로그램을 실행하면 막연히 이렇게 나온다. 저곳에 값을 넣고 확인을 누르면 이렇게 나온다. 이제 분석을 시작해보자. 우선 PEID로 본 결과 C++로 짜여진 것을 알 수 있다. 이뮤니티로 위에서 출력된 Incorrect Password를 찾아보자 위에 스트링 값을 추적해보면 분기가 존재하게 된다. 위로 올라가서 분기문을 추적해보자. 입력함수 아래서부터 비교값과 루프가 존재한다. 그리고 루프가 끝나는 지점에서 ..
개요 이번 문제는 ROP문제 3대장중 2번째인 nuclear다. 저번 ropasaurusrex가 아주 심플한 ROP였다면 이번 문제는 함수Libc를 leak해야 한다. 문제 내용 및 분석 1129 port로 연결하고 accept후 fork가 되면 subroutine으로 이동하게 된다. 로컬의 THIS_IS_NOT_KEY_JUST_PASSCODE를 stream에 저장하고 fread로 s에 읽어온다. 각 명령어를 입력하고 target을 입력하면 Latitude/Longitude를 입력한다. 여기서 이 else문을 이용하여 v5, v4를 지나서 char s에 있는 pascode를 leak한다. 그리고 launch와 leak한 passcode를 입력하여 thread를 생성하고 newthreadroutine()으..