2013년 8월 22일 목요일

reverse_engineering

apktool

  • http://code.google.com/p/android-apktool/
    위 링크는 v1.4.3 까지 공개된 후 개발이 중지된 것 같고 (혹은 google이 apk를 지나치게 노출하는 것을 꺼려하는 것일지도… )
    https://github.com/ApkMultiTools/APK-Multi-Tool-Linux
    여기 소스를 git clone 해서 받아보면 other folder에서 v1.4.9 (JellyBean 지원)를 받을 수 있습니다.
    그런데 v1.4.9 역시 JB plus에서 추가된 ldrtl resource qualifier 는 지원이 안되네요. ㅡ.ㅜ)
  • apk로부터 resource 추출 가능
  • code는 smali code로 추출
  • framework resource가 있다면 먼저 설치
  • $ cd system/framework
    $ apktool if framework-res.apk
    $ apktool if com.htc.resources.apk
    $ cd ../app
    $ apktool d Browser.apk

smali

  • assembler/disassembler for the dex format used by dalvik
  • resource는 추출하지 못하므로 apktool과 병행해 사용
  • odex도 지원(init.rc의 BOOTCLASSPATH를 참조해 -c 옵션을 작성)
  • ICS는 1.3.0 버전 사용할 것.
  • $ baksmali -a 10 -c core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:services.jar:core-junit.jar -x twframework.odex -o twframework
  • $ baksmali -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:filterfw.jar:sechardware.jar:kafdex.jar -x framework.odex -o framework
최신버전의 경우 default로 ICS로 인식한다. GB 라면 -a 10 옵션을 추가해야 한다.

dex2jar

jar -> class

  • .jar 파일에서 .class 파일 추출
  • $ jar -xvf .jar
  • .class → .jar 생성 (src 디렉토리 밑에 생성) - (jad)
  • $ jad -o -r -sjava -dsrc **/*.class

jd-gui

git push 중 unpack error 발생 시 조치 방법

구글링 하다 우연히 알게 된 방법인데...... 아직 unpack error 가 재 발생하지 않아서 써먹지 못했다.

$ git fsck
$ git prune
$ git repack
$ git fsck

덧. 발생하면 검증하고 구체적으로 업데이트 할 예정입니다.

2013년 8월 9일 금요일

Shell Script 중 if문으로 symbolic link 판별하는 법

-f : symbolic link가 가르키는 file이 있을때만 True
      symbolic link가 있어도 가르키는 File이 없으면 False

-h : 대상이 symbolic link 일 때만 True

-L : symbolic link 이던 File이던 상관없이 있기만 하면 True

2013년 8월 8일 목요일

maven 설치 방법(jenkins plug-in 빌드)

1. mvn binary를 다운로드 한다.(http://maven.apache.org/download.cgi)
2. 압축을 푼다
- ex) C:\Dev\apache-maven-3.1.0
3. 환경 변수 설정
- 사용자 변수
1) Path : %JAVA_HOME%\bin;%M2%
- 시스템 변수
1) M2_HOME: C:\Dev\apache-maven-3.1.0
2) M2: %M2_HOME%\bin
3) JAVA_HOME: C:\Program Files\Java\jdk1.7.0_25

4. 제대로 설치 된지 확인

2013년 2월 9일 토요일

Jenkins plugin 개발 시 주의점

일딴 여기다 내가 겪었던 난관들을 대충 정리하고 다시 정리해서 올릴 생각이다

첫번째 난관
parameterized-trigger-plugin build error

source를 그대로 git clone으로 받아와서 build 하는데 error~!~!
뜬금없는 permission denied .....
한참 찾아보다 HudsonTestCase를 의심했다
그런데 어이없는곳에서 해결 방안 찾음
바로 /tmp/jna 라는 폴더의 생성 및 쓰기 권한이 없어서 발생했다