본문 바로가기
반응형

분류 전체보기289

NTDLL.dll 참조 : Windows Internals 5th NTDLL은 서브시스템을 위한 시스템 지원 라이브러리로써, 두 종류의 함수를 갖고 있다. 1.윈도우 익스큐티브 시스템 서비스에 대한 시스템 서비스 디스패치 스텁 -유저모드에서 호출할 수 있는 윈도우 익스큐티브 시스템 서비스 인터페이스로써 400개가 넘는 함수(NtCreateFile 등)들로 이루어져 있고 윈도우 API를 통해 접근 가능하다. 이들 함수 내부 코드는 시스템 서비스 디스패처를 호출하기 위해 커널모드로의 진입을 일으키는 아키텍처한정적인 인스트럭션을 가지고 있다. 시스템 서비스 디스패처는 인자를 검증한 후 Ntoskrnl.exe 내부의 실제 커널모드 시스템 서비스를 호출한다. 2.서브시스템, 서브시스템 DLL, 다른 네이티브 이미지에 의해 사용되는.. 2011. 11. 3.
단순화된 윈도우 아키텍쳐 참조 : Windows Internals 5th [유저모드] -시스템 지원 프로세스 : 로그온 프로세스와 세션 관리자 등이 있다. -서비스 프로세스 : 작업 스케쥴러와 프린트 스풀러 서비스 같은 윈도우 서비스를 호스팅 하며 유저의 로그온과는 별개로 실행해야한다. -유저 애플리케이션 : 윈도우,MS-DOS,POSIX 등 다양한 유형의 유저 애플리케이션이 있다. -환경 서브시스템 : 운영체제 환경 지원의 일부분 또는 사용자와 프로그래머에게 제공되는 개인 환경을 구현한다. [커널모드] -익스큐티브 : 메모리 관리,프로세스 관리 , 보안, 입출력, 네트워크, 프로세스간의 통신을 담당한다. -커널 : 스레드 스케줄링, 인터럽트, 예외 처리, 멀티프로세서 동기화 같은 저수준 운영체제 함수로 구성된다. -디바이스 드.. 2011. 10. 19.
2011.10.07 KITRI 메모 APT 공격 절차 1.HOST System 제어 권한 확득 (악성코드를 통한 방법이 가장 일반적. Email,ActiveX,P2P등을 이용한 전파) 2.내부 네트워크 정보 수집 / 주요 서버 시스템 접근 권한 획득 3.주요 정보 탈취 정보 수집 기법 1.Foot printing (웹사이트,이메일 헤더 분석,직업 사이트,whois,블로그 등등을 이용, 공격 대상에 직접적으로 영향을 끼치지 않음) 2.scanning Active Host Scanning : 동작 중인 시스템 확인 Port Scanning : 개방된 TCP/UDP 포트 확인 Vulnerablility Scanning : 알려진 시스템 취약점 확인 3.Enumeration 시스템의 그룹, 계정, 동작 프로세스 정보 확인 구글 연산자 1. fil.. 2011. 10. 7.
2011.09.30 Tacademy 안드로이드 10일차 메모 우리나라의 mms는 현재 세계 표준과 다르다. 요즘은 보안 문제로 제조사에서 sms 컨텐츠 프로바이더로의 접근을 막고 있다. Thinking in java 4/e 자바 고급 배터리 상태 접근은 BATTERY_STATS 퍼미션 필요 매니페스트 파일의 uses-feature 에 설정된 기능을 지원하지 않는 경우 설치가 되지 않도록 해줌 멀티미디어 prepare 동기식 prepareSync 비동기식 이미지버튼은 클릭 이벤트 보다는 터치 이벤트가 감지가 잘 된다. 2011. 9. 30.
2011.09.28 Tacademy 안드로이드 8일차 메모 SQLite3 관계형 데이터베이스 파일 기반 데이터베이스 외부키를 지원하지 않기때문에 트리거를 통해 구현해야한다. 컨텍스트 : 안드로이드가 모든 어플리케이션에게 제공하는 선물 setLickingEnables 트랜젝션이 완료되기 전에 다른 트랙젝션이 데이터베이스를 참조하는것을 방지해줌 compileStatement : preparedStatement와 비슷 rawQuery : Content Provider에서는 사용 불가 for문에서 length 값을 직접 참조하기 보다는 변수에 값을 저장하고 그 변수를 이용해서 반복문을 도는게 좋다. c:\Docum~\administrator>adb shell #sqlite3 /data/data/com.pyo.sql.sqlite.girl/databases/girlsGro.. 2011. 9. 28.
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.
반응형

바로가기