본문 바로가기
728x90

Programming10

온라인 업데이트 이야기 AnyUpdate version 0.9 ALPHA Capture 이것은 AnySend 2008을 위한 온라인 업데이트 프로그램 AnyUpdate이다. AnySend 뿐 아니라 앞으로도 추가될 AnyShare/AnyTracer/AnyObserver 모두 사용할 수 있도록 확장성을 고려해서 작성되어 있다. 기능 구현에는 2일이 소요되었고 UI와 보안성 향상 작업을 하는데 9일이 걸렸다. 업데이트 정보는 XML로 구성하였기 때문에 유지보수가 대단히 쉽지만 분석을 쉽게 할 수 없도록 암호화와 체크섬, 무결성검사 루틴, 가짜 함수 등으로 둘러쳐져 있다. 온라인 업데이트를 위한 가장 간단한 코딩방법이다. someUpdateCheckFun() { ... if (IsApplicationFound()) { if (IsO.. 2008. 8. 9.
예외처리 꼭 필요한가? 제목에 대한 결론부터 말하자면 필요하다. 최근 며칠 사이 예전에 같이 일했던 프로그래머로부터 테스트와 분석을 요청받은 2개의 프로그램이 있었다. 회사 제품이라 어떤 프로그램인지는 말할 수 없지만 이 글을 쓰게 하는 동기가 되었다. 2개의 프로그램 모두 잘못된 예외처리로 인해서 사용에 큰 불편이 있었다. 01. 잘못된 예외처리는 불편함을 초래한다 2년전 쯤? 로보헬프(RoboHelp)라는 어플리케이션을 사용해본 적이 있었다. 이 프로그램은 윈도우의 도움말(*.chm)을 쉽게 만들 수 있도록 도와주는 어플리케이션이다. 원 제작사의 이름은 기억나진 않지만 Adobe가 인수해서 현재도 팔고 있는 제품이다. Adobe RoboHelp의 최신버전은 7인 것으로 알고 있는데 불과 6까지만 해도 존재했던 문제이다. 많.. 2008. 5. 8.
소프트웨어 크랙을 막기 위한 방법 두번째 이야기 초보 개발자들을 위한 주(註) 리버스 엔지니어링 : Reverse Engineering 역 공학이라고 하며, 크랙을 하기 위해 또는 분석 자체만을 목적으로서 특정 파일이나 알고리즘, 프로세스(절차적 의미에서)를 분석하는 모든 행위들을 일컫는 말 (디컴파일이나 디스어셈블을 한다 함은 리버스 엔지니어링의 하위 개념의 방법론에 해당되며 크랙과 리버스 엔지니어링을 동일시하면 안된다. 즉, Crack != Reverse Engineering 이다!) 크랙 : Crack. 특정 보호장치를 무력화하거나 우회하거나 해제하는 일련의 소프트웨어 기술. 릴한다/릴되었다 : Release. 해방시키다 해제하다는 의미이지만 SW에 있어서 릴리즈(혹은 릴리스)는 흔히 공개한다는 의미로 해석하면 된다. R.I.P(립/립버전) : .. 2008. 3. 31.
소프트웨어 크랙을 막기 위한 방법 이게 소프트웨어 업계의 현실이다. 상당히 괜찮은 소프트웨어를 개발하더라도 당장 크랙과 복제부터 걱정해야 하는 것. 이에 난 초보 개발자들에게 몇가지 조언을 하려 한다. 1. 소프트웨어의 크랙을 막기 위한 방법 소프트웨어의 크랙을 막기 위한 방법이라....고 제목은 쓰여 있지만 사실 그 딴건 없다. 소프트웨어를 공개하고 엔드유저의 PC에 설치된다면 이미 그건 크랙에 노출되어 있는 것이다. 수 많은 시간과 노력을 들여서 제작한 원천 기술이 포함된 제품을 등록한(구입한) 소수의 사용자에게만 실행되기를 바란다고 가정하자. 아마도 당신은 셰어웨어(Shareware)의 형태로서 공개를 고려하고 있는지도 모른다. 그렇다면 추가적으로 해야 할 일이 즉시 머리속에 그려질 것이다. 아마도 대부분의 개발자는 등록키를 생성해.. 2008. 2. 26.
728x90