포인터 C언어에서 포인터(Pointer)는 메모리 주소를 저장하는 변수이다. 이 주소는 다른 변수나 데이터 구조의 위치를 가리키는 역할을 하며 포인터를 사용하여 메모리의 특정 위치에 접근하거나 수정할 수 있고 C언어에서 메모리 관리와 동적 할당에 매-우 중요한 역할을 한다. 아래는 포인터 코드 예시이다. #include int main() { int num = 42; // 정수 변수 num을 선언하고 42로 초기화 int *ptr; // 정수 포인터 ptr을 선언 ptr = # // 포인터 ptr에 변수 num의 주소를 할당 printf("Value of num: %d\n", num); // num 변수의 값 출력 printf("Value of ptr: %p\n", ptr); // ptr 변수의 ..
사용자 인증서 오류 확인: 해당 웹사이트로 이동하기 전에 주소창에 표시되는 자물쇠 아이콘을 클릭하여 SSL 인증서에 대한 정보를 확인할 수 있다. 인증서에 대한 자세한 정보가 나타난다. 인증서가 신뢰할 수 있는 인증 기관에 의해 발급되었는지 확인하고, 만료되지 않았는지 확인해야 한다. 웹 브라우저 업데이트: 브라우저가 최신 버전인지 확인하고, 브라우저 업데이트를 진행해 본다. 때로는 오래된 브라우저 버전에서 인증서 오류가 발생할 수 있다. 시스템 시간 확인: 컴퓨터의 시스템 시간과 날짜가 올바른지 확인한다. 인증서의 유효 기간 내에 접속하는지 확인하는데 중요하다. HTTPS 대신 HTTP로 접속: 만약 해당 웹사이트가 HTTPS로만 접속 가능한 것이 아니라면, "https://" 대신 "http://"를..
개요 **대응방법** 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을 때 디버깅이 가능하면 취약한 것이다. 공격자는 애플리케이션 동적 디버깅을 통하여..