kaka09
//Log.d("TAG","debugtest"); const-string v0, "TAG" const-string v1, "debugtest" invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I //Debug.waitForDebugger() 디버거로 어태치 되기 전 까지 코드실행을 멈춤 invoke-static {}, Landroid/os/Debug;->waitForDebugger()V //if(1!=0){ } const/4 v0, 0x1 .local v0, "i":Z if-eqz v0, :cond_0 ~~~~~~~~구문~~~~~~ :cond_0
docker exec -it [컨테이너id] /bin/bash
여태까지 포너블 공부를 함에 있어서 local환경에서 메모리 보호기법 없이 단순히 공격기법들의 원리만 파악하기 위한 공부를 했었다.(깊이가 없는..)따라서 이번에는 메모리 보호기법이 적용된 상태에서 원격(로컬을 원격처럼)으로 익스플로잇 하는 방법들을 공부해볼 생각으로 본 포스팅을 작성할 예정이다. [사진]1-1 위 사진은 해당 바이너리를 IDA의 Hex-Rays를 통해 소스코드를 복원한 내용이다. 내용을 살펴보면 1~4번까지 메뉴를 선택할 수 있다. 랜덤으로 설정된 가격을 기준으로 코인을 사고 파는 형태의 프로그램으로 판단 할 수 있다. 취약점 벡터는 46번째 줄에서 발생한다. 사진에는 안안나와 있지만 v6 변수는 bp-14h 영역에 할당된다. 하지만 46번째 줄에서 scanf로 입력 받을때 50 바이트..