티스토리

리버스코어 ReverseCore
검색하기

블로그 홈

리버스코어 ReverseCore

reversecore.com/m

-= 리버스코어 =-

구독자
7
방명록 방문하기
공지 [실습예제 & 소스] 모두보기

주요 글 목록

  • 리버싱 환경의 변화 : 가상머신(Virtual Machine), 디버거(Debugger) {배경} 제가 처음 소프트웨어 리버스 엔지니어링을 접한게 2005년 입니다. 테스트 PC에 Windows XP (32bit) 설치해서 사용하던 시절이었고요, 디버거로는 ollydbg 를 사용하였지요. [리버싱 핵심 원리] 책은 Windows 7 (32bit) 환경에서 ollydbg2.0 으로 작업하였습니다. 시대는 빠르게 변화하여 Windows 10 (64bit) 이 완전히 정착하였고, 가상머신(Virtual Machine)이 엄청나게 발전하여 개발 및 리버싱 환경에 깊숙히 자리잡고 있습니다. 이제 과거의 리버싱 환경을 새롭게 업데이트 해야 할 때가 온 것이지요. {해결방법} 다음에 소개하는 방법으로 각자 새로운 시대에 맞는 리버싱 환경을 꾸며 보시기 바랍니다. #1. 가상머신 (Virtual Machi.. 공감수 9 댓글수 5 2021. 4. 18.
  • 애플 The New iPad 발표를 본 소감 The New iPad 의 핵심은 레티나 디스플레이와 이를 잘 활용한 애플의 킬러 앱인 iWork(Pages, Numbers, Keynotes) 와 iLife(GarageBand, iMovie, iPhoto), 그리고 3rd party 제작사들의 수준 높은 앱 이라고 생각합니다. 특히 iWork 와 iLife 세트는 모두 구입해도 $45 밖에 안하면서 한번의 구매로 iPhone 과 iPad 를 동시에 지원하는 유니버셜 앱입니다. 꾸준한 업데이트로 새로운 기능도 추가되고요. 그리고 iCloud 를 이용하여 '여기서 하면 저기서도 되있고' 기능이 지원됩니다. 애플이 직접 제작한 iWork 와 iLife 의 데모를 보면 정말 감탄스러운게 철저히 초보 사용자 관점에서 설계되었다는 겁니다. 애플이 제작한 아이패드.. 공감수 3 댓글수 8 2012. 3. 9.
  • InjDll64.exe 버전업! - 64bit 지원 기존 InjDll.exe 유틸리티를 업그레이드(Ver. 1.1.1) 하였습니다. 1. 64bit 지원 2. 의 상대 경로 지원 ☞ InjDll.exe - DLL Injection/Ejection 전용 도구 Windows 7 64bit OS 가 보급됨에 따라 리버싱 분야에도 점차 64bit 지원 여부가 중요한 이슈가 되고 있습니다. 저 또한 최근에 64bit 관련 내용을 공부하면서 흥미로운 내용을 많이 접하였습니다. (이번에 작업 중인 리버싱 책에 64bit 리버싱 챕터를 추가시켰습니다.) 각 플랫폼(32/64bit) 별로 Dll Injection 을 하실 때 다음의 내용을 주의해 주시기 바랍니다. - Target 프로세스가 32bit 인 경우 : Injector & Dll => 모두 32bit (PE32.. 공감수 0 댓글수 60 2010. 10. 29.
  • 도대체 리버싱을 어떻게 공부해야 하나요? "리버싱 공부를 어떻게 시작해야 할지 모르겠어요. 도와주세요." 라는 질문을 종종 받곤 합니다. 제가 블로그 활동을 하는 이유는 우리나라의 리버싱 기술 수준을 향상시키고, 리버싱 기술을 널리 전파하는데 작은 힘을 보태는 것입니다. 특히 리버싱에 처음 입문하시는 분들께 길잡이 역할을 할 수 있다면 더이상 바랄게 없습니다. 과연 어떻게 하면 리버싱을 잘 할 수 있을지 제 생각을 얘기해 드리겠습니다. 1. 모든 공부에는 "목표"가 있어야 합니다. "리버싱 전문가가 되기 위해", "취직을 위해", "흥미를 위해", "해커가 되기 위해" 등의 자신만의 목표가 필요합니다. 이러한 목표가 없으면 힘든 공부를 지속하기 어렵습니다. (도중 포기할 확률이 높아진다는 뜻입니다.) 목표는 여러분들에게 방향을 제시합니다. 그 .. 공감수 5 댓글수 44 2010. 10. 13.
  • 리버서의 연륜을 말해주는 Opcode Manual 지난주부터 "IA-32 Instruction" 챕터를 작업하는 중인데요, IA-32 Instruction 이란 쉽게 말해 아래 그림에서 빨간 박스로 표시된 부분을 말하는 것입니다. 디버거에 탑재된 Disassembler 가 저 Instruction 을 해석해서 우리가 익히 보는 (오른쪽의) Disassembly 코드를 만들어 내지요. "IA-32 Instruction" 챕터를 작업하면서 제 노하우를 공개하였습니다. 그건 바로 Intel IA-32 Manual 에서 Instruction 을 해독하기 위해 필요한 Opcode Map(Opcode Table) 부분만 프린터로 출력한 것입니다. 저한테는 Opcode 매뉴얼인 셈이지요. (아래 그림 참고) 작업 중인 책 내용의 일부를 소개합니다. (참고 섹션 내용.. 공감수 2 댓글수 24 2010. 8. 31.
  • 리버싱의 참 맛 "끓을 만큼 끓어야 밥이 되지, 생쌀이 재촉한다고 밥이 되나." 윤오영님의 수필 [방망이 깎던 노인] 에 나오는 구절입니다. 필수적인 과정을 거쳐야 제대로 된 결과가 나온다는 뜻이지요. 리버싱을 제대로 하려면 공부해야 할 내용이 무척 많다는 것을 잘 아실 것입니다. 우리는 리버싱 공부에 시간과 노력을 쏟아야 합니다. 하지만 조급한 마음이 사람을 초조하게 만들고 반복된 실패를 참을 수 없게 만드는 것 같습니다. 리버싱을 하다 보면 매 순간마다 (내가 알지 못하는) '벽'에 부딪힙니다. 이러한 '벽'을 도전 과제로 삼고 극복하는 과정에서 희열이 느껴집니다. 제 생각에는 이게 바로 리버싱의 본질이 아닐까 생각합니다. 잘 안 된다고 스트레스 받지 마세요. 리버싱은 원래 "잘 안 되는 속성"을 가지고 있습니다. .. 공감수 1 댓글수 19 2009. 12. 4.
  • UPack 의 추억 dwing's homepage>그 동안 총 5 회에 걸쳐서 UPack 의 PE Header 분석과 Debugging 에 대해서 연재를 하였습니다.UPack 상세 분석 – PE Header 완전 정복 (1)UPack 상세 분석 – PE Header 완전 정복 (2)UPack 상세 분석 – PE Header 완전 정복 (3)UPack 상세 분석 – PE Header 완전 정복 (4)UPack 디버깅 - OEP 찾기다른 Packer 도 많은데 굳이 이 UPack 에 이렇게 많은 공(?)을 들인 까닭은 제 개인적인 추억(경험) 때문입니다.예전에 PE 공부를 마치고 PE File Format 에 자신 있던 그때에, 전혀 새로운 PE 세계가 있다는 걸 알려준 소중한 Packer 입니다. 또한 PE 스펙은 그냥 스펙.. 공감수 1 댓글수 11 2009. 9. 21.
  • DDoS 사이버 테러의 3대 의혹 (누가? 왜? 어떻게?) 2009년 7월 7일부터 시작된 무차별 DDoS 공격으로 인하여 나라 전체가 큰 혼란에 빠져버렸습니다. 이번 DDoS 사이버 테러를 지켜보면서 풀리지 않는 3 가지 의혹(누가? 왜? 어떻게?) 에 대해서 제 나름의 생각을 정리해 보겠습니다. #1. Who? 누가 이러한 사이버 공격을 감행하는 걸까요? 개인? 혹은 단체? 규모있는 단체일 가능성이 높습니다. 이에 대한 근거로는 DDoS 공격에 사용된 좀비 PC 가 수 만대에 이를 정도로 널리 악성코드를 감염시켰다는 점입니다. 통상적으로 이렇게 기존 AV 제품에 걸리지 않고 단기간에 널리 퍼지기 위한 조건은 아래와 같습니다. 악성코드의 제작이 마치 상용 SW 제품과 같은 단계(기획, 개발, 테스트, 배포)를 거칩니다. => 버그 없이 잘 동작하는 악성코드가 .. 공감수 1 댓글수 8 2009. 7. 10.
  • 좋은 분석 도구(tool)를 선택하는 5 가지 기준 #0. prologue 분야를 막론하고 기술자(특히 엔지니어)들은 자신만의 작업환경과 손에 익은 도구(장비)가 있습니다. 기술자(특히 엔지니어) 란 특정 업무를 위해서 필요한 도구를 아주 능숙하게 다룰 줄 아는 사람들입니다. 같은 도구를 사용하더라도 기술자의 능력에 따라서 전혀 다른 결과를 보여줍니다. (더 나아가서 필요한 도구를 직접 만들어 내기도 합니다.) 또한 기술자들은 각자 자신만의 도구를 가지고 있으며 한번 손에 익힌 도구를 되도록 오래 쓰고 왠만해서는 바꾸려 하지 않습니다. (바꿀 때도 될 수 있으면 같은 회사의 후속 제품으로 바꾸려고 하지요.) 남의 도구, 남의 작업환경에서 일을 하면 아무래도 불편하다고 생각합니다. 즉, 자신만의 작업환경과 자신만의 도구가 갖춰져야 그 기술자의 진정한 실력이.. 공감수 1 댓글수 7 2009. 3. 18.
  • Reverse Code Engineering (2) 요즘 Windows 어플리케이션을 개발할 때 Assembly 언어로 개발하시는 분들은 보기 드물죠. 보통은 C/C++, VB, Delphi 등의 4GL 로 개발을 하게 됩니다. 이렇게 만들어진 프로그램을 에디터로 열어보면 아래 그림과 같이 소스 코드는 보이지 않고 뭔가 이상한 기호들이 가득하지요. 전 리버싱을 접하기 전에는 컴파일러와 링커가 소스 코드를 이상하게 변화시키기 때문에 그 내용을 아무도 이해 할 수 없을꺼라고 생각했었습니다. 더 정확히는 그 내용을 이해할 수 있는 사람은 몇명 되지 않을꺼라 생각했던 거지요. 컴파일러는 사람이 보기 편한 소스코드를 CPU 가 이해할 수 있는 이진 코드로 바꿔놓고, 링커는 OS 에서 실행이 가능한 형태로 파일을 재구성하는 것 뿐이기 때문에, 이진 코드를 이해할 수.. 공감수 0 댓글수 14 2009. 2. 28.
  • Reverse Code Engineering (1) Reverse Engineering (RE) 일반적인 의미에서 Reverse Engineering (RE : 역공학)이라고 하면, 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가시키는 일련의 작업이라고 할 수 있습니다. Reverse Engineering(이하 리버싱) 의 개념은 여러분의 일상생활 속에서도 찾아 볼 수 있습니다. 회사에서 리버싱이 사용되는 예를 들어 보겠습니다. 가령 경쟁사에서 신제품을 출시했다고 해봅시다. R&D 부서에서는 얼른 구입해서, 어떤 새로운 기능이 있으며 어떻게 만들었는지 살펴볼 것입니다. 구현 능력이 엇비슷 하다면 금방 따라 만들 수 있을것입니다. 혹은 원래 기능의 단점을 보완하고 더 새로운 기능.. 공감수 0 댓글수 24 2009. 2. 25.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.