HxD Hex Editor 1.7.7.0
'컴퓨터공학 > 개발 유틸' 카테고리의 다른 글
Visual Studio 2010 Express 설치하기!! (0) | 2015.11.23 |
---|
Visual Studio 2010 Express 설치하기!! (0) | 2015.11.23 |
---|
JNI는 요 근래에 알개 되었다. C언의 요소들을 자바에서 사용하고자해서 찾아보것이 알개 된계기
JNI는 자바에서 C/C++로 구현되거나 자바에 비해 장점이라 할수 있는 것들을 사용할수 있개 해주는 것이다.
native method라는 것을 구현화 함으로 C와 C++의 문법적 요소들을 가져와 쓰는 것이다.
이러한 장점에 비해 자바의 강점인 이식성과 네이티브 메소드들의 자바의 메소드들과 같은 보호를 장담하지 못한다는 단점이 있다.
자료를 수집하려 들려본 블로그, 카페들 중에서는 이론상으로 C로 구현된 것들(API)을 모두 가져다 쓸수 있다고 표현한 분들도 있었지만 해보지 않아 장담할 수없어 아쉽다.
첫 단계로 "Hello World"예제를 만드는 법을 설명하갰다.
테스트 환경은 윈도우 2003 R2, 자바 1.6 비쥬얼스트디오 6.0에서 하였다.
먼저 HelloWorld.java다
=============================================================
public class HelloWorld {
static
{
System.loadLibrary("HelloWorld");
System.out.println("===library was loaded");
}
public native void printHelloWorld();
public static void main(String[] args) throws Exception
{
new HelloWorld().printHelloWorld();
}
}
=============================================================
위에서 static이라 구현해 준 부분은 자바소스가 실행될때 HelloWorld라는 라이브러리를 가져다 쓰갰다는 이야기가 된다.
그리고 public native void printHelloWorld() 이부분이 C에서 구현해주고 사용할 메소드,함수의 선언 부분이다.
위의 소스가 준비가 됬다면 이제는 javac 와 javah로 컴파일과 해더파일을 작성해주면 된다. 컴파일이 먼저 이루어져야 하겠고 javah뒤에는 확장자를 뺀 클래스 파일의 이름을 넣어 주면 된다.
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: printHelloWorld
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_printHelloWorld
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
=============================================================
javah로 만들어준 해더 파일이다. 이파일은 수정하면 안되며 c에서 구현해줄 함수의 선언 부를 볼수 가있다.
그럼 이 해더파일을 이용해 c파일을 만들갰다.
=============================================================
#include <jni.h>
#include "HelloWorld.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_HelloWorld_printHelloWorld(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
=============================================================
이것이 c언어로 구현해 주어야 할 부분이다.
이소스는 비쥬얼 스트디오에서 DLL을 만들어주는 프로젝트를 만들어야 한다.
일단 jni.h파일과 만들어준 HelloWorld.h 파일을 인클루드해야 한다.
jni.h는 자바가 설치된 디렉토리 및에 있으며 비쥬얼 스트디오에서는 라이브러리 추가를 해주어야 한다.
함수의 명은 Java_클래스명_자바에서 선언한 네이티브메소드명 이 되갰다.
이제 이소스를 DLL파일로 만들어 주었으면 작업공간의 가장 상위 폴더로 옯겨준다.
이제 실행을 해보자
안드로이드 리소스 정책 #2 (0) | 2016.04.19 |
---|---|
안드로이드 리소스 정책 #1 (0) | 2016.04.19 |
[JAVA] Primitive type과 Reference type 그리고 Object 클래스 (0) | 2016.04.12 |
Eclipse 에서 Tap을 Space로 변경하기 (0) | 2016.03.31 |
PreferenceActivity 와 Fragment (0) | 2016.03.10 |
BroadcastReceiver 간단 정리 (0) | 2016.02.01 |
안드로이드 View 클래스 관련 깨알같은 스펙정보 (0) | 2016.01.21 |
안드로이드 App Flag_Activity 란? (0) | 2016.01.21 |
App 위젯 만들기 (in Eclipse) (0) | 2016.01.14 |
make / 모듈 추가 방법 (0) | 2013.04.01 |
테스트 라이브러리를 플랫폼에 추가하기
안드로이드는 config.mk 에서 각 프로젝트별 android.mk를 뒤져
빌드하는 형태로 구성되어 있다~
안드로이드 플랫폼내에 모듈이나 어플리케이션을 추가시키기 위해
별도의 mk 및 타겟 플랫폼 빌드환경을 구성하기에는 작업해야 하는 일이
많고, 안드로이드에 특화된 시뮬레이터, 서명 등의 문제가 발생할 여지가 있다.
(실제로 발생하는지는 모르겠다... -_-;)
아무튼 기 구성된 make 프로세스에 포함시켜 빌드하는게
가장 편한 방법이기에 해당내용을 정리해 본다.
ex) helloworld 라는 공용라이브러리 추가하기
1. 테스트 라이브러리를 위한 폴더명 설정 "helloworld"
2. /frameworks/base/helloworld 폴더 추가(다른위치에 추가해도 됨)
3. /build/core/pathmap.mk 수정
pathmap.mk는 프레임워크의 각 서브항목에 대해 정의해둔 곳이다.
make 파일에서 FRAMEWORKS_BASE_SUBDIRS 를 찾아 마지막에 추가될
모듈(helloworld 추가)
#
# A list of all source roots under frameworks/base, which will be
# built into the android.jar.
#
FRAMEWORKS_BASE_SUBDIRS := \
$(addsuffix /java, \
core \
graphics \
im \
location \
media \
opengl \
sax \
telephony \
wifi \
vpn \
keystore \
helloworld \
)
4. 소스 복사 or 코딩
/frameworks/base/helloworld/libhelloworld/ 와 같은 폴더 생성 후 코딩 및 소스 추가
helloworld.h
namespace android {
class HelloWorldTest
{
public:
HelloWorldTest();
~HelloWorldTest();
void Test();
};
};
helloworld.cpp
#include "helloworld.h"
using namespace android;
void HelloWorldTest::Test()
{
return;
}
5. Android.mk 추가
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#여기에 소스 목록을 등록
LOCAL_SRC_FILES:= \
helloworld.cpp
#여기에 사용하는 라이브러리들 등록
LOCAL_SHARED_LIBRARIES:= \
libui \
libcutils \
libutils
#출력 모듈명
LOCAL_MODULE:= libhelloworld
LOCAL_PRELINK_MODULE:= false
#링커 관련 플래그
ifeq ($(TARGET_OS)-$(TARGET_SIMULATOR),linux-true)
LOCAL_LDLIBS += -ldl
endif
#동적으로 참조할 라이브러리 추가
#에뮬레이터인 경우 libdl 을 동적참조
ifneq($(TARGET_SIMULATOR),true)
LOCAL_SHARED_LIBRARIES += libdl
endif
#헤더파일 위치
LOCAL_C_INCLUDES:= \
$(LOCAL_PATH)/include \
$(call include-path-for, graphics corecg)
#빌드방식
include $(BUILD_SHARED_LIBRARY)
6. 아웃풋 위치
out/target/product/generic/system/ 에 빌드방식에 따른 폴더가
정의되어 있다.
동적 라이브러리의 경우
out/target/product/generic/system/lib/
out/target/product/generic/obj/SHARED_LIBRARIES/xxxx/
out/target/procuct/generic/symbols/system/lib/
등이 출력 위치이다.
7. 주요 define 항목 설명
LOCAL_PRELINK_MODULE : 프리링크 활성화(true, false)
LOCAL_MODULE_TAGS : 타겟 시스템 설정을 위한 태그
이 값은 최상위의 /build/core/main.mk 에서 각 프로젝트를 빌드할때
사용되는 값으로 어플리케이션의 속성을 지정하게 된다.
설치 관련 정보나 보안 등급, 디버깅 여부 등의 설정이 이루어진다.
기본 값은 user 이다.
eng, user ,userdebug, optional
LOCAL_MODULE_CLASS
모듈의 등급을 지정하는 것으로 아래와 같은 값이 들어감
EXECUTABLES , JAVA_LIBRARIES , SHARED_LIBRARIES
LOCAL_PACKAGE_NAME
/packages/app/ 에 등록된 패키지들과 마찬가지로
패키지명으로 기본 os 에 포함될 패키지를 의미한다.
이름은 패키지의 디렉토리명과 동일해야 한다.
실제 패키지가 이미지에 포함되기 위해서는
build/target/product/generic.mk 에도 등록해야
system.img에 패키지가 포함된다.
LOCAL_CERTIFICATE : 키 서명
설정되지 않으면 testkey가 사용되며, 해당 키에 대한 값은
/build/target/product/security/ 폴더에 pk8, x509.pem 파일이 존재한다.
이 파일의 이름이 키가 되고, 빌드시 해당 키를 사용한다고
이곳에 지정하게 된다.
테스트용 키를 생성하기 위한 mkkey.sh 스크립트도 포함하고 있다.
LOCAL_CFLAGS : C , C++ 관련 컴파일러 플래그
LOCAL_CPPFLAGS : C++ 관련 컴파일러 플래그
LOCAL_CXXFLAGS
일반적으로 gcc 관련 옵션사항을 기술한다.
기본 최적화 옵션
-O : 기본 최적화를 켠다.
-O2 : 모든 최적화를 켠다. 대부분 -O 보다 나은 선택이며, 일반적으로 사용됨.
-O3 : -O2 에 더해 추가 최적화를 켠다. 바이너리 사이즈가 증가하며 디버깅이 거의 불가능.
-Os : -O2 에 더해 사이즈 관련 최적화를 한다. 큰 어플리케이션에 유용하다.
-O2, -O3 보다 실행 속도가 빠른데, 로드 시간의 감소, 메모리 사용 및 캐쉬, 디스크 사용등
의 최적화가 이루어지기 때문이다.
-fomit-frame-pointer : x86 시스템에서 함수 호출과 관련한 스택포인터와
이를 지시하는 프레임 포인터에 해당하는 작업을 하지 않는다.
(각 인수들, 리턴 주소 등의 ebp 관련 레지스터 )
-march=<your_arch>
-mtune=<your_arch>
-mcpu=<your_arch>
머신 컴파일 옵션으로 대상에 대해 최적화를 수행한다. 대상의 cpu 정보를 넣어주면 되며,
세개 모두 동일한 내용이며, -march 는 -mtune을 의미한다.
-mtune/-mcpu는 gcc 구버전에서 이용되었다.
-pipe : 컴파일시 별도의 임시파일을 생성하지 않음.
TARGET_SIMULATOR : 대상 시뮬레이터여부 , true/false
TARGET_OS : 대상 os
TARGET_ARCH : 대상 아키텍처
LOCAL_LDLIBS : 링커 옵션
LOCAL_STATIC_LIBRARIES
LOCAL_SHAREDLIBRARIES
LOCAL_C_INCLUDES : include 폴더
LOCAL_CPP_EXTENSION : cpp 소스의 확장자. 기본값은 .cpp
빌드 규칙
include $(BUILD_PACKAGE)
include $(BUILD_EXECUTABLE)
include $(BUILD_SHARED_LIBRARY)
include $(BUILD_HOST_EXCUTABLE)
출처 : http://blog.daum.net/hopefullife/117
안드로이드 리소스 정책 #2 (0) | 2016.04.19 |
---|---|
안드로이드 리소스 정책 #1 (0) | 2016.04.19 |
[JAVA] Primitive type과 Reference type 그리고 Object 클래스 (0) | 2016.04.12 |
Eclipse 에서 Tap을 Space로 변경하기 (0) | 2016.03.31 |
PreferenceActivity 와 Fragment (0) | 2016.03.10 |
BroadcastReceiver 간단 정리 (0) | 2016.02.01 |
안드로이드 View 클래스 관련 깨알같은 스펙정보 (0) | 2016.01.21 |
안드로이드 App Flag_Activity 란? (0) | 2016.01.21 |
App 위젯 만들기 (in Eclipse) (0) | 2016.01.14 |
JNI & 예제 (0) | 2013.04.01 |
3번 문제를 풀기 위해 http://webgame.wowhacker.com/weblevel3/list.php로 접속합니다.
또 아까와 같은 게시판이 보이시죠? 이번에도 게시글을 하나씩 클릭해가며 살펴보도록 합시다.
1번 게시글을 클릭하자 오픈기념사진이란 파일이, 2번 게시글은 몸매짱, 3번 게시글은 Hint, 4번 게시글은 내사진, 5번 게시글은 비밀글 처리되어 내용을 볼 수 없습니다. 1~4번에 업로드된 파일들을 모두 다운로드 받아봅시다. 그러면 아래의 링크로 접속되어 다운로드 되는것을 확인하실 수 있습니다.
1: http://webgame.wowhacker.com/weblevel3/down/b72776c5eb0c5a05a7188959a49e1f1b.25616200
2: http://webgame.wowhacker.com/weblevel3/down/28d805e190f11ba1da5283d494ee8492.57833500
3: http://webgame.wowhacker.com/weblevel3/down/b08e7acd151d17cbc5f205edf151d7e7.78252100
4: http://webgame.wowhacker.com/weblevel3/down/779bbf24b15bb7cb0f6b51507f0615f4.65272100
다시 게시글을 들어가봅시다. 게시글을 올린 날짜 옆에 숫자가 보이시죠? 게시글마다 각각 숫자가 서로 다릅니다.
1: 2006.10.18 09:05:25 0.25616200
2: 2006.10.19 10:01:05 0.57833500
3: 2006.10.20 12:05.19 0.78252100
4: 2006.10.20 18.24.43 0.65272100
5: 2006.10.22 15:49.52 0.85428900
. 뒤에 있는 숫자와 파일 뒤에 붙는 숫자가 일치하죠? 그리고 5번은 85428900이고 말이에요. 그럼 아래와 같이 유추할 수 있습니다.
http://webgame.wowhacker.com/weblevel3/down/############.85428900
그렇다면 앞에 있는 암호화된 값은 무엇을 의미할까요? 모두다 소문자와 숫자로 조합된 32자리의 값으로 MD5로 인코딩 됬다는걸 쉽게 알 수 있습니다. 한번 MD5로 디코딩을 해봅시다. 아래의 링크로 접속합시다.
[위 사이트에서 MD5 Encrypt시 입력한 값이 MD5 해쉬사전(데이터베이스, DB)로 넘어갑니다. Decrypt는 이 해쉬사전을 탐색하여 원본값을 가져오는 것입니다. 주민등록번호, 비밀번호 등 역시 이 데이터베이스 내에 남습니다.]
그런뒤에 하나하나 디코딩을 해봅시다.
1: b72776c5eb0c5a05a7188959a49e1f1b -> 1161129925
2: 28d805e190f11ba1da5283d494ee8492 -> 1161219665
3: b08e7acd151d17cbc5f205edf151d7e7 -> 1161313519
4: 779bbf24b15bb7cb0f6b51507f0615f4 -> 1161336283
이 값들은 바로 타임스탬프(Timestamp)값임을 알 수 있습니다. 타임스탬프란 1970.1.1 00:00:00 이후의 시간을 초로 환산하여 문자열로 나타낸 값으로, 아래의 링크로 접속하면 쉽게 시각->타임스탬프, 타임스탬프->시각 변환이 가능합니다.
링크: http://www.4webhelp.net/us/timestamp.php
Timezone는 GMT +9 Hours를 선택하고(우리나라의 표준시는 그리니치 표준시(GMT)보다 9시간 앞서므로 그렇습니다.), Timestamp에 아까 디코딩 된 값 4개를 넣어서 Convert to date를 누릅시다.
1: 1161129925 translates to Wednesday, October 18th 2006, 09:05:25 (GMT +9)
2: 1161219665 translates to Thursday, October 19th 2006, 10:01:05 (GMT +9)
3: 1161313519 translates to Friday, October 20th 2006, 12:05:19 (GMT +9)
4: 1161336283 translates to Friday, October 20th 2006, 18:24:43 (GMT +9)
게시글을 올린 시각이랑 일치하죠? 그렇다면, 여기서 한번더 유추할 수 있습니다. 게시글을 올린 시각을 타임스탬프값으로 변환하여 이를 MD5로 인코딩하면 .앞의 암호화 된 값이 나오므로, 비밀글을 올린 시각인 2006.10.22 15:49.52를 타임스탬프 값으로 변환해봅시다. Day엔 22, Month엔 10, Year엔 2006, Hour에는 15, Minute에는 49, Second에는 52, Timezone은 GMT +9 Hours를 택하고 Convert to a timestamp를 누릅니다. 그러면 아래와 같이 결과물이 출력됩니다.
Sunday, October 22nd 2006, 15:49:52 (GMT +9) translates to 1161499792
1161499792을 가지고, 아래의 사이트로 들어가서 MD5로 암호화 해줍시다.
링크: http://tools.web-max.ca/encode_decode.php
그럼 아래와 같은 값을 얻을 수 있습니다.
fb6e412cf733d6b9cdf777cbcafa35c3
이제 한번 조합해봅시다.
http://webgame.wowhacker.com/weblevel3/down/fb6e412cf733d6b9cdf777cbcafa35c3.85428900
위의 사이트로 들어가면 답이 나와있습니다.
Level3 key: iwantknowmoreMrjones!
즉 답은 'iwantknowmoreMrjones!' 입니다. 수고하셨습니다.
네트워크 보안 관련 (0) | 2017.03.23 |
---|---|
Linux 명령어와 시스템보안 (0) | 2017.03.03 |
암호화의 진화 (0) | 2017.02.17 |
인터넷 쿠키 (0) | 2017.02.17 |
정보보안관련 좋은 레퍼런스 사이트 (0) | 2016.03.03 |
악성코드를 이용한 해킹의 종류 및 대처법 (0) | 2016.02.15 |
Key Derivation Functions (PBKDF2) (1) | 2015.06.24 |
자바 AES 128비트 암호화 (0) | 2013.02.04 |
문자열을 SHA-512 방식으로 암호화(단방향 암호화 방식 : 예 로그인) (0) | 2013.02.04 |
자바 데이터 암호화: DES, 3DES, AES, RSA, MD5, SHA1 (0) | 2013.02.04 |
String sKeyString = "";
String message = "this is just an example";
// 1. 128 비트 비밀키 생성
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
SecretKey skey = kgen.generateKey();
// 2. 비밀 키를 이렇게 저장하여 사용하면 암호화/복호화가 편해진다.
sKeyString = Hex.encodeHexString(skey.getEncoded());
// 3. 암호화 수행
SecretKeySpec skeySpec = new SecretKeySpec(skey.getEncoded(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(message.getBytes());
System.out.println("encrypted string: " + Hex.encodeHexString(encrypted));
// 4. 복호화 수행
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] original = cipher.doFinal(encrypted);
String originalString = new String(original);
System.out.println("Original string: " + originalString + " " + Hex.encodeHexString(original));
jar : commons-codec-1.6.jar
네트워크 보안 관련 (0) | 2017.03.23 |
---|---|
Linux 명령어와 시스템보안 (0) | 2017.03.03 |
암호화의 진화 (0) | 2017.02.17 |
인터넷 쿠키 (0) | 2017.02.17 |
정보보안관련 좋은 레퍼런스 사이트 (0) | 2016.03.03 |
악성코드를 이용한 해킹의 종류 및 대처법 (0) | 2016.02.15 |
Key Derivation Functions (PBKDF2) (1) | 2015.06.24 |
Time Stamp와 MD5 (0) | 2013.02.04 |
문자열을 SHA-512 방식으로 암호화(단방향 암호화 방식 : 예 로그인) (0) | 2013.02.04 |
자바 데이터 암호화: DES, 3DES, AES, RSA, MD5, SHA1 (0) | 2013.02.04 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import java.security.*; // 문자열을 SHA-512 방식으로 암호화 public String encrypt(String input) throws NoSuchAlgorithmException { String output = ""; StringBuffer sb = new StringBuffer(); MessageDigest md = MessageDigest.getInstance("SHA-512"); md.update(input.getBytes()); byte[] msgb = md.digest(); for (int i = 0; i < msgb.length; i++) { byte temp = msgb[i]; String str = Integer.toHexString(temp & 0xFF); while (str.length() < 2) { str = "0" + str; } str = str.substring(str.length() - 2); sb.append(str); } output = sb.toString(); return output; } |
네트워크 보안 관련 (0) | 2017.03.23 |
---|---|
Linux 명령어와 시스템보안 (0) | 2017.03.03 |
암호화의 진화 (0) | 2017.02.17 |
인터넷 쿠키 (0) | 2017.02.17 |
정보보안관련 좋은 레퍼런스 사이트 (0) | 2016.03.03 |
악성코드를 이용한 해킹의 종류 및 대처법 (0) | 2016.02.15 |
Key Derivation Functions (PBKDF2) (1) | 2015.06.24 |
Time Stamp와 MD5 (0) | 2013.02.04 |
자바 AES 128비트 암호화 (0) | 2013.02.04 |
자바 데이터 암호화: DES, 3DES, AES, RSA, MD5, SHA1 (0) | 2013.02.04 |
* 스트림 암호화 방식
: Clear text를 encode한 것을 1문자씩 변환
* 블럭 암호화 방식
: Clear text를 정해진 블럭으로 나눈후 해당 블럭을 암호화
* 대칭키 암호화 방식(old)
: 암호화 키와 복호화 키가 동일
* 비대칭키 암호화 방식(new)
: 암호화키는 공개키, 복호화키는 비밀키, 대칭 암호화에 비해 속도가 느림
주로 개인키를 교환하는 목적으로 많이 사용
A와 B가 Data를 주고 받는다고 할때 :
개인키로 암호화하면 공개키로만 풀 수 있다. 공개키로 암호화하면 개인키로만 풀 수 있다.
A와 B 각각이 공개키/개인키 한쌍씩을 가지고 있으면서
서로에게 공개키만 알려줌
A -> B Data 전송시 :
A는 B의 공개키로 Data를 암호화시켜서 B에게 전송
Data를 받은 B는 자신의 개인키로 Data를 복호화.
B는 A의 공개키로 return값을 암호화시켜서 A에게 전송
return값을 받은 A는 자신의 개인키로 return값을 복호화.
* 메시지 다이제스트
: 원문에 일방향 해쉬 함수를 적용, 일정 길이의 유일한 문자열로 변환하는 방식
복호화 불가능, 전자서명시 사용
- DES
블럭 암호화 방식, 대칭키 암호화 방식
텍스트를 64bit 단위로 나눠 56bit 키로 암호화하는 알고리즘
- 3DES
DES의 짧은 키를 보완한 방식(DES를 세번 적용)
- AES
블럭 암호화 방식, 대칭키 암호화 방식
텍스트를 128bit 단위로 블럭화
128bit, 182bit, 256bit의 키로 암호화
- RSA
블럭 암호화 방식, 비대칭키 암호화 방식
두 개의 큰 소수들의 곱과, 추가 연산을 통해 키 생성
가장 보편적으로 사용
- MD5
블럭 암호화 방식, 메시지 다이제스트
임의의 길이의 입력데이터를 128bit의 출력데이터로 변환
512비트 단위로 알고리즘 수행, 메시지 길이를 512bit 배수로 패딩
단, 원래의 메시지 길이 입력을 위한 64bit는 남겨둬야함
- SHA1
블럭 암호화 방식, 메시지 다이제스트
임의의 길이의 입력데이터를 160bit의 출력데이터로 변환
네트워크 보안 관련 (0) | 2017.03.23 |
---|---|
Linux 명령어와 시스템보안 (0) | 2017.03.03 |
암호화의 진화 (0) | 2017.02.17 |
인터넷 쿠키 (0) | 2017.02.17 |
정보보안관련 좋은 레퍼런스 사이트 (0) | 2016.03.03 |
악성코드를 이용한 해킹의 종류 및 대처법 (0) | 2016.02.15 |
Key Derivation Functions (PBKDF2) (1) | 2015.06.24 |
Time Stamp와 MD5 (0) | 2013.02.04 |
자바 AES 128비트 암호화 (0) | 2013.02.04 |
문자열을 SHA-512 방식으로 암호화(단방향 암호화 방식 : 예 로그인) (0) | 2013.02.04 |
2010년 12월 4일 ㅎㅎㅎ
내 생일에 인생 첫 마라톤을 경험했다.
제 6회 국민건강 마라톤 !!
하게 된 계기는 회사 선임들이 마라톤을 단체로 참가한다기에 나도 언쳐서 함 해보기로 했다... ㅋㅋ
3인 이상으로 신청하면 단체신청으로 받아주는데, 기념품 1개를 더 증정해주는 거 같더라..
사실 결식아동돕기를 위한 것이기 때문에 기념품이 중요치는 않타..? ㅋㅋ
단체 팀이름이 "코스모스" 로 정해졌다.. 저 이름은 사실 이때 회사에서 진행하고 있던 프로젝트 이름 ㅡ_ㅡ... VN251 이라는 북미향 모델... ㅋㅋㅋㅋ
이날 첫 5Km 마라톤이었지만, 나름 선방해서 좋은 기록이 나왔다. 무려 27분대!!
매해 이 마라톤에 참가하려한다 뽜샤!
2014년 마라톤 - 국민건강마라톤 (0) | 2017.06.14 |
---|
기타 학원을 수강하고, 한 2주일 뒤에 기타 스탠드를 구입했다.
회사에서 나오는 복지 포인트로 구입할 수 있어서 더 뿌듯? 했다..ㅋㅋ
사는 김에 조금 좋은 걸로 샀다..
나름 편리하고 안정적인 구조로 되어있는 허큘레스 브랜드의 기타 스탠드다.
기타를 걸면, 사진처럼 기타 목 부분이 자동으로 걸리도록 되어있다.
드디어 통기타 학원을 수강하다! (0) | 2012.08.22 |
---|---|
기타리스트 입문 !! (0) | 2012.04.24 |
마침 소셜 쇼핑으로 통기타 학원이 뙇! 하고 등장..
난 어차피 지난글에서도 소개했듯이.. 기타를 구입한지는 오래됐음..
드디어 내 기타가 빛을 발할때가 ㅎㅎㅎㅎ
올해 기타 초보를 떼자는 계획에 박차를 가할 수 있게 되었다.
사실 레슨한지는 이미 한달이 지났다..
일주일에 1번 1시간이라.. 너무 시간이 작은 것 같다.
개인 연습이 많이 필요한 것 같고..
아직 코드 확실히 잡는 것, 코드 바꿔가며 연주, 스트로크 하기 등 다 어설픈 단계...
3개월이 끝나기 전에.. 학원서 배우는 곡 2개, 개인적으로 연습하려는 곡 1개 마스터 하는 것이 목표!!
힘들 것 같지만 할 수 있을끼야...?
기타 스탠드 구입! (0) | 2012.08.22 |
---|---|
기타리스트 입문 !! (0) | 2012.04.24 |
간만에 글을 또 하나 쓴다.
큰일? 은 아니고, 나으 옵티머스 LTE가 새롭게 업그레이드를 하게 되었다는 것! ^^
사실 업그레이드를 6월 초에 했었으니, 1달이 다되어 간다. ㅋㅋ
업그레이드 내용은 아래와 같다..
1. 더 쉽게 개선된 UI (한눈에 알아볼 수 있는 아이콘과 세련된 디자인)
2. 더 빠른 입력과 편집을 위한 스크린 키보드
3. 어플리케이션 관리기능 추가
4. 편리한 저장공간 사용량 체크
처음 업글하고 나서, 가장 재미있어 보였던건..
얼굴 인식 락스크린...... ㅎㅎㅎㅎ
얼굴 사진을 저장해서 기록해뒀다가, 락 스크린 해제 시 마다 전면 카메라를 이용해 인식이 되면 락 스크린 해제..
참신하긴 했으나, 락 스크린 해제 동작이 느린거 같고.. 배터리도 더 닳게 되는거 같아서.. 원래대로 패턴으로 바꿨다.. 키보드도 바뀌었는데, 아직 적응이 잘 안되고 느린거 같고...
전체적으로 ICS를 통해 무거워 진것 같기도 하고....
결국 괜히? 업그레이드 햇나? ㅡㅡ...
factory reset을 한번 해주면 괜찮아지는 사례가 있는거 같다.
UI가 새롭고 깔끔한건 맞는 것 같다.
폰 개발자인 만큼
ICS 메뉴에 익숙해지고자 하는 생각에 바꾼 이유이기도 하다.
옵티머스 화이팅..ㅋㅋ
옵티머스 LTE 구입 후기!! (0) | 2012.04.23 |
---|---|
옵티머스 패드!! 구입하다.. (0) | 2012.04.23 |
LG U+ 100 apps 공모전 (0) | 2011.04.12 |
옵티머스 마하 구입하다! (0) | 2011.01.17 |
2012-06-10, 영등포 CGV 스타리움관
프로메테우스라는 영화였는데, 인류의 조물주를 찾아서 우주로 떠난 이들의 이야기이다.
그냥 아무 생각없이 보면, 그냥 단순한 SF물이 될 수도 있는데, 담긴 내용이 꽤 있는 영화인듯...
영화에서 의미있어 보이는, 장면 하나하나의 의미를 리뷰해놓는 블로거들도 적잖이 있는거 같다..
나는 대학교에서, 영상영미문화 라는 교양과목에서
영화를 감상한 후 평가하고 영화기법에 대해 고찰하는 경험을 가진 이래로
특별히 심각하게 생각하면서, 영화를 감상한 적이 없는 것 같다.
그 교양과목에서 다룬 영화들 또한 시대적인 의미를 지니거나 여러 나라에서의 문화나 역사,
또는 영화가 나온 시기의 사회를 간접적으로 비판하는 영화들에 대한 것들이었다...
(그냥 기억남는 영화 제목은.. 찰리 채플린 주연의 모던타임즈, 해리슨 포드 주연의 블레이드 러너 ㅎㅎ)
심각하게 생각하면서 영화를 보면 머리만 아플거 같기도 하고..
사실 내가 좋아하는 장르가 액션이기도 하고.. ㅋㅋ
하지만, 조금 생각하면서 영화를 보는 것도 살아가면서 의미가 있을 것 같기도 하다..
영화를 다루는 글을 처음 시작하느라, 영화내용 보다는 이리저리 영화에 대한 전반적인 생각이 먼저 난다.. ㅋㅋ
아래에 영화 내용에 대한 생각을 조금 적어본다..
기독교 신자인 나로서는, 인류의 조물주가 다른 행성에 사는 외계인 따위로 생각하지 않는다.
다만, 영화일 뿐이라는 생각으로 보았는데, 거기에 나온 여 주인공인 쇼 엘리자베스가 조물주가 있는 것 같다고 생각하면서도 "그 조물주는 누가 만들었겠느냐?" 라는 대사에서도 보면 기독교 신자로서의 믿음은 가진 것을 볼 수있었다.
그리고 또 인상에 남는 것은 데이빗 역할로 나왔던 배우 마이클 패스벤더..
이 넘을 어디서 많이 봤다고 생각이 들었는데, 검색해보니 액스맨:퍼스트클래스 에서 매그네토의 젊은 시절의 모습으로 나온 역할을 했었던 것이 맞았다.. ㅋㅋ
아무튼, 그게 중요한 것이 아니고, 이 영화에서의 데이빗은 사람이 아닌 사이보그로 나온다.
인간이 인류의 조물주를 찾아나선다는 내용의 이 영화에서 사이보그라는 존재는 또 새롭게 다가온다..
바로, 인간이 사이보그의 조물주가 되기 때문이다..
영화에서 데이빗은 조물주인 인간을 존경하기는 커녕, 인간도 조물주의 도구에 불가하다는 생각을 품은듯이,
우주선에 같이 탑승한 인간들을 실험체 대상으로 삼는 장면이 있는가 하면,
자기를 직접 만든 웨이랜드를 데리고 마지막으로 살아 남은 외계인에게 가서, 그들의 언어로 직접 대화를 하지만
웨이랜드가 원하는 불멸에 대한 대화는 아니었던지 외계인은 데이빗을 박살내버리고, 웨이랜드도 죽임을 당하게 된다..
영화 마지막에는 마지막으로 살아남은 한명의 인간, 쇼 엘리자베스가 두동강 난 데이빗을 데리고 남아있는 우주선을 조종해서 어딘가에 있을 그 외계인의 행성을 찾아 떠돌아다닌다는 내용으로 끝난다..
앞서 말했지만, 영화는 영화일뿐.. 나는 기독교 신자이므로, 이런 외계인의 존재에 대해 생각해보지는 않겠지만..
이러한 주제로 영화를 만들었다는 것에 대해서는 칭찬해줄 만한 것 같다..
그리고 또 검색하면서 알게 된 놀라운 사실은, 이 영화 감독의 리틀리 스콧은 꽤나 유명한 명작을 여럿 남긴
명감독 이었던 것이다..
에일리언1도 만들었고, 러셀 크로우 주연의 글래디에이터도 이 감독이 만들었다는 것...
더군다나.. 대학교 교양과목에서 알게 된 블레이드 러너!! 이 영화도 이 감독이었다니......
명작을 만들어 내는 감독은 계속해서 여러개 명작을 또 만들어내나 보다 싶은 생각이 든다..
내가 영화에 대해 깊은 지식을 가진 것도 아니지만, 영화 볼때 마다 떠오르는 생각을 기록해보자는 의미에서
몇자 적었고, 앞으로도 적어볼려고 한다..
지금까지 봤던 영화도 틈틈이, 기억을 더듬어 적어볼 생각이긴 한데..
쉽지는 않을 것 같다.. 대략 2010년 부터 본 영화를 대상으로 시작하려 한다..
이 정도 쓰는데도 거의 40~50분 걸린것 같다 ㅡㅡ;;
아 블로그 적을 것 많네.. 담부턴 조금 스피드하게 적어야쥐..
끝~~~
2014년 하반기... (0) | 2014.11.03 |
---|---|
ITQ - 한글 자격증 취득 ^^ (0) | 2014.03.22 |
[PS2] 건담무쌍2 (1) | 2013.09.21 |
옛날 겜보이를 아시나요? (0) | 2013.08.20 |
새 키보드와 마우스 !! (0) | 2013.08.19 |
2012년!! 새해가 밝았습니다. (0) | 2012.01.01 |
2011년 하루일상 첫글 -_-.. (0) | 2011.11.29 |
2009년을 보내고... (0) | 2009.12.31 |
벌써 12/19.. (0) | 2009.12.19 |
오늘은 나의 생일!!! (0) | 2009.12.04 |
이클립스 설정 파일인 eclipse.ini 파일에서 잡는 메모리 영역보다 작게 잡아주면,
해결이 됩니다.
즉, eclipse.ini 파일에서 xmx 메모리를 512로 잡았으면,
아래 그림의Device Ram Size를 512 이하로 잡아주시면 됩니다.
구글플레이 개발자 본인확인 (3) | 2024.09.16 |
---|---|
소스인사이트 팁들 (0) | 2011.01.07 |
VC++ 디버깅 시 중단점 적용이 안된다고 할 경우 (0) | 2010.12.06 |
Cygwin 관련 팁들 (0) | 2010.12.02 |
사실 기타를 독학하려고, 기타를 구입한지 10개월이 지났다.....(썩진 않겠지? ㅠㅠ)
모델은 유명한 Dame사에서 나온 Dame LILIES 200..
중급자까지도 커버될 정도의 스펙으로 25만원 정도 주고 구입했었다..(회사 복지 포인트를 이용했었음.. ^^v)
바디가 전판, 후판이 Solid로 되어있다고 하는 나름 준고급형 어쿠스틱 기타라고 했던 것 같다..
Solid라는 것이 합판을 떼다가 붙인게 아닌 일체형으로 되어 있으며,
일체형으로 된 것이 음이 깊고 좋다고 한다.. (전체가 Solid로 되어있으면, 최고급 이겠지..)
하지만, 그 동안 제대로 한 적이 없는 것 같다.. ㅋㅋ..
기타구입하면서, 교재를 패키지로 업어왔고..
기본적으로 필요할 것으로 생각되어.. 기타 조율에 필요한.. 메트로늄을 한 개 구입했었다. ㅎㅎ
기타를 작년 7월에 구입하고..
일단, 평소에 보관할 때는 줄을 느슨하게 해놓는 것이라고 들어서..
일단 줄을 느슨하게 해놓은채로, 내 방에서 방치되고 있다.. ㅠㅠ
예전부터, 기타로 연주해보고 싶은 곡은 많았다..
주로 가요 위주긴 했던 것 같은데.. "태양을 피하는 방법", "행복한 나를(허각 버젼)" 등
그리고 최근엔 "여수 밤바다"..
버스커버스커와 투개월이 슈스케3 에서 기타를 치고 싶은 본능을 자꾸 일깨워 준 것 같다..
언젠간, 교회에서도 내 기타가 빛을 발하는 날이 왔으면 한다... ㅎㅎ
올해엔, 꼭 제대로 시작해서 하수를 벗어나도록 해보자!!
기타 스탠드 구입! (0) | 2012.08.22 |
---|---|
드디어 통기타 학원을 수강하다! (0) | 2012.08.22 |
옵티머스 마하를 쓴지.. 1년 3개월 정도만에..
옵티머스 LTE로 바꾸기로 했다!! ㅎㅎ
옵티머스 뷰가 가장 최신 모델이긴 했지만..
가로 길이가 커서 한 손에 딱 들어오지 않는 부분이 맘에 들지 않았다..
게다가 옵티머스 LTE가 출시된지 6개월 정도가 지났고, 가격이 꽤 많이 떨어져 있었다..
할부원금 198,000 에 구입했다! (USIM 무료, 3개월 62요금제 의무, HDTV 3개월 무료)
그 동안 3G를 사용하면서.. 너무 답답했었는데..
LTE로 바꾸니, 정말 시원시원한 느낌이다.. ㅎㅎ
사실 2년 다 안채우고, 바꾸게 된 가장 큰 이유도 느린 데이터 속도가 가장 큰 이유다.
그리고 옵티머스 마하는 내장메모리가 너무 적게 탑재된 탔에..
App을 많이 설치하지 않았는데도, 금방 용량 부족현상이... (정말 답답했음.. ㅠㅠ)
옵티머스 LTE는 디스플레이도 IPS로 아주 선명하고,
마하랑 비교해서 칩셋도 좋은데다, 안드로이드 포팅도 최적화가 비교적 잘되어 있어서 속도도 빠르고,
U+가 LTE망에 사활을 걸어서.. 전국망 설치에 속도도 가장 잘 나오는 망을 선점해서,
더욱 나의 U+용 옵티머스 LTE(LG-LU6200) 가 빛이 더하는 것 같다. ^^
이제는 좀 안드로이드 탐방을 주제로 한 이 카테고리에 글을 많이 올리고, 활동을 늘려야 겠다.
너무 오랜만에 글을 올린 것 같고, 폰 개발자로써 안드로이드에 관심을 많이 가져야 될 것 같다.
여담으로, 얼마전에 나도 드디어 피쳐폰 개발을 마치고, 스마트폰 개발에 합류하게 되었다.
앞으로 LG가 더욱 멋진 스마트폰을 만드는데 한 몫할 것을 다짐해본다..
옵티머스LTE ICS 업그레이드! (0) | 2012.06.25 |
---|---|
옵티머스 패드!! 구입하다.. (0) | 2012.04.23 |
LG U+ 100 apps 공모전 (0) | 2011.04.12 |
옵티머스 마하 구입하다! (0) | 2011.01.17 |