자바 package중 import android.text.TextUtils;이라는 부분이 있다. 이름과 같이 안드로이드 앱을 구성할 때 필요한 기능을 가지고 있는 package인데, 기능에 대해서 알아보았다. 일단 TextUtils이란 안드로이드에서 따로 Text를 위해 제공된 Util이라고 보면 된다. 이것을 통해 Text가 들어왔는 지 아닌 지를 체크할 수 있는데, isEmpty라는 메소드를 통해 문자열 null 체크를 할 수 있다. TextUtils.isEmpty(CharSequence str) 다음과 같이 사용하면 리턴값이 boolean으로 반환되기 때문에 들어간 값이 없다면 true를, 있으면 false를 반환한다.
보다가 getInstance() 메소드를 사용하는 부분이 많이 있어서 궁금증이 생겼다. 이에 대해 찾아보았는데, 객체에 getInstance() 메소드가 있으면 Singleton 방식으로 객체를 관리하는 것이란다. 한마디로 안의 value를 관리하고 싶으면 getInstance()를 이용해서 관리하면 된다는 것이다. 여기서 Singleton이라는 단어에 대해서 궁금해서 찾아보게 되었다. 과연 Singleton 패턴이란 무엇일까. 다음과 같다. Singleton 패턴은 인스턴스가 사용될 때에 똑같은 인스턴스를 만들어 내는 것이 아니라, 동일 인스턴스를 사용하게끔 하는 것이 기본 전략이다. 프로그램상에서 동일한 커넥션 객체를 만든다던지, 하나만 사용되야하는 객체를 만들때 매우 유용하다라는 장점이 있단다. 그..
JEB를 통해 바이트 코드를 보던 중, 의심가는 부분이 있어 디컴파일을 하여 읽어 보던 중 잘 모르는 부분이 있어 찾아보았다. execute(), 객체 HttpGet, getstatusline().getstatuscode() == 200 부분을 잘 모르겠었다. 검색을 해 보았다. execute() 메소드는 HttpResponse 타입을 이용해서 실행되는데, 다음과 같이 설명되어 있었다. 간단히 말해서 안의 parameter를 이용해서 HTTP 요청을 실행한다는 것인데, argument로 받은 값을 실행해서 HTTP 요청을 얻는 것 같다. 객체 HttpGet은 HTTP GET 요청을 보내고 HTTP 응답을 받기 위한 작업을 나타낸다고 한다. 간단히 argument로 받은 것에 대한 응답을 받는 것이라고 생..
저번에 작성했던 부분에서 마지막에 작성한 부분에서 알게 된 내용과 추가적인 내용을 작성해보기로 했다. 이 부분은 특정 부분들에 대한 id 값을 지정해 주는 부분이라고 소개했다. 이 부분에 대해서 상당히 수상하게 생각하고 있었다는 것을 떠올린다.이 부분에 대해서 찾아보고자 한 숫자에 대해서 검색을 해보았고, 다음과 같이 메소드가 구성되어 있는 것을 확인할 수 있었다. 이 숫자의 경우에 따라 기능하는 것이 다른 것을 파악하여 일단 찾아보았다. 그러니 다음과 같은 것을 찾을 수 있었다. 결과적으로는 이상한 것이 아닌 안드로이드에서 쓰이는 것을 바인더로 지정해 놓고, 이에 따라 숫자를 부여하여 쓰는 것을 알 수 있었다. 위의 부분은 트랙잭션을 위해 지정해 놓은 바인더였던 것이다. 암호화나 알고리즘적인 부분이 아..
기존에 vmplayer에서 돌리려고 한 JEB가 돌아가지 않아서 dex2jar, JD-GUI를 이용하여 앱을 분석하였다. dex2jar을 이용하여 jar파일로 변환시키고 JD-GUI를 이용하여 까보았다. 다음과 같은 화면을 볼 수 있었다. 악성코드가 존재하는 지 유심히 볼 부분으로BroadcastReceiver()intent 내용contentResolver() = Query() 등Cursor() = AccountManager 등SharedPreference() = Getstring() 등JNI = public native string 등PhoneStateListener() = Offhook, Idle 등tryHideIcon = RECEIVE_BOOT_COMPLETED 등ADD_DEVICE_ADMINonC..
dex2jar 툴은 안드로이드 앱의 확장자가 dex로 되어 있는 파일을 jar 확장자로 변환해주는 툴이다. 아래와 같은 화면에서 다운로드 받을 수 있다. JD-GUI 툴은 jar 파일에 있는 class를 java로 디컴파일하여 볼 수 있는 툴이다. 다음과 같은 화면에서 다운로드 받을 수 있다. 이제 실행을 해보자. 우선 dex2jar를 실행하여 다음과 같이 변환을 한다. 그러면 jar 파일이 생성된다. 그다음 JD-GUI로 디컴파일하여 실시하면 다음과 같은 화면을 볼 수 있다. 이렇게 하여 볼 수 있다. 이제 안드로이드 정적 분석을 실시해보자.
AVR 칩(RISC MCU)은 ISP(In System Programming)와 JTAG(Joint Test Action Group)이라는 다운로딩 인터페이스를 제공한다. AVR의 가장 표준적인 교육용 모델로 ATmega128이 있는데, 이 데이터시트에선 최대 다운로딩 횟수가 1만번이라고 되어 있다. 그렇게 다운로딩된 데이터는 MCU 내부의 플래쉬롬으로 저장이 되는데, 여기에 저장된 프로그램 코드를 빼내오는 것을 덤프나 READ라고 한다. 덤프를 통해서 얻은 코드를 Reversing하는 것이 상당히 매력적인 부분이다. 여기서 ISP와 JTAG의 차이가 있다. ISP는 프로그램을 다운로드하거나 덤프할 수 있는 기능만을 제공한다. 그러나 JTAG은 프로그램의 코드를 명령어나 줄 단위로 디버깅을 할 수 있다...
- Total
- Today
- Yesterday
- #GRR
- #FTK
- ethereumj
- blockchain
- #WinPmem
- #수정
- #이미지 수정
- #크롬
- #Forensic
- #WireShark
- #디지털 포렌식
- #메모리
- #Forensic Tools
- #010 Editor
- 이더리움
- #Pmem
- #캐시
- #Volatility
- #Security
- #DEFT
- Fin Tech
- ethereum
- #포렌식
- 4차 산업혁명
- #EnCase
- #WinHex
- #tcpdump
- #tool
- #Chrome
- #ReKall
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |