Reversing26 [CodeEngn] Basic RCE L15 Name이 CodeEngn일 때 Serial을 구하라고 한다. 그러면 Name이 달라질 때마다 Serial이 달라지는 것일까 ?? 실행해보면 이렇게 Name과 Serial 입력창이 뜬다. 이제 디버거에 넣어보자 실패나 성공 창 부분을 찾기 위해서 [Search for] - [All referenced text strings]를 해보자 그랬더니 바로 원하는 부분이 나왔다. Try Again!을 더블클릭해서 들어가보자 조금 위로 올리면 Serial을 비교하는 CMP 부분을 확인할 수 있다. 종단점 설정해주고 다시 시작해주었다. 창이 뜨면 위와 같이 입력해주었는데 CMP 명령어 줄을 보면 EAX와 4588F8 주소 부분을 비교하는 것을 볼 수 있었다. 그래서 레지스터 창에 EAX 부분을 계산기에 넣어봤더니, .. 2021. 2. 24. [CodeEngn] Basic RCE L09 StolenByte를 구하라고 한다. 그게 뭐지?? muhan56.tistory.com/80 StolenByte StolenByte는 패커가 위치를 이동시킨 코드로써 보호된 프로그램의 코드의 윗부분(보통은 엔트리 포인트의 몇 개의 명령어) 이다. 이 부분의 명령어는 이동된 곳 이나 할당 받은 메모리 공간에서 muhan56.tistory.com 블로그 글을 봤는데 잘 모르겠다. +) 패킹된 바이너리의 언팩을 방해하기 위해 일부 명령어를 조작하는 것 (안티 디버깅의 일종) 일단 디버거에 얹어보자 PUSHAD가 있고 한 줄씩 디버깅이 되지 않는 것으로 보아 패킹되어있는 것 같다. Exeinfo PE 프로그램을 사용해서 어떤 방식으로 패킹되어있는지 살펴보자 UPX로 패킹 되어 있는 것을 확인할 수 있었다. UP.. 2021. 2. 23. [CodeEngn] Basic RCE L04 디버거 프로그램을 탐지하는 기능을 가지고 있고, 디버거르르 탐지하는 함수의 이름은 무엇이냐고 물어보고 있다. 잘 모르겠으니 일단 실행 먼저 해 보았다. ping을 쏘는 것처럼 계속 정상이라는 문구가 cmd 창에 계속 나타났다. 디버거에 한번 올려보자 디버거에서 한 줄씩 디버깅을 해 보았다. 그랬더니 종단점 지정해준 부분에서 디버깅 당함 이라는 문구가 계속 출력되었다. f7로 진입해보았는데 JMP 명령어만 있었고, f8로 실행하니 이곳으로 이동했고 디버거를 탐지하는 함수를 찾을 수 있었다. auth key is IsDebuggerPresent 성공! 2021. 2. 22. [Reversing 개념] 안티 디버깅 (Anti Debugging) 안티 디버깅 (Anti Debugging) 이란? 디버깅의 반대말로 유추할 수 있는데, 디버깅을 하지 못하도록 해서 분석을 어렵게 만드는 기술이다. 안티 디버깅을 우회하기 위해서 다양한 안티 디버깅 기법들을 공부할 필요가 있다. 안티 디버깅 종류 1) static 정적으로 디버깅을 막는 것 디버깅 시작할 때 한 번만 해체를 해주면 된다. 디버거에 올리면 제대로 실행이 되지 않는 대신 static 기법을 해체하면 디버거에 정상적으로 실행이 된다. 2) dynamic 동적으로 디버깅을 막는 것 디버깅을 진행하며 수시로 해체를 해야 한다. 디버거에 올려지지만, 디버거에서 한 줄씩 디버깅 하는 것을 방해해서 원본 프로그램의 코드와 데이터를 확인할 수 없게 만든다. 참고) oopsys.tistory.com/180.. 2021. 2. 22. 이전 1 2 3 4 5 6 7 다음 728x90