본문 바로가기

분류 전체보기

(23)
OllyDbg 디버거 명령어 디버거 동장 명령(Code Window에서 동작함) 명령어 단축키 설명 Restart Ctrl+F2 다시 처음부터 디버깅 시작(디버깅을 당하는 프로세스를 종료하고 재실행) Step Into F7 하나의 OP code 실행 (Call 명령을 만나면, 그 함수 코드 내부로 따라 들어감) Step Over F8 하나의 OP code 실행(Call 명령을 만나면, 따라가지 않고 그냥 함수 자체를 실행) Execute till Return Ctrl+F9 함수 코드 내에서 RETN 명령어까지 실행(함수 탈출 목적) Go to Ctrl+G 원하는 주소로 이동(코드/메모리를 확인할 때 사용. 실행되는 것은 아님) Execute till Cursor F4 cursor 위치까지 실행(디버깅하고 싶은 주소까지 바로 갈 수 ..
IA-32 Register 기본 Basic Program Execution registers ​ 1)범용 레지스터 범용 레지스터들의 크기는 32비트이며 보통은 상수/주소등을 저장할 때 주로 사용된다. 특정 어셈블리 명령어에서는 특정 레지스터를 조작하기도 한다. ​ EAX : 주소 산술연산(ADD,SUB,XOR,OR 등) 명령어에서 상수/변수 값의 저장 용도로 많이 사용된다. 함수의 반환값을 저장한다. EBX : ESI나 EDI와 결합해 인덱스에 사용된다. ECX: 반복 명령어를 사용할 때 반복 카운터를 저장한다. EDX: EAX와 같이 사용되며 부호 확장 명령 등에 활용된다. ​ 밑의 4개는 주로 메모리 주소를 저장하는 포인터로 사용된다. EBP: 하나의 스택 프레임의 시작 주소가 저장된다. 현대 사용되는 스택 프레임이 살아있는 동안 ..
바이트 오더링 바이트 오더링이란 데이터를 저장하는 방식을 말합니다. 크게 두 가지가 있습니다. 빅 엔디언(Big Endian)과 리트엔디언 (Little Endian)방식입니다. ​ 빅엡니던 방식은 사람이 보는 방식과 동일하게 앞에서부터 순차적으로 저장하지만 리틀 엔디언 방식은 데이터를 저장할 때 역순으로 저장합니다. 즉 저장되는 바이트의 순서가 뒤집어져있습니다. 그러나 리트 엔디언일지라도 바이트 자체는 정상적인 순서로 저장이됩니다. 오로지 2바이트 혹은 4바이트 자료형과 멀티바이트인 경우 각 바이트가 역순으로 저장되는 것입니다. *str 문자열은 엔디언 형식에 상관없이 동일 TYPE Name SIZE 빅 엔디언 리틀 엔디언ㅠ BYTE b 1 [12] [12] WORD w 2 [12][34] [34][12] DWORD..
스택 프로세스에서 스택 메모리의 역할 ​ 1. 함수 내의 로컬 변수 임시 저장 2. 함수 호출 시 파라미터 전달 3. 복귀 주소(return address)저장 ​ (출처. 리버싱 핵심원리) ​ 프로세스에서 스택포인터(ESP)의 초기값은 Stack Bottom 쪽에 가깝습니다. PUSH 명령에 의해서 Stack에 값이 추가되면 Stack Top을 향해 움직이고, POP 명령에의해 스택에서 값이 제거되면 스택 포인터는 Stack Bottom 을 향해 아래쪽으로 움직입니다.\ 중요! 스택은 높은 주소에서 낮은 주소 방향으로 자라난다!! ​ 예제 !) ​ ESP=12FF8C PUSH 100 명령 실행 -----------------------------------------------ESP의 값 4바이트만큼 감소 ..
NFT 기술의 이해와 한계점 - 3 제 3장 NFT 현황 및 활용사례 1. 빠르게 성장하는 NFT 시장의 현황 2017년 등장한 후 2019년까지 더딘 성장을 보이다가 2020년 하반기부터 폭발적으로 성장하기 시작함 . 현재 활발하게 거래되고있는 NFT 거래소는 대표적으로 오픈씨, 라리블, 바이낸스 등으로 대부분 해외 플랫폼이다. 국내에서도 NFT의 안정적인 거래를 위해 'NFTting'이 설립되어 오픈하였고, 그라운드X, 업비트, 코인플러그 등에서 NFT 거래를 위한 플랫폼 개발 또는 베타 서비스를 시작하였다. 2. 가장 먼저 NFT가 도입된 영역, 온라인, 모바일 게임 -2017년 11월 출시된 '크립토키티'는 NFT를 활용한 최초의 게임 :'크립토키티'는 NFT를 활용한 최초의 게임으로 아이넴 거래가 이루어짐 -2018년 NFT 게임..
NFT 기술의 이해와 한계점 - 2 제 2장 NFT 기술의 발전 1. NFT 기술의 개념과 발전 NFT란 대체 불가능 토큰(Non-Fungible Token) 으로써, 토큰마다 고유의 값을 가지고 있어 A 토큰을 B토큰으로 대체 할 수 없는 토큰 즉, 기존 비트코인, 이더리움 등과 같이 발행된 가상자산이 서로 동일한 가치로 거래할 수 있는 대체 가능한 토큰이 아닌 "각 토큰이 서로 다른 가치를 가지고 있는 고유한 자산"을 의미 -NFT는 2015년 10월, 이더리아 프로젝트로 시작되어 11월 영국 런던에서 개최된 이더리움 개발자 회의 데브콘에서 처음 공개되었고 NFT 활용한 시장이 태동되기 시작한 것은 첫 등장 2년뒤인 2017년 6월, 맷 홈과 존 왓킨슨 두 사람이 설립된 기업인 "라바 랩스"가 시초다. 라바랩스에서 발표한 이더리움 블록..
NFT 기술의 이해와 한계점 - 1 제 1장 . 블록체인의 이해 1.블록체인의 이해 -블록체인은 "데이터를 거래할 때 중앙 집중형 서버에 기록을 보관하는 기존 방식과 달리 참여자 모두(일정한 조건을 갖춘 노드)에게 내용을 공유하는 분산형 디지털 장부 이다. -또는 "거래정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P(Peer-to-Peer) 네트워크에 분산하여(분산 원장: Distributed Ledge), 참가자가 공동으로 기록하고 관리하는 기술이다. -블록체인 기술기반의 탈중앙화 시스템을 통해 거래의 신뢰성과 투명성을 확보하는 것이 목적이다. :기존 전자거래가 중개 기관(거래 외 제3자)에 의존적 시스템으로 중개 수수료 부담 및 거래의 투명성 문제등 발생 2. 블록체인의 핵심 기술 -P2P(peer-to-peer) 네트워크 ..
fridalab challenge writeup! - 3번, 4번 안드로이드 취약점 분석 fridalab challenge를 통해 frida 문법을 익혀보고자 함! fridalab challenge 03 3. Make chall03() return true 클래스 내부의 소스코드를 보면 return 타입은 boolean이며 반환값을 false이다. 이 반환 값을 true로 변환하는 것이 핵심인데 메소드를 재작성하기 위해서는 Implementaion을 사용해주면 된다. frida -U -l fridalab_03.js -f uk.rossmarks.fridalab --no-pause fridalab challenge 04 4. Send "frida" to chall04() chall04() 메소드에 인자로 "frida" 문자열을 전달하는 문제다. 해당 메소드는 인자 값으로 ..