1. 개발자 도구(F12) 선택

2. 설정(F1) 선택

3. 하단의 JavaScript 사용 안함 (Disable JavaScript) 체크

 

설정(점 3개) -> 도구 더보기 -> 개발자 도구(f12나 Ctrl+Shift+I 누르면 한방)

 

설정(톱니바퀴 모양, f1키) 선택

 

 

하단의 JavaScript 사용 안 함 선택

 

우클릭 방지 해제 했으니 클릭유 한잔 드시죠

 

서울우유 클릭유 1A등급 우유

COUPANG

www.coupang.com

※쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.

없애 보자

1.파일 클릭
2. 옵셥 선택

 

3.표시 -> 단락 키호 체크 해제

 

경종단락보호장치(BF-2022)

텍스트를 읽어주는 프로그램을 발견했습니다. 보이스웨어 같은 다른 사이트 가서 복사 붙여넣기 했는데 크롬 확장 프로그램으도 있더라고요. 조금 어설프지만 충분히 알아 들을만 합니다.

장문의 글 읽기 귀찮을때 사용하시면 딱입니다.

 

https://chrome.google.com/webstore/detail/select-and-speak-text-to/gfjopfpjmkcfgjpogepmdjmcnihfpokn

 

Select and Speak - 텍스트 음성 변환

Select and Speak는 브라우저에서 선택된 어떤 텍스트이든 iSpeech의 실제 음성 수준 TTS(텍스트-음성 변환)로 소리내어 읽어 줍니다. 광대한 iSpeech 텍스트로 다양한 언어의 음성 낭독이 지원됩니다. 옵션 매뉴에서…

chrome.google.com

저기 가셔서 확장 프로그램을 크롬에 추가 해 주시고

 

설치를 완료하면 위 그림과 같이 아이콘이 뜹니다. 우클릭을 해서 옵션을 클릭합니다.

 

 

언어 탭에서 한국어를 선택하시면 됩니다.

 

 

웹페이지의 글을 선택하면 재생 아이콘이 뜰겁니다. 클릭하면 음성이 들리실겁니다.

 

 

옵션에서 단축키 설정도 가능합니다.

 

 

책 읽어 주는 스토리 패드: 노래하는 전래동화:7가지 전래동화가 들어있어요!, 스마트베어

from selenium import webdriver

import time


driver = webdriver.Chrome('./chromedriver.exe')

driver.implicitly_wait(3)

driver.get('https://ko-kr.facebook.com/')


driver.find_element_by_id('email').send_keys(id)


driver.find_element_by_id('pass').send_keys(pass)


driver.find_element_by_css_selector('#login_form > table > tbody > tr:nth-child(2) > td:nth-child(3) > label > input[type=submit]').click()


time.sleep(3)


driver.close()



'IT > Python' 카테고리의 다른 글

✅ Conda 기본 명령어 정리  (0) 2025.03.10
파이썬 csv 파일로 저장(pandas 이용)  (0) 2019.01.31
파이썬 2.x 한글 안써질때  (0) 2018.08.02

import pandas as pd


my_list = [[10, 13, 17], [3, 5, 1], [13, 11, 12]]


df = pd.DataFrame(my_list, columns=['A', 'B', 'C'])

df.to_csv('file.csv')

 

[PE파일 32비트 64비트 구분법]

 

1.메모장(notepad로 확인하고자 하는 PE파일을 연다.

 

 

2.찾기(ctrl + f)로 PE를 찾는다.

 

 

3.첫번째 찾아지는 PE 다음에 오는 글자를 확인하는다. 다음에 오는 글자가 

L이면 32비트 

d 이면 64비트

 

 

 

비트 딥클린파워 액체세제 파우치형 일반용, 2L, 4개

 

비트 딥클린파워 액체세제 파우치형 일반용

COUPANG

www.coupang.com

 

 

다수의 링크를 한번에 여는 꿀팁을 알려드리겠습니다.

 

크롬을 써야합니다.

 

 

1. 크롬 웹스토어에 가셔서 Linkclump 설치

 

2. z키를 누른 상태에서 오픈할 링크들을 드래그

 

 

 

 

 

이렇게 z키를 누른 상태에서 드래그로 선택을 하면 잠시후에 링크들이 새 탭에서 열리게 됩니다.

 

 

 

 

옵션에서 기본적인 설정은 위와 같이 되어있습니다.

 

입맛에 맞게 설정하시면 되겠습니다.

 

 

냉동아재 삼성에어컨 스마트링크 에어컨배관자재, 12.7mm

 

냉동아재 삼성에어컨 스마트링크 에어컨배관자재

COUPANG

www.coupang.com

 

괜찮은 마우스 제스쳐 프로그램 추천 드립니다.

네이버 툴바의 마우스 제스쳐를 사용중 인데 인식률이 영 좋지 않아서 더 좋은게 없나 찾다보니

브라우저상에서 말고 윈도우상에서도 쓸 수 있는 괜찮은 마우스 제스쳐 프로그램을 찾아서 알려드립니다.

 

마우스 제스쳐란?

마우스의 오른쪽 버튼을 누른 상태에서 마우스를 움직여서 일정한 모양의 그림을 그린 뒤 오른쪽 버튼을 놓으면, 각 그림에 해당하는 기능이 실행되는 것을 말합니다.

 

Strokes Plus

http://www.strokesplus.com/forum/topic/1097/version-28531

에 가셔서 OS에 맞는 버전 받으시면 됩니다.

 

 

사용 예)

1.우클릭 버튼을 누른채로 아래와 같이 ‘e’ 모양을 그리면 탐색기 실행

 

 

2.G모양을 그리면 익스플로러로 Google 페이지 오픈

 

 

3. 선을 위로 그으면 Copy, 아래로 그으면 Paste

  

 

 

등등 기본적으로 제공하는 기능은 이외에도 많이 있고 각자 기호에 맞게 조절 가능합니다.

제스쳐도 추가 할 수 있고 거기 맞는 액션도 추가 할 수 있습니다.

 

잘만 조절하면 왼손은 주머니에 넣은 채 거만하게 오른손만으로 모든 것을 처리 할 수 있게 될지도 모르겠네요.

 

 

[수초스토어] 검역 붉은수초 로탈라 블러드 레드 7촉 / 구피 새우 어항 수초 쉬운 예쁜 은신처 중

COUPANG

www.coupang.com

 

유저모드 디버거하면 바로 가장 유명한 올리디버거(OllyDBG)가 있죠. 요즘은 x64dbg도 많이 쓰이는것 같습니다.


올리디버거 플러그인 중에 프로그램이 실행되면 자동으로 어태치시켜주고 어태치하는 시간도 설정할 수 있는 유용한 툴이 있죠

바로 AutoAttach 라는 플러그인 입니다.




About 매뉴는 제작자에 관한 메뉴라 눌러보실 필요 없고


Set process name 은 어태치할 프로세스명을 설정하는 칸입니다. 여기서 설정한 이름의 프로세스가 있으면 바로 어태치 시킵니다.


Set delay time은 Set process name에서 설정한 프로세스 발견시 얼마나 딜레이(밀리세컨드)를 주고 어태치 시킬지 설정하는 매뉴입니다.


하지만 이 툴의 단점이 있으니 바로 




확장자가 .xem같이 exe로 끝나지 않는 프로그램은 어태치 시키지 못한다는 것입니다.


일반적인 프로그램은 대부분 .exe로 되어있지만 


보안프로그램이나 악성코드, 게임핵툴의 경우 탐지/분석을 회피하기 위해 특수한 확장자명으로 되어있는 경우가 많습니다.




위와 같이 프로세스 명을 적고 해당 프로세스를 실행해도 어태치가 되지 않습니다.


다시 한번 Set process name 매뉴에 가보면





위 그림과 같이 내가 적은 프로세스명 뒤에 자동으로 + .exe 문자열을 붙여주는것을 확인 할 수 있습니다.


자 그럼 이것을 한번 수정해 보도록 하겠습니다.


아주 쉽고 간단하니 편하게 따라오시기 바랍니다.


IDA Hexray로 한번 대략적으로 플로그인 모듈을 살펴보도록 하겠습니다.





여러 함수가 보이는데 하나하나 살펴보다 보니 _ODBG_PluginMainloop에 주요 소스가 있는것을 확인 할 수 있습니다.


.exe를 붙인다는것을 감안해서 문자열 보기 (shift + f12)를 통해 찾아가셔도 좋습니다.





.exe 문자열을 찾고 그와 관련된 작업을 하는것을 알 수 있습니다.


여기서 분석가능하신 분도 계시겠지만 더 쉽게 툴의 힘을 빌려 f5를 눌러줍니다.






HexRay의 위엄... 거의 원본 소스 상태로 보여줍니다.


strstr 함수를 사용해서 사용자가 입력한 프로세스명이 .exe를 포함하지 않으면 뒤에 .exe를 붙여주는 코드가 있습니다.


이 코드때문에 .xem 파일을 어태치 할 수 없었습니다. 저 부분을 nop처리 하면 가뿐히 해결될걸로 보이네요.


수정은 OllyDBG로 해보도록 하겠습니다.







플러그인을 넣은 올리디버그를 실행하고 하나 더 실행해서 첫번째 실행한 올리디버그를 어태치 시켜줍니다.(올리디버그를 올리디버그로 어태치)


모듈 목록에 AutoAttach.dll이 보입니다.





문자열 검색을 해보니 역시나 .exe 부분이 나옵니다. 저기로 이동





exe가 있는지 비교하는 부분이 보이네요. 저 JNZ를 무조건 점프시키는 JMP로 변경하면 해결되겠네요.





이렇게 변경시킨뒤 파일로 저장합니다. 


저장법은 우클릭 -> Copy to executable -> All modifications


다음 save file로 저장해줍니다.


이렇게 변경한 플러그인으로 실행하면 







잘 어태치 되는것을 확인 할 수 있습니다.



원본 파일과 수정한 두 파일을 첨부해 놓겠습니다.


AutoAttach.dll

AutoAttach_m.dll


불친절한 설명을 읽어주셔서 감사합니다.


 



stpcpy

원형 : char *stpcpy( char *dest, char *src );

헤더 : string.h

기능 : 문자열 src를 문자배열 dest로 복사한다. dest 의 길이가 src 보다 작은 경우 dest 뒤의 인접 데이터가 파괴된다.

리턴 : dest + strlen(src)의 번지를 리턴

 

 strcat

원형 : char *strcat( char *dest, const char *src );

헤더 : string.h

기능 : 문자열끼리 연결한다. dest의 널문자 위치에 src가 붙는다. dest의 길이가 ( dest 문자열 + src 문자열 ) 길이보다 작을 경우 인접 데이터가 파괴된다.

리턴 : dest의 번지가 리턴

 

 strchr

원형 : char *strchr( const *src, int c );

헤더 : string.h

기능 : 문자열 배열 src 내에 문자 c가 있는지 검사하고 있을 경우 문자 c가 있는 번지를 리턴. 널문자도 문자로 취급하기 때문에 널문자를 넣으면 첫번째 널문자의 번지를 리턴한다.

리턴 : 문자열 src내에서 발견된 문자 c의 포인터. 발견되지 않을 경우 NULL 리턴

 

 strcmp

원형 : int strcmp( const char *src1, const char *src2 );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교함. 이 함수를 사용하여 두 개의 문자열이 같은 문자열인지 아닌지를 비교할 수 있다. 같을 경우 0, 다를 경우 양수나 음수의 값을 리턴.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strcmpi

원형 : int strcmpi( const char *src1, const char *src2 );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교함. 하지만 대소문자를 구분하지 않는다. 이 함수를 사용하여 두 개의 문자열이 같은 문자열인지 아닌지를 비교할 수 있다. 같을 경우 0, 다를 경우 양수나 음수의 값을 리턴.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strcoll

원형 : int strcoll( char *src1, char *src2 );

헤더 : string.h

기능 : setlocale 함수에 의해 지정된 비교방식에 따라 두 개의 문자열을 비교

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strcpy

원형 : char *strcpy( char *dest, const char *src );

헤더 : string.h

기능 : 문자열 src를 문자배열 dest로 복사한다. dest 의 길이가 src 보다 작은 경우 dest 뒤의 인접 데이터가 파괴된다.

리턴 : dest의 번지가 리턴

 

 strcspn

원형 : size_t strcspn( const char *src1, const char *src2 );

헤더 : string.h

기능 : 문자열 src1 중에 문자열 src2에 들어 있지 않은 문자들이 연속해 있는 길이를 구한다. 문자열 s2에 없는 문자들로 구성되어 있는 문자열 s1 내의 세그먼트를 찾아내고 그 세그먼트의 길이를 리턴.

예를 들어 src1 = "123456" 이고 src2 = "0486" 이라면 src1 내에서 src2 의 문자인 4가 나오기 전까지의 길이인 3을 리턴한다.

리턴 : 찾아낸 세그먼트의 길이.  만약 0을 리턴한다면 세그먼트가 발견되지 않은 것이다.

 

 strdup

원형 : char *strdup( const char *src );

헤더 : string.h

기능 : 새로운 메모리를 할당하고 문자열 src를 복사한 후 그 포인터를 리턴한다. 종료 시 반드시 복제된 문자열은 메모리를 해제해 주어야 한다.

리턴 : 복제된 문자열의 포인터를 리턴. 메모리 할당에 실패한 경우 NULL을 리턴.

 

 _strerror

원형 : char *_strerror( const char *src );

헤더 : string.h, stdio.h

기능 : 사용자가 정의하는 에러 메시지를 만든다. src가 NULL일 경우 최근 발생한 에러 메시지만으로 구성된 문자열을 만들고 src가 NULL이 아닌 경우 에러메시지 형식의 문자열을 만든다.

만약 src 가 "babo" 이면 babo : 최근 에러 메시지 같은 형식으로 문자열을 만든다.

리턴 : 만들어진 에러 문자열의 포인터를 리턴한다.

 

 strerror

원형 : char *strerror( int errnum );

헤더 : stdio.h

기능 : errnum에 해당하는 에러메시지 문자열을 만든다. 에러메시지 문자열은 모두 \n으로 끝나므로 개행 문자를 첨가해 줄 필요는 없다.( 에러 메시지는 이미 정의되어 있으므로 궁금하면 출력시켜보자)

리턴 : 에러메시지 문자열의 포인터

 

 stricmp

원형 : int stricmp( const char *src1, const char *src2 );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교함. 하지만 대소문자를 구분하지 않는다. 이 함수를 사용하여 두 개의 문자열이 같은 문자열인지 아닌지를 비교할 수 있다. 같을 경우 0, 다를 경우 양수나 음수의 값을 리턴. 이 함수를 매크로로 정의해 둔 함수가 strcmpi 이다.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strlen

원형 : size_t strlen( const char *src );

헤더 : string.h

기능 : 문자열 src 의 길이를 계산한다. 널문자는 길이에 포함되지 않고 널문자 앞에 까지 문자 개수를 리턴한다.

리턴 : 문자열의 길이

 

 strlwr

원형 : char *strlwr(char *src);

헤더 : string.h

기능 : 문자열 src 내의 대문자(A~Z)를 소문자(a~z)로 변경한다. 영문자 외의 다른 문자는 변경하지 않는다.

리턴 : 인수로 주어진 src를 그대로 리턴

 

 strncat

원형 : char *strncat( char *dest, const char *src, size_t maxlen );

헤더 : string.h

기능 : dest 의 널문자에 src의 문자열을 붙이는데 maxlen 길이 만큼만 붙인다.

리턴 : dest의 번지를 리턴

 

 strncmp

원형 : int strncmp( const char *src1, const char *src2, size_t maxlen );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교한다. 비교시 대소문자를 구분한다. 하지만 문자열 전체를 비교하는 것이 아니라 maxlen 길이 만큼만 비교한다.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strncmpi

원형 : int strncmpi( const char *src1, const char *src2, size_t maxlen );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교한다. 비교시 대소문자를 구분하지 않는다. 하지만 문자열 전체를 비교하는 것이 아니라 maxlen 길이 만큼만 비교한다.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strncpy

원형 : char *strncpy( char *dest, char *src, size_t maxlen );

헤더 : string.h

기능 : 문자열을 정해진 길이만큼 복사한다. 길이만큼만 복사하기 때문에 dest의 뒤에 널문자가 붙지 않는다.

리턴 : dest의 번지를 리턴

 

 strnicmp

원형 : int strnicmp( const char *src1, const char *src2, size_t maxlen );

헤더 : string.h

기능 : 두 개의 문자열을 대소 비교한다. 비교시 대소문자를 구분하지 않는다. 하지만 문자열 전체를 비교하는 것이 아니라 maxlen 길이 만큼만 비교한다. 이 함수의 매크로 버젼이 strncmpi 이다.

리턴 : src1 < src2  인 경우 음수 리턴

         src1 = src2  인 경우 0 리턴

         src1 > src2  인 경우 양수 리턴

 

 strset

원형 : char *strset( char *src, int c );

헤더 : string.h

기능 : 문자열을 특정 문자로 채운다. 문자열 중 널문자가 발견될 때가지 문자 c 로 채운다.

리턴 : src의 번지를 리턴

 

 strpbrk

원형 : char *strpbrk( const char *src1, const char *src2 );

헤더 : string.h

기능 : 문자열 src1 내에 문자열 src2에 있는 문자 중의 하나라도 있는지 검사하고 있을 경우 그 포인터를 리턴.

리턴 : 문자열 src1 내에 문자열 src2에 있는 문자 중 하나가 발견된 포인터를 리턴. 없을 경우 널을 리턴

 

 strrchr

원형 : char *strrchr( const cjar *src, int c );

헤더 : string.h

기능 : 문자 배열 src내에 문자 c가 있는지 검사하고 있을 경우 문자 c가 있는 번지를 리턴한다. 하지만 앞에서 부터 검사하는 것이 아니라 뒤에서 부터 검사를 진행한다.

리턴 : 문자열 src에서 발견된 문자 c의 포인터를 리턴. 발견되지 않을 경우 널을 리턴.

 

 strrev

원형 : char *strrev( char *src );

헤더 : string.h

기능 : 문자열의 순서를 바꾼다. 즉 제일 앞에 있는 문자가 제일 뒤로 가고 제일 뒤의 문자가 제일 처음으로 옮겨진다. 널문자는 이동 없음.

리턴 : 역순으로 바꾼 문자열의 src번지

 

 strspn

원형 : size_t strspn( const char *src1, const char *src2 );

헤더 : string.h

기능 : 문자열 src1 중에서 문자열 src2에 있는 문자들이 연속해 있는 길이를 구한다.

예를 들어 src1 = "12345678" 이고 src2 = "143290" 이라면 src1에서 src2의 문자들을 찾아보면 1234가 있다. 이 문자열의 길이 4를 리턴한다.

리턴 : 찾아낸 세그먼트의 길이를 리턴. 만약 0을 리턴하면 세그먼트를 찾지 못한 것이다.

 

 strstr

원형 : char *strstr( const char *src1, const char *src2 );

헤더 : string.h

기능 : 문자열 src1내에서 문자열 src2가 포함되어 있는지 검사하고 있다면 src2와 같은 문자열이 있는 부분을 리턴한다.

리턴 : 부분문자열의 선두 번지. 없다면 널을 리턴

 

 strtod

원형 : double strtod( const char *src1, char **endptr );

헤더 : stdlib.h

기능 : 문자열을 double 형 부동 소수점으로 바꾼다. 문자열은 다음과 같은 구조로 이루어져야 한다.

[공백,탭][부호][숫자][소수점][e]  -> ex) -5.64e+5, -3.6924

순서를 어기거나 불필요한 문자가 중간에 있을 경우는 변환이 중지.

endptr 인수는 변환이 중지될 경우 중지된 문자를 가리키므로 에러 검색에 사용

리턴 : 변환된 double 형 실수를 리턴. overflow 발생시 HUGE_VAL을 리턴

 

 strtok

원형 : char *strtok( char *src1, char *src2 );

헤더 : string.h

기능 : 문자열에서 token을 찾아낸다. ( token 이란 특정한 구분자로 분리되는 문장 구성 요소이다. 구분자가

"/"라 할때 다음 문자열은 1994와 Feb와 20의 세 개의 token 으로 분리된다. "1994/Feb/20" )

문자열 src1이 token을 찾아낼 문자열이며 src2가 token 구분자가 들어있는 문자열이다. token 구분자는 여러개가 복수 개 지정될 수 있으며 token 구분자는 strtok 호출 시 마다 바뀔 수 있다.

리턴 : 찾아낸 token의 포인터를 리턴. token이 더 이상 없을 경우 널 리턴.

( 이해가 안가는 분은 winapi에서 예제를 참고)

 

strtol

원형 : long strtol( const char *src1, char **endptr, int radix );

헤더 : stdlib.h

기능 : 문자열을 long 형 정수로 변환한다.문자열 src1은 다음과 같은 구조로 이루어져야 한다.

[공백, 탭][부호][숫자]

만약 이 순서를 어기거나 불필요한 문자가 문자열 내에 있을 경우 변환은 중지되고 중지된 위치가 endptr에 설정된다. endptr은 에러 검색에 사용하면 용이. 그리고 radix은 문자열을 해석할 진법을 지정할 때 사용되는데 범위는 2~36 까지 이고 그 진법에서 사용되는 문자만 인식

리턴 : 변환된 long 형 정수를 리턴. 변환이 불가능할 경우 0을 리턴

 

strtoul

원형 : unsigned long strtoul(const char *src1, char **endptr, int radix );

헤더 : string.h

기능 : 문자열을 부호없는 long 형 정수로 바꾼다. 사용법은 strtol 과 동일.

리턴 : 변환된 unsigned long 형 정수를 리턴. 변환이 불가능할 경우 0을 리턴

 

strupr

원형 : char *strupr( char *src );

헤더 : string.h

기능 : 문자열 src내의 소문자 (a~z)를 대문자( A~Z)로 변환한다. 영문자 외의 다른 문자는 변경하지 않는다.

리턴 : src의 번지를 리턴
 
출처 : http://www.winapi.co.kr/

 

 

쉐푸드 불고기 분짜

COUPANG

www.coupang.com

 

+ Recent posts