Lena12 [Lena] Lena Tutorial 20 뭐가 문제인 거지? 이거부터 혼란스럽다. 구글링 해서 뭘 해야 되는 지 찾았다. 앱을 클릭하면 언패킹 하고 싶으면 튜토리얼을 작성하라고 한다 :) 패킹(실행 압축)은 실행 파일의 코드를 압축하는 행위이고 그렇게 압축된 코드를 해제하는 것이 언패킹이다. 패킹은 일반적으로 흔히 알고 있는 압축과 달리 있는 그대로 일반 프로그램처럼 실행이 가능하다. 패킹은 데이터 압축의 목적 혹은 악성 코드에서 작은 용량으로도 빠르게 많이 퍼지게 하여, 분석이 불가능 하게끔 만드는 목적으로 사용된다. 패킹의 기본 원리는 패킹 프로그램이 실행되는 어느 시점에서는 압축되기 전 상태로 돌아가야 하며, 그때 메모리 상태를 Dump(메모리 내용을 그대로 파일로 저장)하고, EP를 압축하기 전 위치로 설정해주는 것이다.' EP(Entr.. 2023. 5. 16. [Lena] Lena Tutorial 19 이건 이뮤니티 디버거를 써서 그런 지 아무 문제가 없다. 그래서 ReverseMe.A를 패치해 볼 것이다. 해당 앱을 클릭하면 내가 해냈다며 축하한다고 한다. 그런데 이뮤니티 디버거에서 실행하면 키 파일이 유효하지 않다는 알림 창이 뜬다. 디버거에서 실행해도 앱을 클릭해서 실행했을 때랑 같은 알림 창이 뜨도록 패치할 것이다. 문자열을 찾아서 해당 주소로 이동해봤다. 004010FB에 있는 IsDebuggerPresent 함수는 004010D3에서 004010FB를 호출하면서 호출된다. 이 함수가 디버거 프로그램이 실행되면 Keyfile이 맞더라도 올바르지 않다고 출력하고 있다. 해당 함수는 디버깅 중이라면 0을 리턴하고 아니라면 1을 반환한다. 따라서 디버깅 중이라면 분기하는 부분인 00401103을 N.. 2023. 5. 16. [Lena] Lena Tutorial 18 프로그램을 실행하면 2byte 패치를 통해 nag 창을 없애라고 한다. 프로그램 실행 시 두 번째 창만 나오도록 패치해야 될 것 같다. 이뮤니티 디버거로 프로그램을 뜨면 바로 프로그램 실행 시에 뜨는 팝업창 메시지가 보인다. Messagebox로 생각되는 4012BD에 직접 BP를 걸고 실행해 봤더니 예상과 다르게 BP에 걸리지 않고 nag 창이 실행이 된다. 이 코드들은 실제로 동작하지 않고 분석을 방해할 목적으로 들어있는 코드로 추측된다. 해당 코드에서 조금 위로 올라갔더니 호출 함수가 두 개 있었다. 먼저 0040130F부터 살펴 봤다. 00401000번지를 EAX에 받아온 후, 이 값을 점차 증가시키면서 1byte씩 5A와 XOR 연산하고있다. USER32.BeginPaint의 값인 0040121.. 2023. 5. 10. [Lena] Lena Tutorial 16 Movie Gear 프로그램을 설치한다. 프로그램을 실행하고 Help를 보면 Register Now...과 About GIF Movie Gear...이 있다. 이번에도 등록을 시켜야 되는 문제인가 보다. About GIF Movie Gear...을 클릭하면 평가판 소프트웨어라고 알려주는 팝업 창이 뜬다. Register Now...에서 Name과 Code에 임의의 값을 입력하면 유효하지 않은 값이라는 팝업 창이 뜬다. 이뮤니티 디버거에서 F9를 눌러 프로그램을 실행시키고, nag 창이 뜨면 F12로 중지시켰다. 그리고 Alt + K를 눌러 Call stack을 살펴봤다. call from에 해당하는 함수 이름이 movgear이므로 DialogBoxParamA 함수를 실행하는 곳이 nag 창을 실행하는 것.. 2023. 5. 10. [Lena] Lena Tutorial 14 프로그램을 실행하면 이런 화면이 뜬다. Enter Reg.Code를 클릭하면 등록 정보를 입력할 수 있다. 임의의 값을 넣었더니 역시나 안 된다. 등록 관련 문자열을 찾았다. 코드 상단으로 이동할 때 4,3,1,2 순서로 배치되어 있으며 각각 인증 성공(Thank you …code), 인증 실패(The regist…mistake), setTimer, KillTimer가 정의되어 있다. 위 4개에 BP를 설정하고 실행해보면 CMP EAX, 2 부분이 인증 절차가 시작되기 전에 기본적으로 실행되는 부분임을 알 수 있다. 따라서 인증 성공을 정의하는 CMP EAX,4가 가장 먼저 실행되도록 2와 4의 위치를 바꾼다. 2와 4의 위치를 바꿨더니 프로그램 실행 시 인증 성공 루틴으로 간다. 끝 ~.~ 참고 htt.. 2023. 5. 4. [Lena] Lena Tutorial 13 설치 파일을 다운로드 하고 실행하면 이런 화면이 뜬다. About을 클릭하면 라이센스가 등록되지 않았다고 한다. 임의의 값을 입력하면 역시나 유효하지 않은 코드라고 한다. 이뮤니티 디버거에서 register 관련 문자열을 찾았다. 등록에 성공하면 해당 문자열이 뜨는 것으로 추정된다. 해당 위치에 들어가보니 좀 위에 유효하지 않다는 문자열이 있다. 0041749C를 JMP로 바꿔서 여길 무조건 뛰어넘도록 해봤다. 그 후 사용자 등록을 하면 등록에 성공했다는 알림 창이 뜬다. 그러나 여전히 About에선 등록이 안 됐다고 한다. 따라서 이것도 패치해 줘야 한다. 등록이 안 됐다는 문자열이 있는 위치에 가보면 바로 위에 등록이 됐다는 문자열이 있다. 이게 나오도록 00401499를 JE에서 JNE로 변경했다... 2023. 5. 3. [Lena] Lena Tutorial 12 프로그램을 실행하면 이런 화면이 뜬다. Help > About을 클릭하니 Unregisted Version이라고 한다. Use Reg Key를 클릭하여 임의의 값을 넣었더니 유효하지 않은 값이라고 한다. 이뮤니티 디버거에서 등록 관련 문자열을 찾아서 해당 위치로 이동했다. 해당 위치 바로 위에 JNZ가 있어서 이 문구를 뛰어넘고자 했다. JNZ를 JE로 바꾸고 다시 실행해봤으나 딱히 성과가 없었다. 그래서 더 위로 이동해봤더니 CALL 다음에 바로 RETN이 있었다. 아!!!진짜수상해 해당 부분에 BP를 설정하고 실행해 보면 오류 창이 뜨고 BP에서 멈추지 않는다. 이 CALL 함수를 NOP 처리해야 될 것 같다. 004A5461을 보면 CALL에서 ntdll로 이동하는 것을 볼 수 있다. 이걸 NOP .. 2023. 4. 27. [Lena] Lena Tutorial 11 문제를 실행하면 이런 팝업 창이 뜬다. 여기서 Next 버튼을 클릭하면 프로그램이 실행되긴 하는데 후에 이뮤니티 디버거에서 제대로 리버싱을 진행할 수 없으므로 꼭 제대로 다운 받은 뒤에 진행해야 한다. 처음에 이걸 몰라서 엄청 당황했다. 프로그램을 실행하면 이런 화면이 뜬다. show를 클릭했을 때 보이는 이미지가 엄청 귀엽다! Desk > Select를 클릭하면 등록이 되어 있지 않다고 한다. Register 버튼을 클릭했다. Password에 임의의 값을 넣어 보면 역시나 유효하지 않다고 한다. Password를 찾거나 등록을 무시하도록 해야 겠다고 추측했다. 이뮤니티 디버거에서 등록 관련 문자열을 찾아서 해당 위치로 이동했다. 캡처는 없지만 004046E4에 TEST AL, AL 명령어가 있다. 이.. 2023. 4. 27. [Lena] Lena Tutorial 10 10번 문제는 문제가 두 가지이다. 첫 번째 문제를 실행하면 모든 Nag를 없애고 올바른 등록 코드를 찾으라고 한다. 아무 Regcode나 입력하면 역시나 틀렸다고 한다. 이뮤니티 디버거에서 등록 성공 관련 텍스트를 검색했다. 해당 위치에 가 보니 위쪽에 너무 수상하게 등록 코드 같은 게 있었다. . 혹시나 하고 입력해 봤는데 등록에 성공했다. 9번 문제랑 비슷한 느낌! 두 번째 문제를 실행해 보면 Register 버튼이 비활성화 되어 있다. 그리고 About을 클릭하면 다른 툴을 사용해서 시리얼을 낚으라고 한다. 이뮤니티 디버거에서 Register과 관련된 문자열을 찾았다. 크랙에 성공하면 해당 문자열이 나올 것 같다. Why did it take so long? ... 문자열이 약간 좀 짜증남 그리고.. 2023. 4. 27. [Lena] Lena Tutorial 09 프로그램을 설치하고 실행하면 라이센스를 구매하고 인증하라고 한다. 시리얼 넘버를 찾아야 되는 문제 같다. 시리얼 넘버라길래 -가 들어가지 않을까 싶어서 이뮤니티 디버거에서 -를 텍스트 검색했더니 시리얼 넘버 같은 게 보였다. 시리얼 넘버로 추정되는 문자열을 입력해봤다. 인증에 성공했다... 이렇게 풀면 안 되는 것 같으므로 추후에 다른 방법으로 다시 풀어봐야겠다. 2023. 4. 5. [Lena] Lena Tutorial 08 파일을 설치해줬다. 프로그램을 설치 후 실행해보면 등록되지 않았으니 등록하라는 내용의 팝업이 뜬다. 프로그램 생긴 것 땜에 잘못된 건가 하고 좀 당황했다 프로그램 상단에 있는 ?을 클릭해 키 코드를 등록할 수 있다. 아무 값이나 입력하면 유효하지 않은 키라는 팝업 창이 뜬다. 이를 패치시켜야 하는 것 같다. 텍스트를 검색해 해당 주소인 0043860E로 이동했다. 0043860E 앞 쪽에 JE가 두 개가 있길래 이전과 비슷한 문제인 줄 알고 JE를 모두 무조건 점프하도록 JMP로 수정해봤으나 패치되지 않았다. 좀 더 위로 올라가봤다. JE를 하나 더 발견할 수 있었다. 00438601은 "Invalid Key!"를 출력하는 부분의 주소로 위 JE를 통해서 이 부분으로 이동하는 것 같다. JE는 값이 같으.. 2023. 4. 5. [Lena] Lena Tutorial 07 프로그램 실행 후 이것저것 눌러봤다. About을 클릭하면 License를 입력할 수 있다. 아무거나 입력해 봤다. 유효하지 않으니 다시 입력하라는 알림 창이 뜬다. 이번 문제는 License를 인증되게 해야 되는 것 같다. 이뮤니티 디버거로 열어서 우클릭 -> Search for -> All referenced text strings (새 창) 우클릭 -> Search for text 후 메시지 내용을 검색했다. 004299BD에 있는 것을 알 수 있었다. 더블 클릭해서 주소로 이동했다. 004299BD 위에 분기 구문인 JNZ가 있다. JNZ가 실행되지 않으면 유효하지 않다는 메시지가 뜨는 것으로 추측된다. JNZ를 JMP로 바꿨다. 패치된 것을 확인하기 위해 우클릭 -> Copy to executa.. 2023. 4. 5. 이전 1 다음