1. strstr 어셈블리 구현 [strcmp 순서도] [strcmp 어셈블리 소스] 실행 결과 2.1 strstr동적 디버깅 분석 1 [strcmp 디버깅] Hello world! 문자열의 첫 번째 ‘H’ 와 입력 값 ‘A’ 와 비교하면 아스키 코드 숫자로 변환하여 72,65가 된다. 그림과 같이 72가 큰 값으로 L_B로 점프하는 것을 확인하였다. 2.2 strstr동적 디버깅 분석 2 [strcmp 디버깅] 같은 문자열일 때 00까지 확인 후 종료되는 것을 확인할 수 있다. 문자열 길이가 다를 경우 길이가 더 긴 쪽이 큰 값으로 반환된다.
1. strcmp 어셈블리 구현 [strcmp 순서도] [strcmp 어셈블리 소스] 실행 결과 2.1 strcmp 동적 디버깅 분석 1 [strcmp 디버깅] Hello world! 문자열의 첫 번째 ‘H’ 와 입력 값 ‘A’ 와 비교하면 아스키 코드 숫자로 변환하여 72,65가 된다. 그림과 같이 72가 큰 값으로 L_B로 점프하는 것을 확인하였다. 2.2 strcmp 동적 디버깅 분석 2 [strcmp 디버깅] 같은 문자열일 때 00까지 확인 후 종료되는 것을 확인할 수 있다. 문자열 길이가 다를 경우 길이가 더 긴 쪽이 큰 값으로 반환된다.
1. strcpy 어셈블리 구현 [strcpy 순서도] [strcpy 어셈블리 소스] ECX에 원본 문자열의 크기 값이 대입되어 REP MOVS 명령어가 ECX 크기만큼 반복 실행된다. strcpy함수와 같은 위 어셈블리 코드를 실행하면 Null로 초기화 되어 있던 destStr 배열안에 srcStr 문자열을 복사하여 넣을 수 있다. 배열 크기가 넉넉하기 때문에 문제점을 찾을 수 없지만 원본 크기가 사본 배열크기보다 클 경우 buffer overflow 취약점이 생길 수 있다. 사본 배열의 공간크기를 검증하지 않고 수행되기 때문에 크기에 관계없이 반복하여 메모리에 값을 넣어버린다. 2.1 strcpy 동적 디버깅 분석 1 [strcpy 디버깅] 그림과 같이 ECX 에 0x0000000C (12) 값이 들..
1. strcat 어셈블리 구현 [strcat 순서도] [strcat 어셈블리 소스] Strlen 함수를 이용하여 destStr, srcStr 문자열의 길이를 구한다.[destStr 문자열의 시작주소] +[문자열의 길이] = [destrStr 마지막 주소] 를 구한 뒤 끝부분부터 strStr 문자열을 처음 값부터 차례대로 넣어주어 최종적으로 destStr문자열에 더해질 수 있다. ECX값에 srcStr 문자열의 길이 값을 넣어주면 REP MOVS 명령어가 반복될 때마다 ECX는 자동으로 1씩 감소한다. 이 반복이 끝날 경우는 ECX가 0이 될 때까지 반복하기 때문에 정확히 srcStr문자길이만큼 반복하여 destStr문자열에 붙여 넣을 수 있게 된다. 2.1 strcat 동적 디버깅 분석 1 [strca..
참조 사이트 : https://console.developers.google.com/iam-admin/projects mport android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng..
* Decomplie Tools - http://jd.benow.ca ( GD - GUI ) - https://sourceforge.net/projects/dex2jar ( dex2jar-2.0 ) - https://ibotpeaches.github.io/Apktool ( apktool_2.2.1.jar ) 안드로이드 스튜디오에서 Build >Generate Signed APK > app-debug.apk, app-release.apk 생성. \app\ > app-debug.apk, app-release.apk 파일을 dex2jar 폴더에 복사 다운받은 d2j-dex2jar.bat 파일을 이용하여 jar파일 생성 GD - GUI tool을 이용하여 결과 확인 Debug APK 파일은 난독화설정을 하지 않..
Motion Sensorsdeveloper : https://developer.android.com/guide/topics/sensors/sensors_motion.html * 센서 동작 기본 흐름 1. SensorManger 생성 2. Sensor 객체 생성( 내가 사용할 Sensor Type 선택 ) 3. Sensor Listener 작성 4. Listener 등록 및 Sensor 값 받기 5. Listener 해제 (배터리 사용량을 위해 반드시 해제) - 동작 속도FASTEST, GAME, UI, NORMAL - 정확도 HIGH, MEDIUM, LOW MainAcitivity.javapublic class MainActivity extends AppCompatActivity implements Se..
site : https://firebase.google.com/
Retrofit : https://square.github.io/retrofit/OKHttp : http://square.github.io/okhttp/ Manifast.xml gradle // retrofit compile 'com.squareup.retrofit2:retrofit:2.1.0' compile 'com.squareup.retrofit2:converter-gson:2.1.0' // Ok http compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1' ISeoulOp..
ImageView Picasso, Glide Library 사용. Picasso : http://square.github.io/picasso/ Glide : https://github.com/bumptech/glide Manifast.xml gradle compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.squareup.picasso:picasso:2.5.2' Mainactivity.java( Picasso )1234567891011121314151617181920212223242526272829303132333435public class MainActivity extends AppCompatActivity { ImageView imageView;..
웹서버 구성 : pache tomcat 설치 cookie 테스트 사이트 : 192.168.0.171/setcookie.jsp manifast : MainActivity.java public class MainActivity extends AppCompatActivity { TextView textResult; Button signBtn; EditText editId,editPw; ProgressDialog progress; SharedPreferences sp; SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setCo..
HTTP URL Connection 안드로이드 APP 에서 웹서버 에 GET 요청을 하는 방법. apache tomcat 설치 후 테스트 페이지를 미리 만들어 놓았다.C:\Devtools\Tomcat 8.5\webapps\ROOT/HTTP_test.html HTTP_test.html 간단한 내용 입력. java 코드 작성 MainActivity.javapublic class MainActivity extends AppCompatActivity { TextView textView; final String TARGET_URL = "http://192.168.0.171/HTTP_test.html"; @Override protected void onCreate(Bundle savedInstanceState) {..
Open API 를 이용하여 서울시 실시간 지하철 도착정보를 받아보자. 오픈 API 는 서울시 오픈 API를 이용하였다. 1. 서울시 오픈 API 회원가입 및 원하는 API 선택2. 링크 복사3. 링크의 xml 또는 json 확인4. 파싱하는 소스 구현5. 결과 확인 http://data.seoul.go.kr/index.jsp 회원가입 > 오픈 데이터 > 오픈 API 원하는 API 검색 해당 API 선택 API 링크 복사 > 중간에 (인증키) 는 회원가입 후 인증키 발급을 받을 수 있다. 연습중에는 sample로 구현 링크를 sample로 변경 후 해당 데이터를 확인 가능하다. XML 파일로 확인됨. http://swopenapi.seoul.go.kr/api/subway/sample/xml/realtim..
안드로이드 키보드 내리기 함수 구현 . protected void keyBoardOff() { // 키보드 내리기 View view = getActivity().getCurrentFocus(); InputMethodManager mgr = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); mgr.hideSoftInputFromWindow(view.getWindowToken(), 0); }