본문 바로가기

전체 글324

iOS Application Life Cycle iOS APP 동작 과정 APP Touch main() 함수에서 UIApplicationMain() 함수 호출 및 UIApplication 객체 생성 UIApplication 객체에서 info.plist에 존재하는 앱에 필요한 데이터 및 객체 로드 Custom Code를 처리하기 위한 AppDelegate 생성 후 UIApplication 객체와 연결 실행 준비 후 application(_:willFinishLaunchingWithOptions:) 호출 실행이 완료 된 후 화면에 노출되기 직전에 application(_:didFinishLaunchingWithOptions:) 호출 Main run loop 실행 및 이벤트 큐를 이용해 이벤트 순차 처리 앱을 더이상 사용하지 않을 경우 iOS System에.. 2022. 3. 18.
[Python3] Extract String from File in Directory Extract String from File in Directory Code import re import os directory = r"./" # directory path files = os.listdir(directory) for f1 in files: filename = os.path.join(directory, f1) with open(filename, encoding='Latin-1') as f2: str_list = re.findall("[A-Za-z0-9/\-:;.,_$%'!()[\] \#@]+", f2.read()) with open(os.path.join(directory,"strings.txt"),"a+") as save_file: for str in str_list: save_fil.. 2022. 3. 18.
[iOS] frida-ios-dump for Windows dump.py code for Windows 1. Use 7z (must include 7z.exe and 7z.dll in directory) # zip_args = ('zip', '-qr', os.path.join(os.getcwd(), ipa_filename), target_dir) zip_args = (os.getcwd() + '\\7z.exe', 'a', '-r', os.path.join(os.getcwd(), ipa_filename), target_dir) 2. Change chmod command import stat chmod_dir = os.path.join(PAYLOAD_PATH, os.path.basename(dump_path)) # chmod_args = ('chmod', '655'.. 2022. 3. 17.
IDA Python 정리 (IDA 7.5 이상 사용 가능) Segments 이름 및 주소 리턴 import idc_bc695 as idc_695 for seg in Segments(): print(idc_695.SegName(seg)) print(hex(seg)) 특정 주소의 함수 이름 리턴 import idc_bc695 as idc_695 ea = here() print(idc_695.GetFunctionName(ea)) 특정 함수의 Code Reference 주소 및 컬러 설정 import idc_bc695 as idc_695 fun_name = "_fopen" fun_addr = idc_695.LocByName(fun_name) for addr in CodeRefsTo(fun_addr, 0): print(hex(addr), GetDisasm(addr)) /.. 2022. 3. 11.
[Python3] Tcp Socket Proxy tool Windows에서 TCP Socket 통신을 하는 프로그램을 진단해야 했는데 NCIS의 safeij.dll이 DLL Injection 및 Debugging을 막아버려서 기존에 사용하던 Echo Mirage와 같은 도구를 사용할 수 없었습니다. 이를 진단하기 위해 서버의 IP를 내 IP로 변경한 뒤, MITM을 걸어 A Proxy B로 통신 구간을 확인했습니다. 통신 과정만 확인할 수 있도록 대충 개발하다보니 손을 봐야할 내용이 너무 많습니다. 참고용으로만 확인해주세요. import socket from threading import Thread HOST = "127.0.0.1" # Client IP HOST2 = "1.1.1.1" # Server IP PORT = 13010 def c_c(): clien.. 2022. 3. 10.
Android Snapshot 위치 그동안 백그라운드 화면 보호 항목은 iOS에서만 점검 가능하다고 생각했는데 Android에서도 Snapshot 폴더가 존재했다. 내다버린 시간 Android SnapShot 위치 data/system_ce/0/snapshots 조치 방안 조치 방안은 화면 캡처 방지와 동일하게 setFlags 메소드를 이용하여 FLAG_SECURE를 설정해주면 된다. (고로 화면 캡처 보호 항목만 확인하면 될 듯) getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE); 2022. 3. 8.
Android 7 이상 Burp 인증서 설치 방법 Burp의 경우 기본적으로 20년 이상의 만료 기간을 가지고 있지만, Android 7부터는 최장 만료 기간이 39개월로 설정되면서 39개월보다 짧은 인증서를 임의로 생성해야 합니다. 임의의 사용자 인증서 생성 1. 360일 만료기간 및 RSA 암호화 알고리즘을 이용하여 server.key 개인키를 생성합니다. openssl req -x509 -days 360 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der 2. 개인키를 DER 파일로 변환합니다. openssl rsa -in server.key -inform pem -out server.key.der -outform der 3. server.ky.der 파일을 pkcs8 포맷으로 .. 2022. 2. 7.
iOS 버전 별 Bundle 및 설정 파일 위치 IOS v12 APP File Path /var/containers/Bundle/Application/[Package_Hex_Vaule]/[APP_Name]/* Cache.db File Path /var/mobile/Containers/Data/Application/[Package_Hex_Vaule]/Library/Caches/[Package_Name]/Cache.db Snapshots Folder Path /var/mobile/Containers/Data/Application/[Package_Hex_Vaule]/Library/Caches/Snapshots/[Package_Name]/*.atx -> iPhone에서 FilZa와 같은 프로그램을 설치해서 볼 수 있음. plist File Path /var/.. 2022. 2. 4.
Android Smail Code Injection Toast const-string v0, "App Test By SMS" const/4 v1, 0x0 invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object v0 invoke-virtual {v0}, Landroid/widget/Toast;->show()V 2022. 2. 3.