분류 전체보기
-
[2021/08/09][짤막한 공지 - 무료 배포 이벤트]짤막한 공지 2021. 8. 9. 09:49
[2021/08/09][짤막한 공지 - 무료 배포 이벤트] ※ 해당 “무료 배포 이벤트” 공지의 경우 영문 버전이 제공되지 않습니다. ※ 해당 “무료 배포 이벤트”는 예고없이 종료될 수 있습니다. 안녕하세요, 루니프입니다. 카카오톡 오픈채팅방을 개설함에 따라 이의 활성화를 위한 “무료 배포 이벤트”를 시행하고 있습니다. 카카오톡에서 “핀툴(PinTool)로 역공학(리버싱) 입문하기” 혹은 “루니프”를 검색하여 오픈채팅방에 입장하신 후 무료 배포 이벤트를 신청하시면 됩니다. 신청 방법은 본인의 오픈채팅방 닉네임과 구글 메일 주소를 저의 메일로 보내주시면 됩니다. 닉네임과 메일 주소가 확인되신 분들께 “[핀툴 프로그래밍 기본서] - 제1부. 헬로 핀툴 월드!”를 무료로 제공하겠습니다. (만약 이미 제1부를 ..
-
[2021/08/09][짤막한 공지 - 오픈채팅방 개설]짤막한 공지 2021. 8. 9. 09:47
[2021/08/09][짤막한 공지 - 오픈채팅방 개설] 안녕하세요, 루니프입니다. 카카오톡 오픈채팅방을 개설하였습니다. 오픈채팅방은 기존 SNS(인스타그램, 페이스북, 티스토리)와는 달리 실시간으로 여러분들과 소통을 하고 토론을 하기 위한 공간입니다. 오픈채팅방의 주제는 “핀툴(PinTool)로 역공학(리버싱) 입문하기”입니다. 핀툴과 역공학 뿐만 아니라, 암호학, 더 나아가 보안 전반에 대한 이야기를 나눌 수 있는 공간이오니 많은 분들의 관심 부탁드립니다. 특히 본인이 핀툴이나 역공학에 관심은 있는데 방향을 잡기 어려운 경우 큰 도움이 될 수 있을 것으로 생각합니다. 오픈채팅방의 주소는 “https://open.kakao.com/o/gzyDGOsd”입니다. 카카오톡에서 “LootNiP”를 검색하셔도 ..
-
[2021/08/05][짤막한 이야기 - 동적 바이너리 계측]짤막한 이야기 2021. 8. 5. 09:31
[2021/08/05][짤막한 이야기 - 동적 바이너리 계측] “동적 바이너리 계측(Dynamic Binary Instumentation, 이하 DBI)”는 분석 대상 프로그램(=바이너리)이 실행되는 중(=동적)에 분석용 코드를 삽입하여 프로그램을 분석(=계측)하는 기술이다. 즉, DBI 기술은 “역공학” 중에서도 “동적 분석” 기술에 해당된다. 프로그램 실행 중 분석용 코드를 삽입하기 때문에 분석 대상의 소스코드가 필요하지 않다는 특징이 있다. 대표적으로는 핀툴(PinTool, 루니프[LootNiP]의 모티브)이 DBI 기술을 제공하며, 그 외에도 DynamoRIO, Valgrind, Dyninst 등의 DBI 제공 프레임워크들이 존재한다. 대다수의 소프트웨어 보안 및 소프트웨어 분석 관련 연구는 DB..
-
[2021/08/04][짤막한 이야기 - 시간 복잡도]짤막한 이야기 2021. 8. 4. 11:02
[2021/08/04][짤막한 이야기 - 시간 복잡도] “시간 복잡도(Time-Complexity)”란 어떠한 일을 수행하는데 소요되는 대략적인 시간을 의미한다. 그림에는 특정 자료구조(Data Structure, 이 경우에는 배열)에 데이터가 입력되어 있다. 위의 자료구조에는 10개의 데이터가 무작위로 입력되어 있고, 아래의 자료구조에는 10개의 데이터가 정렬된 상태로 입력되어 있다. 위의 자료구조에서 가장 큰 값(9)을 찾기 위해서는 배열을 순차적으로 탐색하게 된다. 최악의 경우 가장 큰 값이 자료구조 내 가장 뒤에 있는 경우 10개의 데이터를 모두 탐색한 후에야 찾을 수 있다. 데이터가 10개가 아닌 1,000,000개(1백만개)라면 그만큼 시간이 더 소요된다. 즉, 데이터의 개수 N만큼 시간이 소..
-
[2021/08/04][짤막한 공지 - “짤막한 이야기” 관련 공지]짤막한 공지 2021. 8. 4. 09:50
[2021/08/04][짤막한 공지 - “짤막한 이야기” 관련 공지] 안녕하세요, 루니프입니다. 당분간 “짤막한 이야기”에 “보안 이야기”와 “알고리즘 이야기”가 함께 게시됩니다. 저의 주 전공분야는 보안이지만, 최근 알고리즘에 대하여 얕게나마 학습할 기회가 생겨 이를 정리하는 차원에서 간략한 개념을 포스팅할 예정입니다. 물론 포스팅이 항상 그렇듯이 매우 얕은 개념적인 부분만을 게시할 예정이오니 추가 학습은 여러분들의 몫으로 남겨두겠습니다. 좋은하루 되십시오. #공지 #루니프 #짤막한이야기 #보안 #알고리즘 [2021/08/04][Short Notice - "Short Story" Related Notice] Hello, this is LooNiP. For the time being, "Security ..
-
[2021/08/03][짤막한 이야기 - 유니온 파인드]짤막한 이야기 2021. 8. 3. 10:29
[2021/08/03][짤막한 이야기 - 유니온 파인드] “유니온 파인드(Union-Find)”이란 어떠한 그룹에서 여러 노드가 존재할 때 임의의 두 노드를 하나의 그룹으로 병합(Union)하고, 임의의 노드가 어떤 그룹에 속하는지 탐색(Find)하기 위한 알고리즘이다. 즉, 병합과 탐색을 주된 연산으로 하며 병합은 2개의 노드 X와 Y의 그룹명을 합치는 역할을, 탐색은 1개의 노드 Z의 그룹명을 출력하는 역할을 한다. 알고리즘 구현 문제에서는 주로 어떤 팀과 어떤 팀이 동맹관계인지 확인하거나 할 때에 응용할 수 있다. 특정 그룹을 탐색하기 위한 방법으로는 꼭 “유니온 파인드”를 적용하지 않아도 “전수 조사(Brute Force)”가 가능하지만, 이 경우 높은 확률로 많은 시간이 소요되게 된다. 그림의 ..
-
[2021/07/26][짤막한 이야기 - 이진 탐색]짤막한 이야기 2021. 7. 26. 13:08
[2021/07/26][짤막한 이야기 - 이진 탐색] “이진 탐색(Binary Search)”이란 어떠한 그룹을 탐색할 때 절반으로 나누어가며 탐색하는 기법이다. 일반적으로 정렬이 적용된 자료구조에서 특정한 값을 탐색할 때에 적용하는 탐색 방법을 의미한다. “정렬”은 알고리즘에서도 매우 중요한 개념 중 하나로 다음에 소개할 주제이기도 하다. 예를 들어, 1 ~ 100,000까지의 공간에서 특정한 수(X)를 탐색할 때 중간에 해당하는 인덱스인 50,000번째부터 확인하게 된다. 50,000번째 공간에 저장된 수(Y)가 찾고자 하는 특정한 수와 같다(X = Y)면 정말 행운이지만, 일반적으로는 그렇지 않다. 만약 특정한 수보다 저장된 수가 작은 경우(X > Y)라면 그 공간의 오른쪽을, 반대(X < Y)라면..
-
[2021/07/22][짤막한 이야기 - 깊이 우선 탐색]짤막한 이야기 2021. 7. 22. 10:16
[2021/07/22][짤막한 이야기 - 깊이 우선 탐색] “깊이 우선 탐색(Depth First Search, DFS)”이란 어떠한 그룹을 전체적으로 탐색할 때 깊이를 우선으로 하여 탐색하는 기법이다. 일반적으로 “트리(Tree)”를 탐색할 때에 우선시 하는 탐색 방법을 의미한다. 트리는 자료구조 중 하나로 다음에 소개할 주제이기도 하다. 트리의 깊이를 우선하여 탐색한다는 것은 갈림길이 나왔을 때 아래로 먼저 진행한다는 의미이기도 하다. 그리고 이것은 이전에 언급하였던 “우수법”과 동일한 알고리즘이다. 동굴에서 벽에 손을 짚고 걷는다는 것은 갈림길이 나올때마다 안으로 더 깊이 들어간다는 의미이기도 하다. 따라서 갈림길에서 잘못된 방향을 선택할 경우 동굴 출구로의 최단 거리를 구하는 것은 어려워진다. 이..