본문 바로가기

분류 전체보기438

iOS Apple silicon QEMU 애뮬레이터?(iphone 11, iOS 14) 안드로이드 애뮬레이터는 많지만 iOS 애뮬레이터는 없다고 보면된다.(코렐리움이 있긴함)해킨토시도 x86시절 성행했으나 애플실리콘으로 아키텍처가 변경된 이후 저물어가고 있다. iOS 보안 공부를 하려면 필연적으로 iOS기기가 필요하지만 특정 iOS버전을 맘데로 설치 할 수 없기 때문에 이마저 제약이 좀 있다.그러던 중 유튜브 보다가 발견한 QEMU iphone.과거 실무에서 QEMU는 리눅스에서 악성코드 분석 시스템을 만들기 위해 사용했었던 기억이있다.이제 iOS도 QEMU에서 돌릴수 있게 된걸까?https://www.youtube.com/watch?v=_ivKMRd-mik 설치가이드는https://github.com/ChefKissInc/QEMUAppleSilicon/wiki HomeApple Silic.. 2025. 7. 12.
[모던 C++] 배열 대신 std::vector, std::array를 써보자 특정 크기의 메모리 버퍼를 할당을 하거나 무언가 연속적인 데이터를 저장해야할 때 늘 그렇듯 C스타일 배열(array)를 썼다. 그것이 익숙 하기도 하고 속도면에서도 빠를테니까?unsigned char buffer[1024] ;하지만 C스타일 배열은 버그를 만들어낼 문제가 많고, 인덱스를 잘못 계산하면 메모리 범위를 벗어 날 수도 있다.그래서 그런지.모던(modern) C++에서는 std::vector, std::array를 쓰도록 권장하고 있다.std::vector, std::array는 배열과 마찬가지로 표준에 의해 연속된 메모리에 메모리 블록을 저장하고 유효한 범위 내에서 엑세스 할 수 있는 이터레이터(iterator)도 제공한다. std::vector vec1 = {1, 2, 3, 4, 5};std.. 2025. 7. 6.
C++ 값 카테고리 (lvalue, rvalue...) lvalue, rvalue에 대한 내용을 제미나이에게 물어본 결과이다.msdn c++ 관련 문서에도 나와있는 내용. 맞는지 틀린지는 나중에 읽어봐야겠음.https://learn.microsoft.com/ko-kr/cpp/cpp/lvalues-and-rvalues-visual-cpp?view=msvc-170 값 범주: Lvalues 및 Rvalues(C++)자세한 정보: Lvalues 및 Rvalues(C++)learn.microsoft.com C++ 값 카테고리 (Value Categories)C++의 값 카테고리(Value Category)는 C++11에서 이동 의미론(Move Semantics)이 도입되면서 더 정교하게 분류되었습니다. 이들은 표현식(expression)이 평가될 때 그 결과가 어떤 .. 2025. 7. 6.
[iOS 보안] sideloadly 설치 아이폰(iOS)에 공식 앱스토어에서 배포되지 않은 앱은 원칙적으로 설치가 안된다. 하지만 특별히 허용해 주는 경우가 있는데 바로 개발자가 개발한 본인의 앱이다. 이런 원리로 sideloadly라는 프로그램을 통해 공식 앱스토어에서 배포되지 않은 앱을 설치 할 수 있다. 물론 여기에는 약간의 제약이 있다. 7일동안 앱 실행이 허용되며 3개정도 앱을 설치 할 수 있다.설치에 앞서 준비물은 버릴듯한 애플 계정이다. sideloadly로 앱을 서명하는 과정에서 애플 개발자 계정이 이용된다. 물론 털리기는 쉽지 않으나 그래도 사용되지 않을 애플계정이면 좋을 듯 하다. dmg파일을 열어 sideloadly.app을 설치하고 실행해준다.애플 아이디를 넣고 설치하고자 하는 ipa파일을 설정한다. start를 누르니.. 2025. 7. 5.
[iOS 보안] iOS 15 Dopamine(도파민) rootless탈옥하기 (아이폰7) iOS 15부터 애플의 SSV 도입으로 rootless탈옥이 등장하게 되었다. rootless탈옥을 지원하는 탈옥툴은 대표적으로 palera1n, dopamine이 있다. palera1n은 A12이전의 칩의 부트롬 취약점을 이용한 탈옥이라 재부팅하면 다시 컴퓨터와 연결하여 탈옥을 수행해야하는 Semi-tethered 탈옥이다. 하지만 Dopamine의 경우 iOS 커널 취약점을 기반으로한 Semi-Untethered방식의 탈옥 툴로써 언제든지 컴퓨터연결없이 탈옥을 진행할 수 있다. 그래서 대세인 Dopamine 탈옥을 하는 방법을 알아보겠다.1. 설치 요약Dopamine 탈옥을 하는 방법은 대략적으로 다음과 같다.Dopamine 앱설치탈옥!문제는 Dopamine앱을 어떻게 설치하냐이다.dopamine홈페.. 2025. 7. 5.
[iOS 보안] 완탈? 반탈? 탈옥의 종류 (Tethered, Untethered jailbreak) iOS 탈옥을 알아보다보면 완탈, 반탈이라는 용어들이 등장한다. 모두 탈옥의 상태를 의미하지만 약간 상태가 다른듯하여 이번에 정리해본다. 참고로 영어권에서는 Tethered, Untetherd, Semi-Tetherd, Semi-Unthered와 같은 단어로 통용된다.1. 완전탈옥 : 완탈 (Untethered jailbreak)완탈은 가장 이상적인 탈옥 형태로 한번 탈옥을 하게되면 그 상태가 재부팅을 하여도 여전히 유지되는 상태를 말한다. 즉 완탈된 아이폰은 마음껏 재부팅을 할 수 있고 부팅에 제약이 없다. 하지만 요새는 이러한 완탈 형태의 탈옥이 불가능하다.2. 반탈옥: 반탈 (Tethered jailbreak)반탈은 영어로 Tethered Jailbreak이라고 불린다. 그 뜻에서 알 수 있듯 무언.. 2025. 7. 3.
[iOS보안] Rootless jailbreak(탈옥)이란? Rootless jailbreak(탈옥)이란?Rootless 탈옥이라는 단어를 처음 보았다면 Root권한이 없는 탈옥인가? 생각 할 수 있다. 하지만 이것은 잘못된 유추이다. rootless에서 root란 시스템 루트(root) 디렉터리를 이야기한다. 즉 root디렉터리를 건들지 않는 탈옥에서 나온 단어라 볼 수 있다.기존 탈옥은 루트 시스템(/)을 마운트하여 시스템파일에 직접 수정이 가능하였지만 rootless탈옥은 시스템 파일을 건들지 않고 사용자 계정 영역(/var, /private/var, /Users 등)에서만 동작하는게 특징이다.rootless탈옥을 하더라도 root권한은 여전히 유효하다.Rootless jailbreak은 왜 필요하게 되었나? (SSV)rootless jailbreak은 본격.. 2025. 6. 19.
수전 손잡이 고치기 (다이소 금속 접착제) 인테리어를 한지 이제 1년 반 정도 되는 시점에 샤워 수전 손잡이가 똑 떨어졌다. 우리집 샤워 수전은 무광 스텐리스 수전으로 디자인적으로 예쁘다. 물론 내가 고른건 아니고 인테리어 할 당시 사장님이 골라준 거고 나는 별 관심은 없었다. 수전따위가 무슨 문제가 있겠냐.아니 근데 손잡이 부분이 똑 떨어진게 아닌가? 이게 떨어진다는 것도 좀 어이가 없지만 원래 인테리어 처음 할 당시부터 약간의 유격이 존재 했었다. 무언가 꽉 고정안되어 있고 달달 거리는 느낌이였다. 그래도 이게 떨어질 줄은 몰랐다. 좀 찾아보니 우리집과 비슷한 모델인 듯한 수전들이 비슷한 현상이 있는것 같았다. 한번 고치고도 또 떨어지더라..떨어진 이유는 용접으로 붙어있는데 당연히 힘을 받으니 용접 부위가 약해져 떨어지는 것이다. 디자인적으로.. 2025. 6. 15.
PM2를 이용한 Node.js(Next.js) 서버 백그라운드 실행하기(+ selinux) nextjs와 같은 웹 애플리케이션을 배포 운영할때 단순히 npm run start로 실행하면 터미널이 닫히는 순간 꺼저버리기 때문에 실제 서비스를 할 수 없다. 이를 방지하고, 서버가 꺼지더라도 자동으로 재시작 되게 하려면 프로세스 관리자가 필요하다.nodejs환경에서 가장 널리 사용되는 프로세스 관리도구는 pm2이다.오늘은 next.js 앱을 pm2로 관리하는 방법을 알아보겠다.1. pm2 설치 & 심볼릭링크 생성npm install -g pm2-g로 글로벌 설치를 하여 시스템 전역에서 사용할 수 있도록한다.pm2 명령어를 실행하면 뭐라도 떠야하지만 -bash: pm2: command not found 가 발생할 수 있다.왜 그런지 모르겠지만 pm2를 암튼 /usr/local/nodejs/lib/no.. 2025. 6. 3.