본문 바로가기

programming

아이폰 프로그래밍 기본 개념. MVC 아이폰 프로그래밍이라기 보다는 객체 지향적 프로그래밍 기법의 기본적 개념이라고 말하는 것이 정확할듯. MVC Model - View - Controller 가장 기본이 되는 것이 이 모델 - 뷰 - 컨트롤러의 조합. 객체지향 프레임워크를 사용하는 프로그래밍에서는 대부분 지원하는 개념으로 봄. 이 패턴은 사용자인터페이스(UI)와 비지니스로직의 분리를 통해서, 서로간의 독립성을 유지시켜, 수정과 재사용이 용이하게 만들었음. 모델은 어플리케이션에서 사용되는 데이터들을 저장하는 클래스들을 말한다. 뷰라는 것은 흔히 볼수 있는 윈도우나 각종 버튼, 텍스트박스등등의 실제로 보이는 부분을 총칭. 컨트롤러는 이 모델과 뷰사이에서 서로의 입력-출력을 조정하고 제어하게 된다. 아이폰 프로그래밍에서는 이 3가지 개념을 이용.. 더보기
아이폰 프로그래밍의 다른점 몇가지 아이폰 프로그래밍이 기존의 프로그래밍과 다른점 몇가지 (기존 PC에서 실행되는 프로그램과는 다른점을 말한다... 아이폰에게만 해당된다기 보다는 모바일 기기 전체에 해당될듯...) 버전 3.1 까지... 1. 하나의 어플리케이션만 구동이 가능하다... (이것은 이번 ios4 에서 멀티프로세싱이 가능해 지면서, 그나마 제약이 풀린 것중하나다...) 2. 단 하나의 윈도우. 이것이 데스크탑용 어플리케이션과 크게 다른 점중 하나임. 여러개의 윈도우가 생성, 제어되는 기존 프로그램과는 달리 단 하나의 윈도우 안에서 모든 것들이 해결이 되어야 한다. 3. 접근 권한의 제약 이건 권한의 문제... 해킹을 해서 풀릴수 있는 문제이지만, 골치아픈 문제를 야기할수도 있다.. 샌드박스라 불리는 어플리케이션 영역안에서만 모든.. 더보기
Cocoa, TextField 리턴 소스. 키보드 리턴 Xcode 상에서 텍스트 필드를 삽입하면, 포커스가 가면 키보드가 활성화 된다. 이후 입력의 과정을 거친후, 엔터키나 리턴키를 눌러줄때 키보드가 사라져야하는데, 이넘을 시켜주는 소스. -(BOOL)textFieldShouldReturn:(NSTextField *)theTextField { if(theTextField == subjectTextField) [subjectTextField resignFirstResponder]; return YES; } 아주 간단한 소스다. if 문의 경우에는 여러개의 textfield가 있을경우 일일이 처리를 해주어야 한다. 더보기
Cocoa 1st sample. 간단한 currency converter 애플문서에 나와있는 샘플코드. 간단하게 환전계산?? 해주는 프로그램이다. 1달러당 가격을 텍스트 필드에 입력받아 계산하는 간단한 프로그램으로, Cocoa 맛보기에는 좋은 코드. 번역중인 글은 http://wiki.osxdev.org/index.php/Xcode에서의_프로젝트_만들기 이곳에 있다. 실제 코딩하는 부분은 아주 적은 예제이며, Xcode의 전반적인 분위기를 익힐수 있다. 코딩하는 파일은 4가지이며, converter.h converter.m converterController.h converterController.m 이정도이다. 아래 파일이 결과물. 기본적인 부분은 생략. 코드 분석 converter.h -------------------------------------------------.. 더보기
Cocoa's Framework - Foundation, Application Kit 코코아의 대표적인 프레임워크인 Foundation 과 Application Kit에 관한 설명. Foundation 이 Foundation Framework 는 cocoa의 기본 클래스 레이어를 정의한다. apple 문서에 따르면 이러한 Foundation Framework 와 Application kit 의 클래스간의 구분법은 User interface 의 유무이다. 즉, User Interface에 객체가 나타나지 않거나 지원되지 않는다면 Foundation 클래스라고 한다. Foundation Classes 이 클래스는 NSObject 클래스에 기반을 두고 있다. 아래 이미지는 클래스의 상속과 논리적 분류가 되어있다. 여기서 보이는 Value 객체들은 여러 타입의 데이터를 제공한다. NSData 같.. 더보기
Xcode Programming1. Cocoa 살펴보기 cocoadev 님이 작성하신 xcode 강좌가 있어서 링크함. 간단한 코드여서 쉽게 xcode를 살펴볼수 있을듯 텍스트 필드에 입력한 글자를 버튼조작으로 좌우로 움직이게 하는 간단한 샘플이다. http://www.cocoadev.co.kr/183 위 이미지가 실행한 모습. 해당강좌는 링크를 따라가서 볼수 있다. 약간 특이?? 하다고 할까?? 코드중 버튼이미지등은 이미 공유된 이미지를 불러다 쓰게끔 코딩이 되어있다. inspector 창의 attribute 창에서도 버튼이미지등을 불러와 쓸수 있지만, cocodev 님의 댓글에서 보면.. ^^ 마우스보단 키보드가 편해서 코딩을 하셨다고 한다. 해당부분은 각자 개인의 취양대로 더보기
PE, OEP, IAT in Wiki Portable Excutable The Portable Executable (PE) format is a file format for executables, object code, and DLLs, used in 32-bit and 64-bit versions of Windows operating systems. The term "portable" refers to the format's versatility in numerous environments of operating system software architecture. The PE format is basically a data structure that encapsulates the information necessary for the Wi.. 더보기
Useful API Break Points 유용한 API 중단점들 Useful API Break Points 저에게는 저작권이 없음을 밝힙니다. http://dual5651.hacktizen.com/new/82 파일 열기(Open) :파일 생성 & 여는데 쓰인다. 16-bit: CreateFile 32-bit: CreateFileA wide: CreateFileW 파일 입출력(Read&Write) :파일을 입출력하는데 쓰인다. ReadFile ;읽기 WriteFile ;쓰기 파일 접근(Access) SetFilePointer ;포인터 조정 시스템 디렉토리 얻어오는 함수 16-bit: GetSystemDirectory 32-bit: GetSystemDirectoryA wide: GetSystemDirectoryW .ini파일과 관련된 함수 :ini 구성설정에 관련된 함수.. 더보기
리버스엔지니어링샘플.abex crack me 시리즈.5. serial crack 이제 마지막 크랙이다. 이번것도 이제까지의 크랙과 그리 다르지 않다. 실행을 하면 나타나는 윈도우. 간단히 보면, 텍스트를 가져와서 비교해서 결과를 내놓는 프로그램일듯 보인다. 윈도우에서 텍스트를 가져오는 함수들은 몇가지가 있는데, 여기서는 GetDlgItemTextA 를 이용했다. 따라서, Ollydbg를 열어서, 해당함수를 추적해 들어가면 간단히 해결이 된다. 사용된 넘들을 찾아보면 쭈~~ 욱.~~ 나온다. 여기서 GetDlgItemTextA를 따라서 들어가 보자. 떡 하니 걸리는 곳에서 브레이크를 걸어주고 실행을 시켜보자. F8로 계속 실행을 시켜보면, 시리얼을 만들어내는데, 마지막 부분에 우리가 입력했던 시리얼과 만들어진 시리얼이 나란히 나타나느것을 볼수있다. 이넘을 다시 넣어주면 끝!! 더보기
리버스엔지니어링샘플.abex crack me 시리즈.4. VB serial crack 이번 예제도 VB로 만들어진 예제이다. PEiD로 확인을 해봐도 되고, OllyDbg로 열어봐도 함수들이 Vb로 되어있다는걸 쉽게 알수 있을듯하다. 간단하게 열어서 보자. text string을 검색해보면 아래와 같이 나오는데, 성공메세지 부분을 따라 들어가 보자. 00401F11 에 성공메세지가 보인다. 00402055 부분에 점프문이 보인다. 간단하게 브레이크를 걸어주고 실행을 눌러보면, 입력부분에서 브레이크된다. Serial을 입력하면, 00402280에서 브레이킹되서 멈추는데, 이를 자세히 따라가다 보면, 00402308에서 serial을 가져오는걸 볼수 있다. 여기선 2208800이 시리얼로 나타난다. 더보기
리버스엔지니어링샘플.abex crack me 시리즈.3. keyfile check 이번 예제는 너무 간단하고, 방법도 여러가지다. 간단하게 점프문을 바꿔도 상관이 없고, 소스에 나타난 파일을 생성해줘도 상관이 없다. 이번예제를 실행시키면, 특정파일을 찾고, 용량을 확인해서 같지 않으면 에러메세지를 뿌려준다. CreateFileA를 이용해서 찾거나, string 을 찾아서, 에러메세지를 찾아내서 따라 들어가도 된다. 기본적으로 보면, 00401060 부터 시작되는 소스가 에러메세지를 뿌려주는 부분이다. 우리가 그냥 실행시켜보면 나타나는 부분들... 바로 위에 보면, 점프되어서 오는 부분이 보인다. 00401037에서 점프되어서 오는 걸 확인할수 있는데, 바로 위에 비교문이 보인다. cmp eax,-1 즉, 파일을 비교해서 없으면 리턴값이 -1이 되는데, 결국 파일이 없으면, 아래 주소로.. 더보기
리버스엔지니어링샘플.abex crack me 시리즈.2. serial crack 이번 샘플은 아주 간단하다. 이름에 따라서 인코딩된 암호가 다른데, 이를 크랙한다. 주의 깊게 봐야할건 결국 어떻게 암호가 생성이 되던지, 결국에는 입력된 암호와 실제 인코딩된암호를 비교하는 부분을 파악을 해서 그 값을 찾아내면된다. 이 예제는 VB로 만들어 져 있었다... 먼저 파일의 압출을 풀어서 실행해본다. 아무 이름이나 넣어도 되나, 여기선 Name에는 test, Serial 에는 aaaaaa 를 넣어봤다. 역시 에러메세지가 뜬다. 이런 메세지창이 뜰때 그 문구들을 잘 보아두어야 한다. 결국 저 문구를 찾아내어서 해당 코드를 잡는게 빠르다... PEiD로 해당 파일을 본결과다. VB로 만들어져 있고, 압축등은 되어 있지 않다. OllyDbg를 실행시켜서 CPU부분을 본다. 일단 에러메세지를 찾아본.. 더보기
리버스엔지니어링샘플.abex crack me 시리즈. 1. cdrom protection crack 하드웨어만지다가 리버스엔지니어링에 요즘 빠져들고 있다~~~ 꽤나 방대한 부분의 공부가 필요한 부분이라 조금씩 먹고 있는데... 끝이 안보이긴 하다 큭... 그래도 꽤나 재미있는 분야라... 옛날에 해킹에 빠졌던 느낌이 스믈스믈 올라오는게, 좋다 ㅋㅋㅋ 해킹마냥 밝은부분과 어두운부분이 공존하는 분야의 공부인지라 더욱더 관심이 간다. 사실상 해킹과 연관이 꽤 있는 부분이라 꽤나 복잡허다... --------------------------------------------------- 리버스 엔지니어링 샘플중 유명한 것중 하나인 abex crack me 시리즈. 첫번째 예제 cdrom protection. 준비물 ------------------------------------------------------.. 더보기
[CES2008] 삼성의 82인치 QuadHD, 52인치 울트라 슬림 LCD. Samsung's 82-inch QuadHD & 52-inch Ultra Slim LCDs 삼성이 내어놓은 82인치 QuadHD와 52인치 LCD이다. Richard Lawler가 CES에 가서 촬영한 사진들이라고 한다. 82인치면 창문보다 더 크다... 글쓴이는 창문보다 큰 느낌이라는데, 정말 그럴것 같다.... Samsung can join Hitachi while crying into their sake as its 52-inch "thinnest non-OLED HDTV ever" is around 4x as thick as Pioneer's 9mm heroin-chic Kuro. Take heart Sammy, because your 82-inch -- and btw, what is with the 82-inch obsession (2005 & 2006 CES), we need to .. 더보기
[CES2008] Bluetrek의 surfacesound 블루투스 카 키트.Bluetrek's SurfaceSound Bluetooth car kit puts a flat speaker on your visor Bluetrek가 개발한 블루투스 카 키트는 햇빛가리개에 내장된 모델이다. 스피커가 들어가 있으며, 미니 USB포트를 가지고 있고, 해드셋을 이용할 수 있다고 한다. Bluetooth car kits are usually pretty fuglicious, but Bluetrek is showing off a couple sunvisor-mounted NXT speaker-based units here at CES that are actually pretty nice. The SurfaceSound DUO (pictured) has a mini-USB port for docking in compatible BlueTrek headsets, and it'll charge 'em up while piping .. 더보기