우선 프로그램을 실행시키면 "I'm the starting nag Remove me" 라는 Nag창이 뜨고, 일정시간이 흐르면 메인화면처럼 보이는 창이 뜨게된다. 이 때 Register 버튼을 눌러도 아무런 반응이 없는 것을 확인할 수 있다. 그리고 Exit 버튼을 누르면 "I'm the closing nag remove me ~~~" 라는 Nag창이 뜬다. Register버튼을 누르면 인증이된 프로그램의 경우 Closing Nag창 없이 종료된다 뭐 그런문구를 확인할 수 있다. 그러나 우리는 인증과정없이 해당 Nag들을 제거해본다. 여기서 Tip !!! 맨날 내가 BreakPoint를 일일히 걸어가며 이 창이 어느 포인트에서 등장했는데 확인하던 과정을 "일시정지" 라는 간단한 기능을 통해 단번에 해결할..
PEiD를 통해 확인해 봤더니 해당 exe파일은 C#으로 만들어졌다는 것을 확인할 수 있다. 그래서 C# 디컴파일 도구를 사용해 디컴파일 했다. (dnspy, DotPeek) 키자마자 버튼 이벤트에대해서 나와서 바로 분석했다. 같이 첨부되어있던 account.dat 파일을 읽어와서 해당 내용을 Split 해준다. account.dat을 HxD를 사용해 내용을 확인해보자. 콜론(:) 을 구분자로 삼아 Split 하게 되면 strArray에는 strArray = { "guest", "7C685308952 ....", "01541" } strArray = { "admin", "A0F60D70FA ....", "31337" } 이 차례로 들어가게 된다. 근데 밑에 if문을 보니 admin에대해 처리를 해줘야 할..
Autohotkey로 만들어진 EXE파일은 기본적으로 디컴파일 방지를 위해 패스워드를 걸어 놓는다. 그래서 디컴파일을 할 때 이 패스워드를 같이 입력해 줘야 정상적으로 코드를 확인할 수 있다. (Decrypt Key) DecryptKey같은 경우 바이너리가 실행될 때 메모리상에서 평문형태로 존재하고있어 쉽게 찾을 수가 있다. 어느부분에서 찾을 수 있냐면 AutoHotKey를 복호화해주는 함수가 존재한다. (항상 이 문자열인지는 모르겠지만 우선 ">AUTOHOTKEY SCRIPT