쉬프트 연산 쉬프트 연산(Shift Operation)은 비트 단위로 숫자를 이동하는 연산이며 이 연산은 주로 비트 단위 조작이나 수의 배수 증가/감소 등의 용도로 사용된다. 쉬프트 연산은 주어진 수를 이진수로 나타내어 각 비트들을 왼쪽이나 오른쪽으로 이동시키는 작업을 수행한다. 두 가지 주요 종류의 쉬프트 연산이 있습니다 왼쪽 쉬프트 (Left Shift): 주어진 수의 비트들을 왼쪽으로 이동시킨다. 이동하는 동안 새로운 비트가 오른쪽에 추가된다. 왼쪽으로 이동하면 수가 2의 거듭제곱 배로 증가한다. 오른쪽 쉬프트 (Right Shift): 주어진 수의 비트들을 오른쪽으로 이동시킨다. 이동하는 동안 새로운 비트가 왼쪽에 추가된다. 오른쪽으로 이동하면 수가 2의 거듭제곱으로 나눠지는 효과가 있다. 다음과..
ios의 경우앱 스토어에서 자체 난독화 등의 기능이 있다 Android 소스 코드 난독화는 안드로이드 앱의 소스 코드를 변환하여 읽기 어렵게 만드는 기술이다. 이를 통해 앱의 보안을 향상시키고, 앱의 로직과 알고리즘을 보호하는데 도움이 된다. 안드로이드 소스 코드 난독화는 주로 앱의 디컴파일, 역공학, 코드 추출 등을 어렵게 하여 악성 사용자로부터 앱을 보호하는데 사용된다. 안드로이드 소스 코드 난독화에는 다양한 방법이 있지만 일반적으로 다음과 같은 것들이 있다. ProGuard: ProGuard는 안드로이드 빌드 도구에 포함된 최적화 및 난독화 도구로, 클래스, 메서드, 필드 이름을 압축하고 난독화하여 앱의 크기를 줄이고 보안을 향상시킨다. DexGuard: DexGuard는 ProGuard의 기능을 ..
개요 **대응방법** 0. AndroidManifest.xml 의 부분에 android:debuggable 값을 true/false로 설정 1. 디버깅 비활성화 2. 디버깅 시 사용되는 ptrace 선점 안티디버깅 3. 디버깅 시 발생되는 SIGTRAP 시그널 무시 4. ppid를 확인하여 앱을 실행 시킨 프로세스가 디버깅툴(GDB or LLDB)인지 확인 5."/proc/self/status" 파일 내용 중 TracerPid 값 확인 **우회** 디버깅 탐지 기능 취약점은 앱이 동작할 때 동적 디버깅 도구로 디버깅 가능 여부에 따라 취약한지 결정되는데 LLDB나 GDB, IDA와 같은 동적 디버깅 도구로 앱에 attach을 때 디버깅이 가능하면 취약한 것이다. 공격자는 애플리케이션 동적 디버깅을 통하여..
서버 옮기기 Ida 설치 경로에 dbgsrv 디렉터리 안헤 사진과 같이 여러 서버 파일들이 있을 것이다. ( C:\Program Files\IDA 7.0\dbgsrv) 아키텍쳐에 맞는 것을 단말기에 넣어준다. adb shell getprop ro.product.cpu.abi // 아키텍쳐 확인 adb push android_x86_server /data/local/tmp su 로 root 권한으로 실행시키기 위해 파일 권한 변경 포트 포워딩 adb foward 명령어로 안드로이드 서버와 ida 서버를 포워딩 시킨다. adb forward tcp:23946 tcp:23946 //로컬과 단말기간의 포트 포워딩 설정 Ida를 통해 attach 기기의 경우에는 ARMLinux/Android 에뮬레이터면 Linu..
패치한 파일 적용 후 메지스크 재설치 기기를 다운로드 모드로 진입시켜 아까 다운로드 메지스크를 통해 패치한 파일을 기기에 적용시킨다. ( 로컬로 옮겨 놔야 한다. 경로: phone-download) 다운로드 모드에 들어가기 위해서는 핸드폰을 끔과 동시에 볼륨 상하 버튼을 동시에 누르면 된다. 전에 확인했더 조건들이 맞아야 다음으로 진행 가능하다. 오딘을 통해 기기에 패치한 파일을 넣어준다. 이후에 핸드폰이 재부팅 되면 바로 전원 버튼과 볼륨 상 버튼을 눌러 리커버리 모드에 들어가 공장 초기화를 진행하고 리부트를 진행한다. 이제 폰을 켤 때 루팅된 펌웨어로 진입하기 위해 볼륨 상과 전원버튼을 화면이 깜빡일 때 까지 눌러주면 된다. 메지스크를 재설치하고 버전을 확인한다. 헬조선 및 21 버전 메지스크 다운로..
개요 기기 정보: A30 루팅: 루팅(Rooting)은 안드로이드 기반 장치에서 시스템 레벨의 권한을 얻는 것을 의미한다. 메지스크: Magisk는 안드로이드 장치에서 루팅을 수행하고 시스템 수정을 관리하기 위한 오픈 소스 프레임워크이다. Magisk는 시스템의 루팅을 숨기고, 앱 및 서비스에서 루팅 감지를 우회하는 기능을 제공한다. 이를 통해 루팅된 장치에서도 일부 앱이 정상적으로 작동하도록 할 수 있다. https://github.com/topjohnwu/Magisk/releases Releases · topjohnwu/Magisk The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account o..
openssl과 sslcan 이용 윈도우 버전 설치 리눅스는 wget 명령어로 받으면된다 https://slproweb.com/products/Win32OpenSSL.html Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space March 14, 2023 - OpenSSL 3.1 is available...
윈도우에서 리눅스 명령어를 실행하려면 GOW(Gnu on windows) 를 설치해야한다. Gow 설치 - https://github.com/bmatzelle/gow/releases Releases · bmatzelle/gow Unix command line utilities installer for Windows. - bmatzelle/gow github.com 환경 변수 등록 D:\Gow\bin 자유롭게 사용
ios의 앱은 안드로이드와 다르게 추출해서 디컴파일 하는게 아니라 암호화가 되어있어 복호화를 해야하는데 여러 가지 방법 중에서 frida를 통한 복호화 방법을 알아본다. 사전준비 로컬 pip install frida, pip install frida-tools 모바일 기기 이전에 설치한 cydia 를 통해서 OpenSSH(ssh를 설치해야 아이폰 쉘에 접근 가능하다.) frida ( frida server (로컬에서 직접 설치해주는 방법도 있다)) 를 설치한다. 아래링크에서 ipa를 추출하기위한 파이썬 도구를 다운받아준다. https://github.com/AloneMonkey/frida-ios-dump GitHub - AloneMonkey/frida-ios-dump: pull decrypted ipa ..
1. CRLF 인젝션이란 ? CRLF Injection은 Carriage Return Line feed Injection의 약자로 각 개행문자를 의미하는 CR(\r) LF(\n)을 이용하여 HTTP Request 또는 Response를 분리하여 바디부분에 의도하지 않은 헤더필드를 삽입하거나 바디 부분에 HTML 코드를 추가하여 문제를 일으키는 공격 기법을 의미한다. CR Carriage Return ASCII 13 %0D \r LF Line Feed ASCII 10 %0A \n 2.예시 *헤더필드 추가 Request GET /redirect?location=jj://%0d%0aSet-Cookie: session=attackersessions; Response HTTP/1.1 200 OK Location:..