목록분류 전체보기 (553)
Self-Improvement
보호되어 있는 글입니다.
보호되어 있는 글입니다.
먼저 stack1의 소스코드를 확인해보도록 한다. 인자가 무조건 존재해야 하며 modified 변수는 초기값으로 0이 주어지고 0x61626364가 되면 해결이 되어지는 문제이다. 역시나 gcc로 컴파일을 해준다. gdb-multiarch로 stack1 디버깅을 시작해준다. 필자는 빅엔디안과 intel로 셋팅을 해놓고 시작하였다. disass main으로 디스어셈블리를 확인하던 중 쉽게 비교구문을 찾을 수가 있었다. 바로 브레이크포인트를 설정하고 run AAAA로 실행해 보았다. 정상적으로 브레이크포인트에서 멈춘걸로 확인이 된다. 이때 cmp에서 사용되는 eax 레지스터의 값을 확인해보니 0으로 그대로 설정되어 있다. 당연히 continue을 하게되면 풀이에 실패하게 된다. 다시 run A*76dcba(..
먼저 풀어야할 stack0의 소스코드이며 리눅스에서 작성을 해준다. stack0.c을 컴파일 하기위해 gcc을 이용하지만 기본적으로 컴파일할 시엔 stackoverflow?가 막히기 때문에 아래의 옵션을 추가하여 컴파일을 진행한다.gcc -z execstack -no-pie -w -o stack0 stack0.c 컴파일 되어진 stack0을 gdb-multiarch로 디버깅을 시작한다. 이때 설정하는 것은 개인에 따라 다르겠지만 필자는 big 엔디안과 intel 형식으로 셋팅하였다. 먼저 disass main 명령어로 메인의 디스어셈블을 확인한다.확인해보니 test(main+42)에서 modified의 값이 0인지 아닌지를 비교하는 구문으로 확인된다. 먼저 test 명령어가 있는 위치에 브레이크 포인트를..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
*apk 추출 및 디컴파일먼저 추출할 어플이 있는 핸드폰을 PC와 연결을 시켜줍니다(디버깅 모드도 On) Kali에서 핸드폰이 연결이 되어졌는지 확인해줍니다.adb devices 연결히 무사히 되었으면 접근을 해줍니다.adb shell 추출할 어플을 검색해줍니다.pm list packages -f | grep 확인된 패키지 경로를 복사하고 adb pull apktool d test.apk 을 통해 AndroidManifest.xml 파일을 볼 수 있다. 그외의 파일은 smali 파일로 구성되어있다.smali이란 안드로이드 실행 바이너리 코드를 사람이 쉽게 읽을 수 있도록 변형된 어셈블리어이다. 이제는 smali파일이 아닌 자바코드로 보기위해서 아래의 명령어를 진행한다.dex2jar 명령어를 통해 기존의 ..