정리. 리사이클러뷰(RecyclerView)
정리. 리사이클러뷰(RecyclerView)
2021.12.13소개 리스트 모양으로 보여줄 수 있는 위젯으로 리사이클러뷰(RecyclerView)가 있다. 리사이클러뷰는 기본적으로 상하 스크롤이 가능하지만 좌우 스크롤도 만들 수 있다. 왜냐하면 처음 만들어질 때부터 레이아웃을 유연하게 구성할 수 있도록 설계되었기 때문이다. 그리고 이름에서 살펴볼 수 있듯이 뷰 객체를 '재활용(Recycle)'한다는 느낌 그대로 각각의 아이템이 화면에 보일 때 메모리를 효율적으로 사용하도록 캐시(Cache) 메커니즘이 구현되어 있다. 구현 액티비티에 리사이클러뷰 추가 액티비티에 리사이클러뷰를 추가하는 방법은 간단하다. 좌측 상단의 팔레트에서 RecyclerView를 끌어다 화면에 놓으면 된다. 모델 클래스 정의 public class Person { String name; Strin..
2021. 10. 19
2021. 10. 19
2021.10.19이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
2021. 10. 18
2021. 10. 18
2021.10.18이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
2021. 10. 17 Docker
2021. 10. 17 Docker
2021.10.17이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
번외. IEEE 754
번외. IEEE 754
2021.08.07이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
2편: 타입(Type)
2편: 타입(Type)
2021.08.06이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
1편. 변수(Variable)
1편. 변수(Variable)
2021.08.05변수(variable)는 임시로 혹은 영구적으로 값을 기억해두기 위한 저장소를 말합니다. 쉽게 말하자면 값을 담아두는 상자로, 수학의 변수와 비슷하다고 볼 수 있습니다. 우리가 어떤 한 상자에 알기 쉽게 이름표를 붙여두면, 나중에 필요할 때마다 그 상자를 열어 무언가를 넣거나 내용물을 살펴볼 수 있습니다. 그 말인즉슨, 이 이름표(변수명)를 가지고 지금 가지고 있는 스마트폰의 메모리 공간에 접근할 수 있다는 말이기도 합니다. 변수 선언 그럼 코틀린에서는 어떻게 변수를 선언할 수 있을까요? 그리고 그 변수에 어떻게 값을 할당할까요? 차근차근 알아보도록 하겠습니다. 할당(assignment)? 선언(declaration)? 초기화(initialization)? 할당은 변수가 가리키는 메모리 공간에 값을 복사..
메모. ConstraintLayout
메모. ConstraintLayout
2019.11.01이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
리버스 엔지니어링 스터디 3편. 인라인 코드 패치(Inline Code Patch)
리버스 엔지니어링 스터디 3편. 인라인 코드 패치(Inline Code Patch)
2014.05.11[리버스 엔지니어링 스터디][이 글은 저자인 이승원씨가 작성한 '리버싱 핵심원리: 악성 코드 분석가의 리버싱 이야기'를 참고하여 쓰여졌습니다.] 코드 케이브를 삽입 후 프로그램을 패치한다!인라인 코드 패치(Inline Code Patch) 오늘은 인라인 코드 패치(Inline Code Patch)에 대해서 공부해보도록 하겠습니다. 인라인 코드 패치란 원하는 위치에 있는 코드를 직접 패치하기 어려울 때 코드 케이브(Code Cave)라고 하는 패치 코드를 삽입한 후 실행하여 프로그램을 패치시키는 기법이라 합니다. 주로 패킹 혹은 암호화된 프로그램은 EP(Entry Point)에서 OEP(Original Entry Point) 코드를 복호화 시킨 뒤, 복호화 된 OEP 부분으로 이동합니다. 만약, 우리가 패..
리버스 엔지니어링 스터디 2편. 스택 프레임(Stack Frame)
리버스 엔지니어링 스터디 2편. 스택 프레임(Stack Frame)
2014.05.05[리버스 엔지니어링 스터디] 함수 호출시 할당되는 메모리 블록 스택 프레임(Stack Frame) 스택에 저장되는 함수의 호출 정보를 스택 프레임(Stack Frame)라고 하며, 이러한 스택 프레임에는 함수로 전달되는 인수와, 함수 실행 모두 마치면 돌아올 복귀 주소와 지역 변수 등의 정보가 들어갑니다. 빠르고 손쉽게 지역 변수 혹은 인수 등에 접근하기 위해 EBP 레지스터를 통하여 스택 프레임을 참조할 수 있습니다. 더욱 파고들기 위해서, 함수 호출 시 스택 프레임이 어떠한 형태로 생성이 되고 소멸은 또 어떻게 되는지 한번 확인해보도록 하겠습니다. 먼저, C언어로 작성된 아래 예제의 코드를 빌드한 후 올리 디버거를 통하여 살펴보도록 합시다. #include int sum(int a, int b) { ..
Babylon Keygenme(바빌론 키젠미)를 크랙해보자.
Babylon Keygenme(바빌론 키젠미)를 크랙해보자.
2014.03.03이번에는 바빌론 키젠미(Babylon Keygenme) 프로그램을 리버싱 해보도록 하겠습니다. 상당히 쉬운 편이며, 프로그램은 C언어로 만들어졌다고 합니다. 패킹은 되어있지 않은 상태이구요. 우선은 아래 파일을 다운로드 받아 Babylon Keygenme.exe를 실행시켜 보도록 합시다. 실행 파일을 실행시키시면 아래와 같은 화면이 보여질 것입니다. 우선은 아무렇게나 입력을 한 뒤에 결과를 확인해볼까요? 번역기로 저 문장을 해석해보니 잘못된 패스워드라고 합니다. 우선은 올리디버거를 열어 이 파일을 열어보도록 합시다. (필자는 이뮤니티 디버거를 사용했습니다. 올리 디버거를 쓰셔도 무방합니다.) 디버거로 파일을 열었으면 어셈블리 코드가 보이는 창에 우클릭을 하여 팝업 메뉴에서 Search for -> All..
리버스 엔지니어링 스터디 1편. PE(Portable Executable) 구조
리버스 엔지니어링 스터디 1편. PE(Portable Executable) 구조
2013.08.11[리버스 엔지니어링 스터디] Win32의 기본적인 파일 형식 PE(Portable Executable) 구조 오늘은 PE(Portable Executable)에 대해서 알아보도록 하겠습니다. PE라는 말을 들어보신 적이 있나요? 아마 이 글을 보고 계시는 분들 중에 리버싱 경험이 있으신 분들은 PE란 말을 이미 알고 계실겁니다. 우리가 쓰고 있는 윈도우즈 환경의 실행 파일 포맷을 PE라고 하며, "Portable"의 단어 뜻 그대로 의식성이 있으며 플랫폼에 독립적입니다. PE 파일은 굳이 확장자가 EXE인 파일만 일컫는게 아니며 SCR, SYS, DLL, OCX 등도 포함이 되고, 중간 파일인 OBJ 파일도 PE 파일이라고 간주합니다. PE 구조의 이해는 API 후킹, 압축 실행 파일 등과 같은 고급 리..