본문 바로가기
728x90
반응형

리버싱105

ANGR 차세대 바이너리 분석 프레임워크 프로젝트. 최근 몇 년 간 각종 CTF 대회에서 SMT-Solver 혹은 ANGR을 이용해 풀도록 하는 문제가 출제되고 있다(google ctf 등). 파이썬으로 작성된 툴이고 windows, linux 등 다양한 OS를 지원. 공부해야 할 필요성을 느낀다. 2016. 6. 6.
how to install ANGR on Linux 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 sudo apt-get install python-dev libffi-dev build-essential virtualenvwrapper mkdir ~/.environments sudo find / -name "virtualenvwrapper.sh" 나온 path 값을 복사하여 아래 [path]에 넣어준다. echo source [path] >> ~/.bashrc echo export WORKON_HOME="~/.environments" >> ~/.bashrc source ~/.bashrc mkvirtualenv angr && pip install angr Colored by Color Scripter cs mkvirtualenv.. 2016. 6. 1.
코드엔진 Advance 09 Challenges : Advance 09 Author : MulleDK13 Korean : Password는 무엇인가 English : What the Password http://www.codeengn.com/challenges/advance/09 주어진 파일을 실행하면 Username과 Password를 입력받고, 둘 다 맞으면 정답임을 출력하는 간단한 문제이다. 우선 아무 생각없이 디버깅 하고 있었는데 EAX에 7B가 들어갔음을 확인할 수 있었다.7B는 내가 Password로 입력한 123의 16진수 값이다. ㅋㅋ그리고 비교 하는 값은 88228F이다. 그 뒤에 Username을 비교하는 루틴을 발견할 수 있다. 7, 8번 문제들에 비해 쉬운 느낌의 9번 문제였다. 2016. 4. 12.
코드엔진 Advance 08 Challenges : Advance 08 Author : WarRock Korean : Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가 힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) English : What is Name when the Key is 5D88-53B4-52A87D27-1D0D-5B09 Hint : The name is 2 letters and it could be either alphabetic or numeric. Verify your solution with the MD5 value of the Name(in CAPITALS). http://www.codeengn.com/.. 2016. 4. 12.
코드엔진 Advance 07 Challenges : Advance 07 Author : HMX0101 Korean : Name이 CodeEngn일때 Serial은 28BF522F-A5BE61D1-XXXXXXXX 이다. XXXXXXXX 를 구하시오 English : When the Name is CodeEngn, the Serial is 28BF522F-A5BE61D1-XXXXXXXX. Find XXXXXXXX http://www.codeengn.com/challenges/advance/07 참 ㅈ같은 문제였다. C#으로 된 파일이다. 당연히 C#이니까 디컴파일이 될 것이고, 코드 분석 후에 간단히 풀릴 줄 알았다. 우선은 CodeEngn에서 기본적으로 키 값을 대다수 알려준다. 간단한 코드라 분석해보면 알겠지만, XXXXXXX에는 .. 2016. 4. 12.
PE 섹션 헤더 추가할 때 고려해야할 점들 섹션 추가하려는 것 자체가 PE에 대해 어느정도 알고 있다는 것이기 때문에 각 멤버들이 의미하는 것들에 대한 설명은 생략. Section AlignmentFile Alignment 우선 모든 기준이 되는 위의 두 가지. Virtual Size, RVA, Size of Raw Data, Pointer to Raw Data, Size of Image 그리고 윗 것들 모두 Alignment의 배수가 되어야 함. Section Alignment : Virtual Size, RVA, Size of ImageFile Alignment : Size of Raw Data, Pointer to Raw Data ImageNTHeader.OptionalHeader.SizeOfImage = ImageSectionHeaders.. 2015. 7. 21.
코드엔진 Advance 06 Challenges : Advance 06 Author : CodeEngn Korean : 남은 군생활은 몇일 인가 정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오 English : How many more days to serve for the military The solution is the MD5 hash of the answer http://codeengn.com/challenges/advance/06 우선 파일을 실행하면 위와 같은 메시지만 반복되다 종료된다.사실 이 문제는 확인만 존나 누르다가 맨 끝에 나오는 숫자만 보고 정답 인증해도 된다.하지만 공부하는 입장이니까 존나 분석을 해보도록 한다.. UPX로 패킹되어 있음을 확인할 수 있다.UPX는 존나게 나왔으니까 쉽게 풀 수 있을 것이.. 2015. 1. 3.
코드엔진 Advance 05 Challenges : Advance 05 Author : Pass Corta Korean : Serial 을 구하시오 English : Find the Serial http://codeengn.com/challenges/advance/05 "Mal Cracker!!!"아무 문자열이나 입력하면 위와 같은 메시지가 출력된다. 해당 문자열 주변을 훑으면 vbaStrCmp() 함수가 보인다.혹시나 하는 마음으로 거기에 BP를 설치하고 EAX와 ECX 값을 보니 호옹이.. 2015. 1. 1.
코드엔진 Advance 04 Challenges : Advance 04 Author : LibertyorDeath Korean : Name이 CodeEngn 일때 Serial은 무엇인가 English : Find the Serial when the Name is CodeEngn http://codeengn.com/challenges/advance/04 늘 풀어오던 유형의 문제이다.우선 이 프로그램에는 간단한 패킹이 걸려있다.위와 같은 패킹이다.간단하게 특정 구간에 xor 연산을 한 뒤에 JMP한다.이로써 언패킹이 끝난다 ..맨 마지막 점프문 뒤부터가 OEP란 것을 생각하면 upx와 비슷하다.오히려 upx보다 더 쉽기에 금방 언패킹 할 수 있다. OEP로 점프한 뒤에 Crtl+A를 눌러 올리디버거가 재분석하도록 한다.재분석을 안 하면.. 2014. 12. 31.
코드엔진 Advance 03 Challenges : Advance 03 Author : Vallani Korean : Name이 CodeEngn 일때 Serial은 무엇인가 English : Find the Serial when the Name is CodeEngn http://codeengn.com/challenges/advance/03 많이 봐온 문제 형식.Name을 주어주고는 Serial을 맞추어라! 근데 이 문제는 너무나도 허무하게 풀린다."No, that is not the right answer" 문자열 주변에 떡 하니 시리얼과 내가 입력한 임의의 시리얼을 비교하는 부분이 있다! 2014. 12. 31.
코드엔진 Advance 02 Challenges : Advance 02 Author : Noble Korean : 정답은 무엇인가 English : Find the answer http://codeengn.com/challenges/advance/02 크랙미 문제이다.크랙미 문제는 basic에서도 많이 나와서 익숙하다. 늘 하던대로 대충 임의의 패스워드를 입력 후, 프로그램에서 사용하는 문자열 중 "정답입니다!" 느낌의 문자열을 찾은 후 그 근처를 분석하려 했는데 슈발.. 그런 느낌의 문자열이 없다. 별 수 있나..패스워드를 저장하는 주소에 브레이크 포인트를 걸고 분석 ㄱㄱ.다행히 어렵지 않게 아래와 같은 부분을 찾을 수 있다. 정답인 패스워드와 내가 입력한 임의의 패스워드를 하나하나 비교하는 부분이다. "WELL DONE!"이라는.. 2014. 12. 31.
코드엔진 Advance 01 Challenges : Advance 01 Author : CodeEngn Korean : 이 프로그램은 몇 밀리세컨드 후에 종료 되는가 정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오 English : How many milliseconds does it take for this program to terminate The solution is the MD5 hash of the answer(in CAPITALS). 코드엔진 basic 19와 같은 문제이다.코드엔진 basic 19의 풀이는 아래의 링크..http://amgn.tistory.com/551 근데 존나 빡치는건 답이 다르다. 문제는 같은데 값만 다른거니까 금방 풀 수 있다. 2014. 12. 30.
728x90
반응형