<보안 study> 53

[iOS] iOS 어플 IDA로 원격 디버깅 하기

#iOS #ipa #IDA #어플 IDA 로 iOS ipa 파일 원격디버깅 붙는 법을 서술하겠습니다. 1. 준비물 탈옥 된 아이폰 (작성자 기준 iPhone 7, iOS 14.4.2) USB 8핀 케이블 (컴퓨터랑 연결할 용도) Decrypt 된 ipa 어플 파일 (Decrypt 과정은 생략. EASY 함) 2. 순서 2-1. PC 와 iPhone usb 로 연결 2-2. iPhone Wi-Fi 연결 이 부분에서 ip 알아내어 ssh 연결을 해야한다. 2-3. iPhone ssh 연결 후, debugserver 로 포트오픈 우선 cydia 에서 debugserver-10 을 설치 한다. 그리고 ssh 로 iPhone 에 접속해서 위와 같이 23946 포트를 열어 통신 대기를 한다. 물론 이 때도 USB ..

[LineCTF2021] babysandbox

[LINE CTF 2021] babysandbox 메인 화면이다. filename 과 content 를 입력하면 filename.ejs 형태의 파일로 app/views/sandbox 디렉토리에 올라가게 되고 입력한 content 를 ejs 포맷에 맞게 출력 가능하다. app.get("/:sandboxPath/:filename", authMiddleware, (req, res) => { try { res.render(`sandbox/${req.params.sandboxPath}/${req.params.filename}`, { flag, }); ... 핵심부분부터 말하면, 파일을 만들어서 접근을 했을 때 페이지에 인자로 전달된 flag 변수를 읽기만 하면된다. 하지만, 몇 가지 제약조건이 설정되어있어서 이 ..

<보안 study>/CTFs 2022.03.08

스마트컨트랙트 분석환경 구성하기

최근에 Hayyim CTF 하면서 EVMatrix 라고 스마트컨트랙트를 소재로한 문제를 접할 기회가 있었는데, 블록체인&코인&스마트컨트랙트에 문외한이었던 나는 그 문제를 포기할 수 밖에 없었다 ;; WriteUp:하임이 흑화하면? 초코하임 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 해당 Write Up 을 보면서 내가 몰랐던 지식들을 가지고 분석을 할 수 있었구나 하는 생각이 들어서 한 번 스마트 컨트랙트 분석환경을 직접 구축해보기로 하였다. 스마트 컨트랙트에 대해서는 글이 널려있기에 설명을 짧게 하자면, '이더리움 거래' 를 비롯한 여러 계약(무역계약, 금융계약, 부동산 계약 등등) 에 있어서 해당 계약이 체결 되는 시점에 이행할 행동을 정의한 script 를 스마트 컨트랙트라고 이해하면 될 듯하다. 이를 통해 dApp 이나 ..

[잡지식] 안드로이드 패키지 이름에서 com 접두사의 의미

기존 자바의 패키지와 안드로이드의 자바 패키지를 구분하기 위한 패키지 이름 구분자라고 한다. 안드로이드 패키지에는 com.(기업이름).(플랫폼).~~~ 을 붙여서 패키지 이름을 구성하면 된다고 한다. 궁금해서 찾아보았음. https://stackoverflow.com/questions/26194527/com-prefix-meaning-on-android-apps com. prefix meaning on Android apps What does mean the com. prefix in some Android processes? E.g.: com.whatsapp, com.google.android.gapps, com.android.mms, com.antivirus, etc. stackoverflow.com

[게임핵개발연습#4] 게임에선 좌표계산이 어떻게 될까? - 2. screen상의 오브젝트 위치 표시하기

#게임핵 #AssaultCube #ESP #OpenGL 지난 게시글에서 나의 시점을 표시하는데에 관여하는 MVP Matrix 값을 메모리 상에서 View Matrix 의 변화를 통해 찾아보았다. 이번 시간에는 우리가 구한 MVP Matrix 값과 다른 Player 의 좌표 값을 이용하여 상대가 정확히 어디에 있는지 벽너머에서도 보이게 표시해보도록 하겠다. 그전에 OpenGL 에서 오브젝트가 우리가 보는 평면 2D screen 상에 어떻게 그려지는지에 대한 과정을 알아보도록 하자. 위 사진은 OpenGL 렌더링 파이프라인 에서 정적인 3D 좌표가 2D 스크린을 통해 우리 눈으로 들어오기까지 과정을 여러 행렬과 함께 간략히 나타낸 것이다. OpenGL API 상에서는 각 Coordinates 에 대해 변환을..

[게임핵개발연습#3] 게임에선 좌표계산이 어떻게 될까? - 1. viewMatrix 찾기

#AssaultCube #게임핵 #ESP #OpenGL 여태까지는 나 자신, 개인 플레이어에 대한 핵을 알아보고 만들어봤다. 사실 이 방법들은 온라인 상에서하는 MultiPlay 방식에선 1도 먹히지 않는다.(단, 수류탄 개수, 총알 개수 같은 일부 기능은 먹힌다) 아마 추정컨데, 체력이나 여러 정보를 여타 FPS 들 처럼 서버를 통해 관리하기 때문이 아닐까 생각한다. 그러나 우리의 최초 목표와 같이 다른 적들과 같은 팀원들의 정보는 서버에서 결국 내 PC 로 받아오는 구조가 될 수 밖에 없기에 메모리 어디엔가는 적들과 팀원들의 정보가 저장되어있을 것이다. 그러면 이 정보를 이용해서 적들의 현재 위치, 체력은 얼마인지, 총알은 얼마나 남아있는지 정도는 알 수 있지 않을까? 그것이 바로 ESP 핵 이다. ..

[게임핵개발연습#2] Local Player Object 베이스 주소 찾기

#AssaultCube #게임핵 #ESP Assault Cube 를 이용한 게임핵 개발 연습 시작. 목표는 Single Play 뿐만이 아닌 Multi Play 에서도 사용할 수 있는 ESP 핵을 만드는 것이다. ESP 핵 중에서도 상대 player 의 체력과 위치가 표시되는 월핵을 제작해보기로 한다. 지난 포스팅에 이어서 같은 Health 주소 값에 브레이크를 걸고 이번에는 피가 빠진 상태에서 힐팩으로 피를 충전해보자. 형광펜 친 부분이 힐팩에 의해 올라간 체력 값을 Health 메모리에 넣는 과정이다. 철저히 확인하자면, eax+4 는 0x028CA278 으로 Health 메모리 주소가 맞다. 그러면 EAX 에 어떻게 저 주소가 들어가게 되었을까? 분명히 Player 에 대한 구조체 혹은 클래스가 존..

[게임핵개발연습#1] 여러 Local 값과 주소 탐색

#AssaultCube #Hack #ESP Assault Cube 를 이용한 게임핵 개발 연습 시작. 목표는 Single Play 뿐만이 아닌 Multi Play 에서도 사용할 수 있는 ESP 핵을 만드는 것이다. ESP 핵 중에서도 상대 player 의 체력과 위치가 표시되는 월핵을 제작해보기로 한다. Assault Cube 는 대강 이런 고전틱한 FPS 게임인데, 게임 리버싱의 교본? 정도가 되는 게임이다. 아마 요즘 처럼 디버깅을 방해하는 요소가 적어서 그런 듯 하다. 싱글 플레이에서는 위처럼 체력, 탄창, 수류탄 개수 등의 정보를 로컬에서 자유자재로 바꾸면서 bot 들과 전투를 벌일 수 있다. 일단은 가볍게 체력 값에 대한 조정을 진행해보자. 툴은 Cheat Engine 을 사용할 것이다. 우선 ..

반응형