Technical Docs/Reversing (5) 썸네일형 리스트형 crackemes.one - 5 최근에 업무 및 귀차느즘으로 인해 문제를 못풀고이 문제도 내가 못풀어서 그런지 엄청난 노가다를 통해 풀었다. 아오 짜증 -_-;; 근데 어쩌나 코드분석이 안되는걸...근데 노가다로 푼다고 뭔가 실력이 느는지? 는 잘모르겠다. 각설하고 시작해보자 오늘 문제는 난이도 2.0 짜리 문제다. Small Horse 작은말? 뭔소린지 모르겠다. 무튼 시작해보자(https://crackmes.one/crackme/669145bc90c4c2830c82081e) 이문제도 압축을 해제하고 나면 쏘 씸플하다. 패스워드를 입력하고 맞는지 아닌지 푸는 문제다 해당 파일을 ida를 통해 메인을 한번보자int __cdecl main(int argc, const char **argv, const char **envp){ FILE.. 뚜봄뚜봄 2024. 8. 5. 18:38 Crackmes.one - 4 오늘도 2.0 짜리 문제를 풀어봅시다. 문제를 열면 매번 비슷합니다. 키, 패스워드 등을 입력하라고 하고 내가 입력한 값이 맞으면 Correct, 틀리면 Wrong를 뱉는 방식이죵... 그러면은 IDA를 열어서 해당 문자열을 검색해봅시다. 바로 검색이됩니다!if(v!19)에서 걸리고, v19는 sub_140001290 요 함수를 호출합니다.그러면 우리는 눈치 9단이니까 대충 내 문자열을 정답과 처리하는곳이 sub_140001290 여기인거같군요. 그전에 위에서부터 한번 메인함수를 쭉 읽어봅시다. 근데 이부분은 저도 때려맞춘거라 왜 저부분이 문자열 길이인지 모르겠다능... v11이 문자열길이인데 그걸 벗어나면 invalid 쪽으로 넘어가더라구용... 그래서 대충 아 문자열 10자리구나.. 라고 생각합니.. 뚜봄뚜봄 2024. 7. 24. 18:56 Crackmes.one - 3 오늘은 문제를 같이 풀 사람이 있어서 난이도를 2로 설정했다. 뚜둔..(https://crackmes.one/crackme/66685b79e7b35c09bb266b96) 요놈인데 대충 실행하면 이런식으로 키를 집어넣는 부분이 나오고 내가 입력한 값에 따라서 맞췄는지 아닌지를 알려주는거같다. 지금까지의 문제들과 크게 다르지 않다. 다른부분은 GUI 작업이 되어있다는거...? 그래서 아무 문자나 입력하면 아래와 같이 뜨는걸 확인할 수 있다. 그리고 문제에 작성되어 있지만 Simple Antidbg 기법이 적용되어있다. 그래서 해당 프로그램을 단독으로 실행시켜야 동작하고 IDA에 프로그램 올려둔채로 실행시키면 그냥 꺼진다.물론 IDA 통해서 디버깅 실행해도 꺼진다. 그러면 우선 정적으로 프로그램을 분석해보자... 뚜봄뚜봄 2024. 7. 22. 18:39 Crackemes.one - 2 어제 같은 난이도 1단계를 풀다보니 똑같은 유형? 의 문제라서 그냥 넘겼다. 그래서 사실 세번째푸는거임!오늘의 문제는 따단.(링크 : https://crackmes.one/crackme/6655839ae7b35c09bb266464) 요거다 난이도는 1.5 나같은 초보에게 아주 적절하다. 그럼 문제 풀이를 시작해보자. 문제에는 패치가 필요하다고 나온다. 우선 참고만 해두자. 프로그램을 키면 이전과 비슷하게 패스워드를 입력하는 창이뜨고 리버싱을 통해 패스워드를 유추하거나 뭔가 패치를 통해 맞았습니다.가 뜨도록 해야하는 문제로 보인다. 아이다를 통해 해당 프로그램 메인 함수를 디컴파일 해주면 난이도 1.0 짜리 문제와 대충 유사한 모습을 확인할 수 있다. 대충 코드를 보면 반복문을 통해 패스워드를 입력하며 .. 뚜봄뚜봄 2024. 7. 19. 22:22 Crackmes.one - 1 리버싱 공부를 이제 시작하며 Crackmes.one 에 존재하는 많은 문제를 풀어보자. 해서 블로그에 남긴다.물론 처음이니까 쉬운거부터 언젠가 높은 난이도도 풀 수 있지 않을까? 싶음 두둥.. 첫문제 딴거 없고 그냥 어려움이 1.0 이라 선택했다. 워후.. 다운받아서 실행시키면 패스워드를 입력하라는 창이뜬다. 단순 입력으로 Correct / Wrong 를 구분하는 문제로 보인다. Ida를 켜서 살펴보자.. 했는데 답이 바로보인다. 이건 난이도 1.0 중에서도 가장쉬운축에 속하는 문제같다. 와우 대충 cout을 통해 Enter password: 를 하고 cin을 통해 사용자 입력을 받아서 특정 처리를 하는 문제인거같다. 사실 디컴파일할 필요도 없지만 디컴파일 하면 너무 명확하다. 사용자 입력받은걸 st.. 뚜봄뚜봄 2024. 7. 17. 18:40 이전 1 다음