Fore's Secret Clipboard Hooker BETA 1.0v
[기본 인터페이스]
이리 생겨 먹었다.
우선, 제일 왼쪽 메뉴에 파일을 눌러보면
[ 파 일 ]
위와 같이 뜬다.
[창을 항상 위에]
- 딴창에 안가려지고 게속 항상 위에 있는다.
[텍스트 후커 설정]
- 텍스트 상세 옵션을 들어간다.
[텍스트 파일로 저장]
- 유니코드로 기록을 저장한다.
[프로그램 종료]
- 끈다.
[ 클 립 보 드 옵 션 ]
[ 클립보드 감시 ]
- 이거 켜야 적용된다.
[ 한글 감시하지 않음 ]
- 이거 켜두면 인터넷 웹서핑이나 요딴거 할 때, 클립보드에 한글 복사되서 보드에 뜨는걸 방지해준다.
[ 한줄씩 출력 ]
- 말그대로 한줄씩만 보여줌.
[ 클립후커 내용 지움 ]
- 여태까지 로그 싹다지워버림
[ 번역기 사용 ]
- 사용한다. 번역기를
[ 번역 출력 방식 ]
- 위 메뉴안에는 '원문+번역문' 출력 기능이 있는데, 체크해두면 원문과 번역문이 동시에 출력된다.
[ 배경색 설정 ]
- 배경색 설정한다.
[ 글씨색 설정 ]
- 글씨색 설정한다.
[ 폰트 설정 ]
- 글씨 모양, 크기 꼴리는데로 바꿀 수 있다.
[ 파일 - 텍스트 후커 설정 ]
[ Hook Program - Path ]
- Agth, Ith 등 옆에 있는 Browse 버튼을 눌러 찾아주면 된다.
[ Hook Program - Type ]
- 설정해주면 도움된다.
[ Hook Program -Other program command line ]
- Aght, Ith 외에 다른 프로그램이 나오고 그 프로그램이 커멘드 라인으로 실행 가능하다면
Type 에서 Other Program 눌러주고 커멘드 라인 적어주면 된다.
커멘드 라인에 예약어가 두개 정도 있다.
$PROCESSNAME$ = 프로세스 이름이 적용된다.
$PROCESSID$ = 프로세스 ID가 적용된다.
Agth 커멘드라인을 예로 들면 Agth /L411 [/Hcode etc..] [/P(ProcessId)] 로 커멘드가 적용되는데
이때 Other Program 을 적용시키고 /L411 /HS-4@FFFFFF /P$PROCESSID$ 라 적어도
Agth 가 정상적으로 실행된다.
[ Hook Process ]
밑에 버튼에 Save & Attach 버튼을 이용할 때 써먹으면 유용할지도 모른다.
[ Hook program additional code - Additional code ]
Agth나 Ith 를 이용할 때, H 코드를 여기다 입력해주면 된다.
[ Startup ]
- Only Text window : 프로그램 실행시 텍스트 윈도우를 먼저 띄워준다.
- User Setting window : 프로그램 실행시 위 설정화면을 먼저 띄워준다.
- Text window & Hook program : 프로그램 실행시 텍스트 윈도우와 Hook Program 에
설정된 프로그램을 동시에 실행시켜준다.
※ Text window & Hook program 사용 시, 프로세스 Attach 는 되지 않으므로
ITH - Save 기능 이용할 때 유용함.
- 끝 -
p.s > 아참, 텍스트창에 옮겨진 모든 로그 클립보드 복사도 가능함.
위 프로그램 장점과 하자 : http://foreblog.tistory.com/631
BETA 1.0 v 계획에 따른 완성도 : 100 %
아마 배포 예정일자 : 3/9 [지인한정]
< 1.0v 향후 추가 업데이트 방향 >
- 한글 및 기타 문자열 감시하지 않음 or 스마트 감시(적당히보고 감시 안함)
- 프로그램 내 유저 번역 처리문 추가
- 플러그인 및 SDK 배포 예정
- 꼴리면 웹업데이트 기능도 추가함.
심심해서 풀어본 키젠미 (4) | 2013.04.06 |
---|---|
심심해서 적어보는 C언어 간략한(?) 총정리. (0) | 2013.03.21 |
심심하니 fread, fwrite, fseek, ftell 구현. (Windows) (2) | 2012.10.21 |
심심하니, 쓰레드에 대해 이야기해보자. (0) | 2012.10.10 |
아, 소켓프로그래밍 모르겠는데 ! 소켓 프로그래밍의 시작 (0) | 2012.10.09 |
올해 2013년.
기분 좋게 포멧하고 추가 검색 공급자를 넣으려니까 . . .
보이질 않는다.
[위 이미지를 클릭하시면 확대됩니다.]
네이버고 구글이 검색해도 원하는 답변은 정말 찾아보기 힘들다.
(찾아보면 나오긴 나온다. 절차가 좀 복잡할 뿐)
그래서, 직접 만들어봄 -_- ; ; ;
[이전 버전]
[최신 버전]
※ Windows 7 에선 확인됐으나 XP에서 정상 작동은 검증되지 않았습니다.
(일단, XP에 맞게 코드는 넣어뒀는데...)
────────────────────────────
< 업데이트 사항 >
1.0v
최초 배포.
1.01v
아이콘 경로 생성 상 오류 코드 수정.
실패했는데 성공했다는 오류 수정.
1.02v
아이콘 경로 생성 상 오류 코드 수정.
1.03v
Windows Vista 계열 이상 관리자 권한 요청 추가.
────────────────────────────
[사용방법]
1번칸에는 검색 공급자의 이름을 설정하기 위해 원하는 이름으로 입력한다.
위 스크린샷의 빨간색 칸에 해당된다.
2번칸에는 검색 공급자의 주소를 입력하되
반드시 TestSearch 라는 단어를 한번 입력한 주소로 입력해주어야한다.
예를 들어, 네이버에 'TestSearch' 라 검색해보고 주소창을 보자.
주소 창에는
http://search.naver.com/search.naver?where=nexearch&sm=ies_hty&query=TestSearch&ie=utf8
이런 주소가 나와있고, 주소 안에 문자열중에 "TestSearch" 라는 문자가 있다.
위의 예와 같이 주소안에 TestSearch 라는 단어가 있어야하고, 그 단어를 넣기 위해선
해당 사이트에서 한번이상 검색한 주소로 검색 공급자 주소란에 넣어주면 된다.
3번칸에는 원하는 아이콘을 집어서 선택해주면 된다.
※ 선택하지 않아도 진행된다.
4번칸에는 코드페이지 설정인데, 대부분의 검색사이트가 UTF-8 을 사용하지만,
옛날 사이트 같은 경우엔 euc-kr 등을 사용한다.
[위 이미지를 클릭하시면 확대됩니다.]
알아보는 방법은 위 스크린샷 같이 해당 홈페이지를
오른쪽 마우스 클릭 > 인코딩 탭에 설정된 값으로 넣어주면
대부분 맞게 들어가리라 예상한다.
그리고 5번칸을 누르면 검색 공급자 추가 시작 !
그리고, 이 메시지가 뜨면 성공된 것 입니다.
Applocale Autoclick Loader (4) | 2013.04.01 |
---|---|
Fore's Secret ClipboardHooker SDK Beta 1.02v (0) | 2013.03.29 |
Switch Run (2) | 2012.09.14 |
Fore database list creater beta 1.0v (2) | 2012.09.06 |
네이트온 로그인 기록 제거 프로그램 (8) | 2011.11.20 |
# fread
size_t __cdecl fread( void *buffer, size_t size, size_t count, FILE *stream){
|
# fwrite
size_t __cdecl fwrite( void *buffer, size_t size, size_t count, FILE *stream){
|
# fseek
#define SEEK_SET FILE_BEGIN
int __cdecl fseek( FILE *stream, long offset, int origin ){
|
# ftell
int __cdecl ftell(FILE *stream){
|
심심해서 적어보는 C언어 간략한(?) 총정리. (0) | 2013.03.21 |
---|---|
FSCH BETA 1.0v User Manual (2) | 2013.03.06 |
심심하니, 쓰레드에 대해 이야기해보자. (0) | 2012.10.10 |
아, 소켓프로그래밍 모르겠는데 ! 소켓 프로그래밍의 시작 (0) | 2012.10.09 |
Internet Explorer 도대체 임시 파일들은 어디에 ? (6) | 2012.09.26 |
[번뜩 !]
진짜 할거없네 . . . 쓰레드에 대해 이야기해보자.
주제는 크게 지역변수와 쓰레드와의 관계이다.
쓰레드는 한 프로세스에 여러일을 동시에 해주는거처럼 보이게하는 아주 편리한 역활을 하고 있다.
이 편리한 쓰레드는 윈도우상 크게 쓰래드 함수가 2가지 종류로 존재한다.
< CRT(C-RunTime) 함수 >
uintptr_t _beginthread( uintptr_t _beginthreadex(
< 출처 > http://msdn.microsoft.com/en-us/library/kdzttdcb(v=VS.80).aspx
|
< WIndows API 함수 >
HANDLE WINAPI CreateThread(
HANDLE WINAPI CreateRemoteThread(
< 출처 > http://msdn.microsoft.com/en-us/library/windows/desktop/ms682453(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms682437(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/dd405484(v=vs.85).aspx
|
귀찮으니 사용 방법은 출처를 확인.
위 빨간색 부분을 제일 많이 애용한다.
그럼, 위 쓰레드는 어떤식으로 함수가 호출되는가 ?
[WIndows XP]
_beginthread -> CreateThread -> CreateRemoteThread
[Windows 7]
_beginthread -> CreateThread -> CreateRemoteThread -> CreateRemoteThreadEx
※ Windows 7 은 분석해보지 않아서 확실하지 않습니다.
이런식으로 호출된다.
결론적으로 윈도우에서는 CreateRemoteThread로 호출하는게 제일 빠른 결론이 나옴.
이야기가 산으로 갔는데, 쓰레드생성시 Parameter에 지역변수를 사용하면 안된다 ?
답은 'NO' 이다. 사용해도 되는데, 문제는 정적변수로 지역변수를 사용해야한다.
잘못된 예 |
#include <windows.h> #include <stdio.h>
DWORD WINAPI CallThread(LPVOID pVal){ DWORD dwCnt = 0;
if ( pVal ) while(dwCnt++<10){ printf("%d\n",*(int *)pVal); Sleep(1000); } return 0; }
HANDLE WINAPI Call(){ DWORD dwThreadId; HANDLE hThread; int nVal = 1;
hThread = CreateThread(NULL,0,CallThread,&nVal,0,&dwThreadId); if ( hThread ) return hThread; return NULL; }
int main(void){ HANDLE hThread;
hThread = Call(); if ( hThread ){ WaitForSingleObject(hThread,INFINITE); CloseHandle(hThread); }
return 0; }
|
올바른 예 |
#include <windows.h> #include <stdio.h>
DWORD WINAPI CallThread(LPVOID pVal){ DWORD dwCnt = 0;
if ( pVal ) while(dwCnt++<10){ printf("%d\n",*(int *)pVal); Sleep(1000); } return 0; }
HANDLE WINAPI Call(){ DWORD dwThreadId; HANDLE hThread; static int nVal = 1;
hThread = CreateThread(NULL,0,CallThread,&nVal,0,&dwThreadId); if ( hThread ) return hThread; return NULL; }
int main(void){ HANDLE hThread;
hThread = Call(); if ( hThread ){ WaitForSingleObject(hThread,INFINITE); CloseHandle(hThread); } return 0; }
|
이런 느낌이다.
그럼 왜 지역 변수로 사용하면 안되는걸까 ?
정적 변수의 경우엔 '자신만의 저장소(메모리주소)를 독립적으로 가지고 있는' 반면
지역 변수의 경우엔 '함수 호출시에 변수를 할당' 하기 때문이다.
따라서, 해당 함수가 끝나면, 할당된 지역변수는 해제되고 해제된 지역변수 메모리 주소는
다른 함수등에 의해 새로운 값으로 덮어씌워지게 된다.
물론, 지역변수가 해제되고 해당 지역변수의 주소에 있는 메모리의 값이 변동이 없다면
값은 바뀌지 않는다.
(하지만, 그런일은 거의 없다.)
[ 잘못된 예의 예제 그림 ]
[ 올바른 예의 예제 그림 ]
그림으로 나타내면 이런 느낌 ?
Local Memory 부분에서 서로의 값이 충돌하는 사태가 벌어져서 지역변수로 쓰면 안된다는 이야기.
그럼 여기서 문제
이런것도 가능할까 ?
이야기는 여기서 마치도록 하겠습니다 ' ' ;
FSCH BETA 1.0v User Manual (2) | 2013.03.06 |
---|---|
심심하니 fread, fwrite, fseek, ftell 구현. (Windows) (2) | 2012.10.21 |
아, 소켓프로그래밍 모르겠는데 ! 소켓 프로그래밍의 시작 (0) | 2012.10.09 |
Internet Explorer 도대체 임시 파일들은 어디에 ? (6) | 2012.09.26 |
새벽에 자려는데 떠오른 printf (2) | 2012.09.10 |
최근에 리버싱만해서 피폐해진 머리를 소켓 프로그래밍으로 옮겨서 연구 시작 !
프로그래밍 공부는 하고 싶은데, 책은 사기 싫고 . . . 그럴땐 역시 사랑스러운 MSDN 쨔응 !
http://msdn.microsoft.com/en-us/library/windows/desktop/ms738545(v=vs.85).aspx
자, 이렇게하면 된다. 외국어영역 5등급정도만 나와도 충분히 이해할 수 있는 글뿐(?)이다.
차근 차근 읽어보면
소켓 프로그래밍의 통신에는 크게 두가지로 분류되는 듯하고 내부 절차는 이러한듯 하다.
Server |
Client |
1. Initialize Winsock. 2. Create a socket. 3. Bind the socket. 4. Listen on the socket for a client. 5. Accept a connection from a client. 6. Receive and send data. 7. Disconnect.
|
1. Initialize Winsock. 2. Create a socket. 3. Connect to the server. 4. Send and receive data. 5. Disconnect. |
너무 쉽죠 ?
자, 이제 서버와 클라이언트의 소스를 작성해보자.
위 홈페이지를 들어가면 Client 와 Server 를 구축하는 간단한 예제 소스가 나와있다.
Server 부터 구축해야 Client를 시험해볼 수 있기 때문에 Server -> Client 순으로 구축하는걸 추천한다.
Server.cpp |
#include <Winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
int main(void){
// WSA 초기화
// 소켓 생성
// 현재 컴퓨터의 IP 정보를 얻어옴
// 소켓 주소 생성
// 소켓 주소 생성 {
// socket 및 bind 확인. listen(s,SOMAXCONN); while ( cnt < 2 ){ do{ closesocket(s);
WSACleanup();
return 0;
|
Client.cpp |
#include <Winsock2.h> #pragma comment(lib,"Ws2_32.lib")
int main(void){
memset(&wsa,0,sizeof(wsa));
memset(&addr,0,sizeof(addr)); host = gethostbyname(NULL); getaddrinfo(lpIPString,lpPort,&addr,&paddr);
s = socket(paddr->ai_family,paddr->ai_socktype,paddr->ai_protocol);
connect(s,paddr->ai_addr,paddr->ai_addrlen); {
do{
shutdown(s, SD_SEND);
closesocket(s);
WSACleanup();
return 0; |
이런식으로 구축되지 않는가 !?
자, 그럼 이쯤에서 남자라면 한번씩 해보는 도전 !
인터넷을 접속하면 어떻게 될까 ?
조짐이 있어보인다 !
서버에서 다중연결을 원할 경우엔 accept 부터 thread 를 이용하여 적당히 뿌려주면 될 것같다 > < !!
조금 더 연구해서 한번 서버구축도 노려볼만할거 같음 ' ')b
( 인터넷 계층도 알아볼 필요가 있어보임 )
심심하니 fread, fwrite, fseek, ftell 구현. (Windows) (2) | 2012.10.21 |
---|---|
심심하니, 쓰레드에 대해 이야기해보자. (0) | 2012.10.10 |
Internet Explorer 도대체 임시 파일들은 어디에 ? (6) | 2012.09.26 |
새벽에 자려는데 떠오른 printf (2) | 2012.09.10 |
[Javascript] referrer 를 통한 웹사이트 접근 금지 (6) | 2011.10.15 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |