본문 바로가기

안드로이드 Intent 사이즈 제약사항(feat. TransactionTooLargeException) 안드로이드에서 Intent에 1Mbyte 이상의 데이터를 넣으면 android.os.TransactionTooLargeException 이 발생함 https://developer.android.com/reference/android/os/TransactionTooLargeException.html 1. 앱내 Activity 호출 인경우는 Intent에 데이터를 넣지 말고 static 클래스 변수(싱글톤)를 사용해서 Activity 간 데이터 공유 2. 앱간 Activity 호출 인경우는 파일을 이용하고, file path를 전송 더보기
iOS 암호화 및 서명 관련 함수 정리 SecKeyCreateRandomKey()* 대칭키// private key parameterslet privateKeyParams: [String: AnyObject] = [ kSecAttrCanDecrypt as String: true as AnyObject, kSecAttrIsPermanent as String: true as AnyObject, ] // global parameters for our key generationlet parameters: [String: AnyObject] = [ kSecAttrKeyType as String: kSecMessECCKeyType, kSecAttrKeySizeInBits as String: kSecMessECCKeySize as AnyObject, kS.. 더보기
Keystore 및 Keychain 이용 암복호화 및 키생성 주요 내용 1. Keystore- 안드로이드에서는 KeyGenParameterSpec.Builder에서 setUserAuthenticationRequired 옵션을 true로 설정하면 해당 키 사용시 추가 인증(지문 인증 등)이 요청된다.=> 인증에 실패한 경우 UserNotAuthenticatedException 이 발생함- 이 경우, 인증장치 정보(지문 등) 삭제 또는 해제가 발생하면 해당 키를 비활성화되며 지문 인증시 반환되는 Cipher 객체를 이용하여 암호화 및 서명을 수행하므로 사용자의 승인 없이 Keystore 내 키 사용이 불가능하다.- 지문 인증 삭제/추가 시 기존 Keystore내 모든 키가 비활성화되므로 지문 재인증을 통해 키정보를 새로 구축해야 한다. 2. iOS- iOS에서 개인키 생성시 속.. 더보기
안드로이드 제스처 및 PIN 해시 공격 gesture.key * https://github.com/MGF15/P-Decode password.keysha1(PIN||SALT)||md5sum(PIN||SALT) 을 이용하여 무작위 대입 공격* https://github.com/PentesterES/AndroidPINCrack 더보기
hexdump 도구 대체 명령어 hexdump가 설치안된 곳에서 hex값을 출력할때 유용함 od -t x1 /data/system/gesture.key od syntaxod [OPTION]... [FILE]...od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL][.][b]]OptionsNote: all arguments to --long options are mandatory for -short options.-A RADIX, --address-radix=RADIXdecide how file offsets are printed-j BYTES, --skip-bytes=BYTESskip BYTES i.. 더보기
온라인 방정식(algebra) 계산기 훌륭한 방정식 계산기~ https://www.mathpapa.com/algebra-calculator.html 더보기
Keystore SoftKeymaster USER_PKEY 포맷 분석 - [0-3] : 메타정보(version, type, flags, info)- [4-19] : AES 복호화를 위한 IV값 (128bit)- [20-35] : MD5 Hash 값- [36-39] : Blob의 길이(Integer 타입)- [40~ ] : Key blob (SoftwareKeyblob, Qcom blob 등등)------------------------------------------------------------------------------[00-03] MAGIC NUM : PK#8[04-07] KEY TYPE : EVP_PKEY_EC, EVP_PKEY_DSA, EVP_PKEY_RSA[08-11] Public key length(RSA) // 항상 0, 이건 대체 왜 넣는지 모르겠음.. 더보기
git VS svn 명령어 비교 조작GitSubversion저장소의 복제git clonesvn checkout커밋git commitsvn commit커밋의 상세내용을 확인하고 싶다git showsvn cat상태 확인git statussvn status변경 내용 확인git diffsvn diff로그 확인git logsvn log추가git addsvn add이동git mvsvn mv삭제git rmsvn rm변경 취소git checkout / git resetsvn revert브랜치 작성git branchsvn copy브랜치의 전환git checkoutsvn switch병합git mergesvn merge태그 작성git tagsvn copy변경 사항 업데이트git pull / git fetchsvn update원격 저장소에 반영git pus.. 더보기
스마트 컨트렉트 사고 사례 1. The DAO 사건https://www.cryptocompare.com/coins/guides/the-dao-the-hack-the-soft-fork-and-the-hard-fork/ 2. Parity 지갑 사건https://medium.freecodecamp.org/a-hacker-stole-31m-of-ether-how-it-happened-and-what-it-means-for-ethereum-9e5dc29e33ce 더보기
안드로이드 주요 함수 및 서비스 정리 Intent 데이터 추출- Uri uri = Intent.getData()- Bundle bundle = Intent.getExtras() Intent 데이터 전송- [암시적] Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))- [명시적] Intent intent = new Intent(this, ActivityB.class)- intent.putExtra("query", "select * from data")- startActivity(indent)- startActivityForResult(indent, REQUEST_CODE) Broadcast 데이터 전송- sendBroadcast(intent)- s.. 더보기