본문 바로가기
반응형

분류 전체보기304

2011.09.27 Tacademy 안드로이드 7일차 메모 데이터베이스 웬만하면 사용하지 않고 애플리케이션의 요구사항을 적절히 파악하여 사용 여부를 결정한다. (XML이 빠름) droidAtScreen 폰 화면 불러오는 파일 안드로이드 환경설정관리 android:dependency 다른 환경설정의 설정여부에 따라 활성화 비활성화 시킴 stream : 흐름 가장 먼저 source target 파악이 필요 통신을 위해서는 스트림(흐름)을 만들어야하고 스트림은 생성자를 통해 생성한다. 데이터의 종류에 따라서 소스, 타겟 클래스를 결정 지어야해야한다. 바이트 데이터는 1바이트씩 (InputStream / OutputStream) 캐릭터 데이터는 2바이트씩 (Reader / Writer) 바이트 파일 데이터에 최적화된 클래스는 FileInput/OutputStream 메.. 2011. 9. 27.
2011.09.26 Tacademy 안드로이드 6일차 메모 안드로이드 네트워킹 개발시 네트워크 기능을 포함하려면 초기 설계 단계부터 반드시 고려해야한다. [JSON] 자바스크립트를 객체화해서 통신 (엔터테인먼트 앱, 아이폰에서 많이 사용) 무겁기 때문에 웬만하면 사용하지않는 것을 권장 [XML] XML 데이터를 주고받으면서 통신 (정형화된 방식이 있음) 파서가 필요함 (웹은 대부분 DOM ,앱은 대부분 SAX) [SOAP] WSDL (KSOAP2 라이브러리 임포트가 필요함) 원격에 있는 프로그램을 실행시키는 원리 웹 + 앱 = 하이브리드 앱 android.net 패키지에 있는 API는 내부 통신을 위해서만 사용된다. accept 클라이언트 요청 대기 (세마포어 기반)' CBD (component Based Development) component : 소프트웨어 .. 2011. 9. 27.
Android 손전등 어플 만들기 우선 적당한 이름으로 프로젝트를 하나 생성을 한다. AndroidManifest.xml 파일을 열어 Activity 탭을 선택한 뒤 프로젝트를 생성할때 자동으로 생성된 액티비티의 Theme 속성의 Browse를 선택한다. SystemResources 중 Theme.NoTitleBar.Fullscreen을 선택한다. ※Notification 영역과 Title 영역을 모두 꽉 채우기 위해서 설정한다 그다음 Permissions 탭으로 넘어가서 Uses Permission을 추가한다. 새로 생성한 Uses Permission 값으로 android.permission.CAMERA를 선택한다. ※카메라의 플래시를 사용하기 위해서 필요한 퍼미션을 받기 위해서 설정한다. 마찬가지로 Uses Permission 값으로.. 2011. 9. 25.
2011.09.24 KOSR 악성코드 세미나 메모 2~3년 빡시게!! [안랩] 분석팀 30 + 4명 현재 백신 엔진 사이즈를 8~9 배 줄이고 있음 악성코드는 퍼즐이다. 계속적으로 분석하고 분석하면 악성코드의 구조가 명확해지고 뚜렷해진다. 분석에 있어서 추정과 추측은 금물이다. (팩트!!) INT 2E 안티 디버깅 (좀 더 알아볼 내용**) 악성코드 개발 그룹도 체계적으로 구성되어 있다. 초창기 = 네이티브 1차 변형 = 패킹 2차 변형 = 다중 패킹 3차 변형 = 변형 패킹 [베이글] 이메일 웜 이메일 수집 기능 사회공학적 기법에 능함 (압축파일에 패스워드를 걸어서 신뢰성을 확보하여 실행을 유도) 다형성 소스 공개후 시간을 벌고 모듈별로 분산시켜 강화 (서버도 매번 변경되었음) [Detnat] -Detnat.D형부터 암호화도니 악성코드 안에 OEP 코.. 2011. 9. 24.
2011.09.23 Tacademy 안드로이드 5일차 메모 AsyncTask onPreExecute onProgressUpdate onPostExecute 는 메인쓰레드에서 실행되는 것으로 간주하기 때문에 UI 변경이 가능하다. doInBackground 는 별도 쓰레드에서 실행되는것으로 간주하기때문에 UI를 변경하면 안 된다. onPreExecute - > doInBackground -> onPostExecute 2011. 9. 24.
2011.09.22 Tacademy 안드로이드 4일차 메모 화면을 다시 그릴때는 invalidate()를 호출한다. 쓰레드 내부에서는 UI 변경을 하면 안된다. Paint.measureText 는 글자의 너비를 계산해준다. 모바일은 기본적으로 더블버퍼링을 사용한다 실제 화면 - 프레임 버퍼 안드로이드에서 더블버퍼링을 사용하여 이미지를 그리면 실제로는 실제 화면 - 프레임 버퍼 - 캐시 버퍼 방식으로 트리플 버퍼링이 된다. 매번 다시 그릴 필요가 없어 속도가 빨라지지만 메모리 사용량이 늘어나는 단점이 있다. key event 관련 http://skyswim42.egloos.com/3401077 참고 컨버스에 그리는것은 쓰레드에서 해도 상관없다. 2011. 9. 22.
AVD & Eclipse 주요 단축키 1.AVD (Android Virtual Device) -F8 : 네트워크 On / Off 설정이 가능하다. 개발시 네트워크 환경에대한 테스트가 가능하다. -Ctrl + F11 : 화면 회전이 가능하다. 개발시 기기 화면 전환에 대한 테스트가 가능하다. 2.Eclipse -Ctrl + Shift + S : 변경된 파일 모두 저장 -Ctrl + B : 프로젝트 빌드 -Ctrl + F11 : 프로젝트 실행 -Ctrl + Space : 단어 자동 완성 (일부분만 작성하고 이 단축키를 사용하면 자동 완성창이 뜬다) -Ctrl + / : 선택된 영역을 주석처리한다. (Line 단위) -Alt + Shift + S : 추상 메소드, Getter & Setter 메소드 등 자동 완성 소스를 사용한다. -Ctrl + .. 2011. 9. 21.
안드로이드 프로젝트의 구성 -src : 실질적인 소스들을 작성되는 .java 파일들이 들어있는 디렉토리이다. -gen : 각종 리소스들의 id 값이 작성되어 있는 R.java 파일이 들어있는 디렉토리이다. ※이클립스에서 자동으로 작성되기 때문에 개발자가 임의적으로 수정하여서는 안 된다. -assets & res : 각종 리소스파일이 저장되는 디렉토리이다. assets는 하위 디렉토리 생성이 가능하나 res는 불가능하다는 약간의 차이점이 있다. -AndroidManifest.xml : 각종 속성 및 설정값들을 설정하는 파일이다. 2011. 9. 21.
안드로이드 프로젝트 생성하기 안드로이드 프로젝트는 File>New>Android Project 를 누르면 생성이 가능하다. 프로젝트 명을 적당히 작성하고 Build Target에 개발하고자 하는 안드로이드 플랫폼 버전을 선택해준 뒤 패키지명을 작성해주면 모든 설정이 완료된다. 패키지명은 두 단계 이상으로 설정하며 프로젝트 명과 도메인 주소를 역순으로 섞어 쓰는 방법이 무난하고 전 세계에서 유일해야한다. (안드로이드 어플리케이션의 고유 식별자로 쓰인다.) 2011. 9. 21.
2011.09.21 Tacademy 안드로이드 3일차 메모 모든 뷰는 생성자가 존재하지 않는다. 클래스 생성시 constructors from super class 를 체크하면 생성자가 자동 생성된다. 이벤트 함수에서 리턴 타입이 boolean일 경우 반환값이 true면 이벤트 처리를 완료하고 false라면 다른 곳에서 처리한다. 매니페스트 파일에서 액티비티 속성에 Screen orientation 값을 설정하면 초기 화면 가로세로 설정이 가능하다. 방향전환시 아무런 작업을 하지 않게 하려면 매니페스트 파일 액티비티 속성에서 config changes에서 keyboardHidden 과 orientation을 설정해주면 된다. 프레임 레이아웃은 뷰만 겹쳐지고 탭 호스트를 쓰면 각 탭당 액티비티를 넣을 수 있다. 어플리케이션의 퍼미션을 설정하려면 매니페스트 파일의 .. 2011. 9. 21.
2011.09.20 Tacademy 안드로이드 2일차 메모 Text field 프로퍼티중 hint는 설명글을 표시할때 사용한다. image view 프로퍼티중 src는 패딩이 적용되고 background는 패딩이 적용되지 않는다. setContentView는 화면을 구성한다 액티비티를 생성하면 매니페스트 파일에 꼭 추가해주어야 한다 finish(); 액티비티 자기 자신을 종료하는 함수 이클립스에서 마우스 오른쪽 누르고 source > override/implements methods 추상 메소드 자동 생성 이클립스에서 마우스 오른쪽 누르고 source > Generate Getters and Setters.. GET SET 함수 자동 생성 모든 응용 프로그램을 발생시킬 수 있는것은 인텐트 익텐트 = 액션 + 데이터 forResult를 쓰면 결과값을 받을 수 있고.. 2011. 9. 20.
안드로이드 개발 환경 구축하기 안드로이드 어플리케이션을 개발하기 위한 환경을 구축하기위해서는 다음 프로그램들이 필요하다. -JDK (Java Development Kit) : 안드로이드 어플리케이션의 경우 자바 기반으로 작성되기 때문에 JDK 설치가 필요하다 -Android SDK : 실질적인 안드로이드 개발 도구이다 -Eclipse EE : SE를 설치해도 무방하나 드물게 C와 연동하여 프로그래밍을 할 때 드물게 에러가 나는 경우가 있어서 EE를 설치하는 것이 좋다. -ADT (Android Development Tools) : 이클립스용 Android SDK 연동 플러그인 1.JDK 설치하기 가장 먼저 JDK의 설치가 필요하다. http://www.oracle.com/technetwork/java/javase/downloads/i.. 2011. 9. 19.
2011.09.19 Tacademy 안드로이드 1일차 메모 안드로이드 = 클라이언트 기반 기술 JAVA + DB + XML** + Network + HTML5 애플 : 안드로이드 = 1 : x 안드로이드 개발 단체 = OHA open handset alliance 구글 = 광고 회사 sk 개발자 등록 = 무료 , 공인인증서 필요 구글 개발자 등록 = $25 안드로이드 != OS 안드로이드 = 리눅스의 플랫폼 브라우저는 오픈소스 기반인 웹킷 엔진 Webkit 엔진에서 구동 PNG는 무료 GIF는 유료 액티비티, 서비스, 방송수신자, 컨텐츠 프로바이더 자바SDK의 많은 부분을 지원 (GUI 관련해서 지원 안 하는 것도 있음) 프레임워크는 C로 구성되어있으며 어플리케이션은 JAVA로 이루어져있음 달빅 VM 최소한의 메모리에 최적화되어있어 실행속도가 빠름 애플리케이션 .. 2011. 9. 19.
2011.09.15 KISA 리눅스 보안 심화과정 메모 grub-md5-crypt GRUB 패스워드 설정 명령 중요 디렉토리 읽기권한 제거 find / \( -type d -o -type f \) -a -perm -2 -ls 일반 사용자의 쓰기 권한 검사 ssh의 chroot를 사용하면 일반 사용자의 과도한 권한을 제어할 수 있다. iptables 설정시 INVALID 패킷에 대하여 DROP 옵션을 적용해두면 DOS 공격 등 비정상적인 패킷 차단이 어느정도 가능하다 설정시 ESTABLISHED 패킷에 대하여 ACCEPT 옵션을 적용해두면 하단의 정책에 의해 연결된 패킷이라도 정책 비교 횟수를 줄일 수 있어 패킷 비교에 의한 부하를 줄일 수 있다. enyelkm 리눅스용 백도어 linux-sendpage2 리눅스 익스플로잇 2011. 9. 15.
2011.09.09 KISA 리버스 엔지니어링 교육 메모 NetScheduleJobAdd admin$ 로 접속했을때 지정된 스케쥴 실행하게 하는 함수 AdjustTokenPrivileges -권한 상승 관련 API -시스템 dll 파일 등을 수정하기 전 권한 상승이 필요 System Explorer -스냅샷 기능을 이용하여 파일,레지스트리 등등의 추가 제거 여부를 확인 가능 (스냅샷 비교만으로 파일 추가 제거 여부 확인 가능한게 장점) (어떤 프로세스가 동작하며 추가 제거 하였는지 알 수 없는게 단점) API Monitors -api 관련 내용을 모니터링 Malzila -난독화 문제 해결 및 문자열 디코딩 등등 PDF TK -PDF 디코딩 도구 Search for All > intermodular calls 로 writeFile 등의 함수에 브레이크 포인트를 .. 2011. 9. 9.
프로그래밍 게임 심심할때 간편하게 할 수 있는 프로그래밍 게임이다 동작 몇가지와 서브 함수 2개를 이용하여 파란 블록에 모두 불을 켜면 된다. 사이즈가 정해져 있으니 머리를 잘 써야한다. 2011. 8. 25.
VEH (Vectored Exception Handling) 참조1 : http://msdn.microsoft.com/en-us/library/ms681420(v=VS.85).aspx 참조2 : http://blogs.msdn.com/b/zhanli/archive/2010/06/25/c-tips-addvectoredexceptionhandler-addvectoredcontinuehandler-and-setunhandledexceptionfilter.aspx VEH는 SEH의 확장된 개념으로써, 프레임 기반이 아니기 때문에 어떠한 곳에서든지 핸들러를 추가할 수 있다.  1.SetUnhandledExceptionFilter LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( __in LPTOP_LEVE.. 2011. 8. 15.
SEH(Structured Exception Handling) 참조 : http://msdn.microsoft.com/en-us/library/swezty51(v=VS.71).aspx 비동기적으로 아무 때나 발생가능한 인터럽트와 달리 실행 중인 프로그램의 직접적인 실행 결과로 발생하는 예외를 처리하기위하여 윈도우는 어플리케이션이 예외 발생시 제어를 받을 수 있도록 SEH를 사용한다. SEH는 시스템 메커니즘으로서 프로그램 언어 한정적인 것이 아니라 것에 유의해야한다. ※여기에서는 C를 기준으로 사용법을 기술한다. SEH는 기능적 특성에 따라 Termination Handler와 Exception Handler 두 가지로 나뉜다.  1.Termination Handler Termination Handler는 __try와 __finally 키워드로 구성되며 __try.. 2011. 8. 15.
strrstr 함수 구현 (문자열 역순 탐색 함수) -strstr 함수와 유사하게 문자열을 탐색하나 역순으로 탐색한다. #include #include char* strrstr(char* str,char* ptn){ unsigned int ptnlen=0; unsigned int i=0; unsigned int j=0; char* offset=-1; //패턴 문자열 길이 획득 (인덱스로 사용하기 위해 1 감소) ptnlen=strlen(ptn)-1; //문자열의 오른쪽부터 비교 시작 for(i=strlen(str)-1;i != 0;i--){ //문자열의 현재 위치 문자가 패턴 문자열의 마지막 문자와 일치 하는지 확인 if(str[i] == ptn[ptnlen]){ //패턴 문자열이 1 글자이면 오프셋 값 저장하고 리턴 if(ptnlen == 0){ off.. 2011. 7. 20.
티스토리 블로그 배경음악 넣기 -아직 티스토리는 글 내부에 BGM 넣는 기능만 제공하는 것 같아 외부사이트를 이용해서 BGM을 설정해 보았다. 장점 : 직접 HTML 소스를 수정할 필요가 없어 스킨을 잘못 건드리는 것을 예방 단점 : 사이드바에서 제거시 새로 등록해야 함 장점 : BGM Player를 여러개 등록 후 쉽게 넣었다 빼는 것이 가능 단점 : 소스를 직접 수정해야해서 잘못건드리면 스킨을 망칠 수도 있음. 1.http://www.mixpod.com 에 접속하여 가입 2.음악을 검색하여 BGM으로 넣을 곡들을 추가 ※가끔 한글이 깨져 검색이 안될때는 맨 첫 화면에서 검색하면 제대로 검색이 가능 3.모든 음악을 추가하였으면 Create Playlist 버튼을 클릭 4.Customize 버튼을 클릭한 뒤 마음에 드는 스킨을 선택 .. 2011. 7. 5.
반응형

바로가기