본문 바로가기

run and compile 32bit apps on 64bit ubuntu $ cat /etc/issueUbuntu 14.04.3 LTS \n \lsudo dpkg --add-architecture i386sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386sudo apt-get install gcc-multilib ksg@ubuntu:~/test$ uname -aLinux ubuntu 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linuxksg@ubuntu:~/test$ gcc -m32 -o test test.cksg@ubuntu:~/test$ file t.. 더보기
app recompile DOWNLOAD APP : APK Downloader(Chrome externs App) (1) DECOMPILE $ apktool d apps_dir(2) EDITRES 폴더를 안드로이드 스튜디오 기본 프로젝트에 복불 후, 분석(3) REBUILD $ apktool b apps_dir(4) MOVE$ apps_dir/dist/????.apk ./(5) signingjarsigner -keystore ksg.keystore -verbose ???.apk ksg ( make key : keytool -genkey -keystore ksg.keystore -validity 10000 -alias ksg) 더보기
strtap address overflow call plt -> jmp got -> jmp _dl_runtime_resolve -> call _dl_fixup메모리에 올려진 동적 C 라이브러리에서 특정 함수에 주소를 가지고 올 때의 루틴이다.dynamic section에 존재하는 strtap 주소를 참고하여, strtap 내부에 있는 함수명의 문자열을 갖고 온다. dynamic section + ? : strtapstrtap + offset(?) : "puts"puts got = puts함수의 주소가 저장됨 이런 식이다.그래서 만약 strtap에 쓰기 권한이 있어서 puts를 system으로 변경 한다면 system 함수의 주소가 puts got에 저장 된다.하지만 strtap에 권한은 READ ONLY, 그래서 우리가 Overflow 할 부분은.. 더보기