목록전체 글 (420)
외로운 Nova의 작업실
- 문제인식 먼저 실행해보겠습니다. 3번째 remove me! 라고 되어있고 nagnag라고 있습니다. 이부분 메시지를 지우면 되는것 같습니다. - 크랙 설계 메시지를 만드는 함수를 call하는 부분을 찾아서 검증하고 없애줍니다. - 리버싱 근데 코드가 너무 간단합니다. - 크랙 nagnag 출력부분을 다 nop으로 만들어버립니다.
- 문제 인식 먼저 실행시켜보겠습니다. 아무래도 키젠프로그램들이니 1234로 키값을 넣어보겠습니다. 그랬더니 이렇게 뜹니다. 이렇게 안뜨고 정상실행하는게 목표인 것 같습니다. - 크랙 설계 먼저 문자열을 비교하는 함수가 무조건 있을 것입니다. strcmp, cmp 등등이 있을겁니다. 이를 어셈블리에서는 call 명령어로 함수를 불러낼 것입니다. 따라서 call 명령어를 검색해서 문자열을 비교하는 부분에 bp를 걸고 어떻게 비교하는지 알아내거나 비교후 점프문을 크랙해보도록 하겠습니다. - 리버싱 search for - all intermodular calls를 눌러 모든 call 하는 함수들을 검색합니다. 그럼 딱봐도 strcmp 함수가 보입니다. 여기에 bp를 걸고 F9로 run 해줍니다. 이후 1234..
- 브로드캐스트 리시버 브로드캐스트 리시버는 흔히 이벤트 모델로 실행되는 컴포넌트라고 정의합니다. 시스템에 어떤 이벤트가 발생하면 브로드캐스트 리시버를 실행해 앱이 해당상황에 맞게 동작할 수 있습니다. - 브로드캐스트 만들기 브로드캐스트 리시버는 BroadcastReciever를 상속받는 클래스를 선언해야합니다. 또한 브로드캐스트 리시버의 생명주기는 onRecevie() 하나뿐입니다. 따라서 이 함수를 override 해줍니다. class MyReceiver : BroadcastReceiver(){ override fun onRecevie(context: Context, intent: Intet){ } } 특히 onRecevie는 10초이내에 완료할 것을 권장함으로 오래걸리는 작업을 담기에는 부적절합니다..