(ウチ、カードで見たんよー)
( 일단, Windows Vista 상위계열 전용입니다.
XP 같은거 들고와서 안되요 징징거려도 처리하기 귀찮으니, [클릭] 을 보시면 참고하시면 되겠습니다. )
::: 간단한 프로그램 소개 :::
인터넷 익스플로어(이하, 익플) 에서 다운로드 하는 도중 다운로드 경로를 지정하고 싶은데
평소에도 내말을 안듣는 이 미친것이 자동으로 '임시 폴더' 로 저장하는 경우
윈도우 XP 의 경우엔 ' 내 컴퓨터 > 도구 > 폴더 옵션 > 파일 형식 > 확장명 선택 > 고급 ' 으로
어찌어찌 처리가 가능하지만
윈도우 (Windows) 7 계열에서는 이 기능이 사라졌다고 . . .
( 이 기능을 윈7에서 찾아보려고 3일정도 찾아봤는데 안보여서 포기.
인터넷으로 검색 결과, MS에서 만들지 않았고, 앞으로도 추가할 계획이 없다는 설이 . . . )
그래서 만들었습니다 -_- ;;;
( 매번 레지스트리가서 수정하기 귀찮고 . . . )
적당히 매번 자동으로 임시 경로로 갈 법한 녀석을 클릭하고 아래 삭제버튼을
무한 반복 . . . 하시다 다되신 경우 적용 누르시면 바로 적용되십니다.
주의 ! 혹시나 "잘못 편집했는데 복구해주세요 !! ㅠㅠ" 라 말씀하셔도 제작자는 일절 책임지지 않으며,
만약, 복구를 원하시면, 원하는 확장명 파일 다운로드를 걸고 옵션에서 설정해보세요.
거의 99% 확률로 다시 처리됩니다.
[ 나머지 1%는 사용자의 부주의로 인한 오류(악성코드, 바이러스 등)으로 안 될 경우 있음. ]
오류, 버그 등 제보는 덧글 혹은 방명록에 달아주시면
가능한 한 친절하고 신속하고 정확하게 답변할 수 있도록 노력하겠습니다.
OleUnRePack (27) | 2014.09.12 |
---|---|
한국 EMS 다중 배송 추적/조회 (0) | 2014.08.01 |
Applocale Autoclick Loader (4) | 2013.04.01 |
Fore's Secret ClipboardHooker SDK Beta 1.02v (0) | 2013.03.29 |
IE7 이상 추가 검색 공급자 직접만들기 (16) | 2013.02.18 |
포스팅 적고 싶은데 적을게 없으니 이런거나 간간히 적어줘야죠.
[ 폴더 생성 ]
BOOL WINAPI MyCreateDirectoryW(LPWSTR lpDirectory){ while(*lpString){
|
[ 현재 실행중인 프로그램의 경로 ]
int WINAPI GetCurrentProcessPathW(LPWSTR lpPath,int nPathLength){
lpString = wPath; dwLength = lpString-wPath; memcpy(lpPath,wPath,dwLength*sizeof(WCHAR)); return dwLength;
|
참고로 GetCurrentDirectory 함수는 비추천함. 설명하기 귀찮으니 이하 생략.
하고 싶은데, 간단히 설명하면 특별한 설정을 해주지 않는 프로세스가 해당 exe를 호출하면
타 프로세스(exe)의 현재 경로 시점에서 처리되어 언제든지 가변될 수 있다.
※ CreateProcess 의 LPCTSTR lpCurrentDirectory 변수 참고바람.
p.s >
// TestApp.cpp
int main(void){ GetCurrentProcessPathW(wPath,MAX_PATH);
|
이런 일이 발생함.
갑작스레 떠오른 비트 구조체와 바이트 순서의 관계 (0) | 2014.10.28 |
---|---|
Visual Studio Runtime Library Compiler Option /MD /MT (0) | 2014.07.20 |
CreateDialogBoxIndirectParam, DialogBoxIndirectParam 구현. (2) | 2013.05.17 |
광고, 악성코드 썰 좀 풀어보자. (4) | 2013.05.04 |
[임시] 티스토리 스팸 덧글/방명록 차단. (8) | 2013.04.27 |
[힐끗]
CreateDialogBoxIndirectParam, DialogBoxIndirectParam 이놈들에 대해 이야기 해보자.
이녀석들을 쓰면 좋은 점이라면, 사용자로 하여금 리소스로 설정된 다이어로그를
리소스 수정 프로그램으로 수정시킬 수 없게 만든다는 점 외에는 장점이 없다.
( 그래봐야, 리버싱하면 리소스 수정 프로그램도 무력화된다. )
리소스 수정 프로그램은 이에 관련해 무지한 사람이더라도
인터페이스를 사용자가 손쉽게 수정 가능하니, 이를 방지하기 위해 한번 손으로 코드를 구현해보았다.
HWND WINAPI CreateDialogIndirectParam( INT_PTR WINAPI DialogBoxIndirectParam(
< 출처 > http://msdn.microsoft.com/en-us/library/windows/desktop/ms645441(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms645461(v=vs.85).aspx
|
일단 함수들은 이렇게 생기셨다.
근데 이녀석들의 웃긴점은
두번째 인자가 LPCDLGTEMPLATE 되어 있지만, 실제 DLGTEMPLATE 값만 넘기면 실행되지 않는다.
왜냐하면, DLGTEMPLATE 은 하나의 헤더일 뿐, 내용이 들어가지 않기 때문이다.
구현은 이렇게 . . .
#include <windows.h>
// 유저 윈도우 이름 정의 #ifdef UNICODE
// 다이어로그 기본 템플릿 재정의
// 다이어로그 메시지 처리
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ // 위 구조체 크기를 계산하기 위해 임시변수 할당함. // 기존 템플릿 크기 + 윈도우 이름(유니코드) 사이즈 + 여분 공간(1) 을 할당할 준비함. // 메모리 할당 // 메모리를 죄다 0으로 초기화. // 윈도우 이름을 복사함. // 템플릿 옵션 설정함. // 다이어로그 생성 // 메모리 해제 return 0;
|
그냥 귀찮아서 간략하게 구현했는데
자세한건 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644996(v=vs.85).aspx 을 보면
다이어로그 안에 생성되는 윈도우를 좀 더 자세히 구현할 수 있지만
차라리 저렇게 구현할 바에야 CreateWindowEx 나 그냥 리소스로 구현해버리고 말겠다.
Visual Studio Runtime Library Compiler Option /MD /MT (0) | 2014.07.20 |
---|---|
[API] 현재 실행중인 프로그램 경로 구하기 및 폴더 생성 (0) | 2013.05.31 |
광고, 악성코드 썰 좀 풀어보자. (4) | 2013.05.04 |
[임시] 티스토리 스팸 덧글/방명록 차단. (8) | 2013.04.27 |
빡침의 하루 ( ERROR_CANNOT_FIND_WND_CLASS ) (4) | 2013.04.23 |
모 사이트에서 자료 다운받으려니 IE8은 최신이 아니라고
" 크롬이나 파폭쓰세여 (T-T) " 라는 문구가 계속 나오길래 빡쳐서
포터블 크롬을 찾아보던 중 . . .
매우 의심쩍다. 바이러스나 악성코드란 녀석이 클릭하자마자 바로 감염되는 녀석이 아니니 한번 다운받아보자.
( 특수한 스크립트로 이루어진 경우엔 클릭시 바로 감염됨. )
설치파일을 가장한 실행 가능 프로그램 파일 확장명(exe)을 지니고 있다.
보통 저 모양새는 *.msi ( Microsoft Installer ) 의 파일이 지니는데 마치 설치파일 마냥 위장했다.
일단, 실행해보기도 싫으니 슬쩍 뜯어보면
이런식으로 나타나는데, 위 윈도우에 적혀있는 글씨, 모양새야 코드로 언제든지 변경 가능하다 치더라도
UI 베이스를 저렇게 만들었다는건, 일단 기본적으로 낚아보겠다 마음이 있어보인다.
그리고, 저 모양새가 IE의 다운로드 창과 매우 흡사하게 생겼는데, 혹시 서버에서 추가 다운로드를 받아오나 싶어
확인해보니
실행 프로그램 자체가 함수덩어리로 이루어져 있는데 그 함수들 중 하나가 저거다.
딱 함수 이름만 봐도 파일 잘 다운받게 생겼다.
(사실, C# 파일인가 확인하려다, 우연치 않게 발견 . . . )
이 놈의 안을 조금 들여다보면
[ 스크린샷 1 ]
[ 스크린샷 2 ]
스크린샷 1번은 뭐하는건가 자세히 분석해보지 않아 모르겠고
스크린샷 2번은 그냥 딱 눈에봐도 " 다운로드 → 실행 " 한다.
이런식으로 한번 프로그램 잘못 실행하면 다운로드→실행→다운로드→실행 의 반복으로
컴퓨터 내에 계속해서 수많은 광고들이 쌓이게 된다.
( 맨 처음 감염(?)되는 방식이 이렇고 한번 설치된 순간
컴퓨터 시작시마다 자동적으로 실행되어 다운로드 하는 경우도 대다수이다. )
결론적으로, 가능하면 신뢰있는 사이트, 어떠한 공식사이트 제외하고는
가능하면 다운로드하는건 자제하는게 좋다.
[API] 현재 실행중인 프로그램 경로 구하기 및 폴더 생성 (0) | 2013.05.31 |
---|---|
CreateDialogBoxIndirectParam, DialogBoxIndirectParam 구현. (2) | 2013.05.17 |
[임시] 티스토리 스팸 덧글/방명록 차단. (8) | 2013.04.27 |
빡침의 하루 ( ERROR_CANNOT_FIND_WND_CLASS ) (4) | 2013.04.23 |
심심해서 풀어본 키젠미 (4) | 2013.04.06 |
[클릭하시면 이미지가 확대됩니다.]
최근에 스팸덧글, 스팸방명록. 많이 달린다.
이놈들 IP를 확인해보면
전부다 중국놈들이다.
( 가끔 딴나라도 섞이긴하는데 높은 확률로 중국놈들이더군요 )
그래서, 임시적으로 자바스크립트를 발동해봄.
[ 공통 스크립트 ]
<script language="javascript" src="http://j.maxmind.com/app/geoip.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script> function StrLength(lpString){
function MyCmpString(lpString1,lpString2,nLength){ function GotoUrl(url){ </script>
|
[ 해당 국가만 차단 ]
<script> function SetSpamFilter(){ lpBanCountry[0] = "CN"; // China // lpBanCountry[1] = "JA"; // Japan // lpBanCountry[2] = "KR"; // Korea // 위와 같은 식으로 늘려주면 된다. </script>
|
[ 해당 국가외 타 나라 접근시 차단 ]
<script> function SetSpamFilter(){ lpBanCountry[0] = "KR"; // Korea // lpBanCountry[1] = "JA"; // Japan // lpBanCountry[2] = "CN"; // China // 위와 같은 식으로 늘려주면 된다. </script>
|
[ IP로만 차단 ]
<script> $.getJSON("http://jsonip.appspot.com?callback=?", // lpBanIpList[1] = "255.255.255.255"; // 255.255.255.255 로 되는 IP 전부 차단. </script>
|
일단, 오늘 만들어서 조금 사용해봐야 알거 같은데
잘 된다 싶으면 다시 포스팅 날림.
p.s > 해당 사용자가 프로그램으로 HttpRequest 방식을 이용하면 위 방법으론 처리 불가능함.
CreateDialogBoxIndirectParam, DialogBoxIndirectParam 구현. (2) | 2013.05.17 |
---|---|
광고, 악성코드 썰 좀 풀어보자. (4) | 2013.05.04 |
빡침의 하루 ( ERROR_CANNOT_FIND_WND_CLASS ) (4) | 2013.04.23 |
심심해서 풀어본 키젠미 (4) | 2013.04.06 |
심심해서 적어보는 C언어 간략한(?) 총정리. (0) | 2013.03.21 |
|
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |