-
[Ghidra] stryker2k2's crackme 0x00 ~ 0x04프로그래밍/Reversing 2022. 4. 14. 14:55반응형
영상보고 공부시작
다운로드
https://github.com/Maijin/radare2-workshop-2015/tree/master/IOLI-crackme/bin-win32
1. 0x00
x64dbg로는 그냥 답이 바로 보인다.
하지만 이번엔 기드라 사용법을 알아보기 위해 시작
기드라의 코드브라우져로 열어줬다.
분석할때 이걸 체크하면 뭔가 편한가보다.
심볼트리로 메인함수로 들어간다.
mingw_crtstartup 더블클릭
메인함수 더블클릭
답이 바로나오네..
기드라 무섭다.. 와우..
헥스코드를 바로 디컴파일하네.. 신기하다..
영상에서는 printf인지 scanf인지 분석이 안되서 L버튼을 눌러 해당이름으로 변경해주었는데
실제로 해보니 printf scanf strcmp까지 알아서 분석이 됐다..
원하는 변수나 함수에서 휠버튼을 클릭하면 동일한 부분이 표시된다.
L을 눌러 rename가능
한글도 입력가능하다 다만 L을 누르려면 다시 영어로 입력해야되서 귀찮다...
여기서 바로 수정하는 방법은 없을까?
수정은 가능했는데 이 수정한 파일을 저장방법을 아직 모르겠음..
2. 0x01
외관상 동일
1번예제에서는 %s로 받았는데 이번엔 %d로 받았다.
List창에서 바꿔 놓으면 편하게 볼 수 있었다.
3. 0x02
이것도 외관상 동일
다만 이번엔 스택에 저장된 값이라 확인할 수 없었다.. 그런데 디컴파일에는 뜬다 ㅋㅋ
4. 0x03
이미 정답은 0x52b24라고 나와있지만
이번엔 함수를 불러오니 궁금하니까 함수로 들어가본다.
(만약 잘못들어간경우 alt + 왼쪽화살표로 나올 수 있음.)
정답확인 부분을 string 검색을 못하게 _shift라는 함수를 쓴거같다.
shift를 또 들어가본다.
영상에선 strlen이 뭔지 모르게 나와있어서 sVarl부분 선언이 size_t로 되어있기 때문에 무슨 함수를 썼는지 때려맞춘다.
각각의 글자에 -3을 더해서 출력한다는 점을 알수 있는데
이걸 간단하게 볼 수 있는 방법은 사이버 쉐프를 이용
https://gchq.github.io/CyberChef/
arithmetic / logic에서 sub를 끌어서 레시피에 넣고 decimal로 바꾼 뒤 3을 입력해줬다..
잘못입력해도 귀신같이 알아서 구워준다 ㅋㅋㅋ
와.. 이런사이트가 있네.. ㅋㅋㅋ
나중에 보기 편하게 주석을 달아줄수도 있다.
plate comment는 헥스코드 부분에 달아지고 precomment는 디컴파일부분에 생김
5. 0x04
이번엔 %s로 받아서 check함수로 내가 쓴 값을 비교하나보다.
영상에서 sscanf를 어렵게 찾았는데... 뭐 얘가 알아서 찾아놨다..
합이 0xf면 정답
Ghidra를 사용하면 어셈블리어를 잘 못해도 소스분석만 잘하면 할만하겠는데 ..?
반응형'프로그래밍 > Reversing' 카테고리의 다른 글
10. [레나 튜토리얼] 04 (319) 2022.04.17 9. [레나 튜토리얼] 03 (654) 2022.04.14 8. [reversing.kr] Easy Unpack me (311) 2022.04.13 7. [reversing.kr] Music Player (313) 2022.04.13 6. [reversing.kr] Easy Keygen (316) 2022.04.12