
*N Cafe EX(엔카페Ex) 프로그램
N CafeEX 는 특정카페의 고객유형을 선택하여 원클릭 으로
해당 카페회원의 이메일을 수집하는 빅데이터기반 카페이메일수집 솔루션 입니다.
N포털 특정 카페회원의 이메일 주소가 필요하신 분들이나, 페이스북 맞춤 타겟 용도의
모수 이메일이 필요하신 분들 에게 매우 유용하게 활용 될 수 있으며 원하는
카페를 타겟팅 하여 실시간 고객 정보를 수집 하여 보다 정확하고 신속하게
원하는 카페정보수집을 진행 하실수 있습니다. 또한 이러한 카페고객정보를
엑셀파일과 텍스트 파일등 원하는 파일형식으로도 저장 가능 합니다.
엔카페Ex 프로그램으로 보다 효율적으로 카페마케팅 에도 활용 하실수 있습니다,
*마케팅몬스터 구매 문의
☏ 카카오톡 aramis0104
☏ HP 010-7424-0013
☏ 오픈채팅 https://open.kakao.com/o/s4CWZYH
☏ 프로그램 상세보기 https://marketingmonster.kr/detail.siso?CODE=5
☏ 프로그램 구동영상 https://youtu.be/1OSK7McVQC4
tistory. com/66메일 사별하다건 석일에 이분께서 포스팅 했었던 글을 감안해서 만들었습니다. 들어가며,https://jogamja. 0.
tistory. com/223 레거시 코드가 두 곳 있는데(실은 송두리째 잘 움직임되긴 합니다. https://torbjorn. 로그인은 이 분의 파이썬 예제를 포팅해서 작성했습니다.
비밀번호 수라같은거 없습니다. C#으로 만든 DLL이니 의아되시면 뜯어보셔도 됩니다. 움짤 예제는 메일 사별하다거를 테스트한거인데, OK 사인 주고도 메일이 안가네요아무래도 네이버 레벨에서 막는지 어떤건지 모르겠습니다. )오토핫키로 불능하다 국부을 어떻게 똥꼬쇼를 해서 헤쳐나갔는지가 관전 득점입니다.
기록철 및 코드첨부기록철NaverRSALogin. 20210707. 1. 석일에 만들었던 DLL에다 추가해서 만든거입니다.
com/223#SingleInstance, force#Include Json. ahk#Include CreateForm. tistory. zip기록철 다운로드; 파이썬 감안예제; https://torbjorn.
_send_email() ; actually not workreturnclass NaverRSALogin{__New(id, pw){; sessionkey , Keyname, evalue, nvalue = key_str. split(‘,’) this. ahktt := new NaverRSALogin(“id”, “pw”)tt. ahk#Include CLR.
session_key := “”, this. key_name := “”this. pw := pwthis. id := id, this.
msg := “”, this. bvsd := “”this. nvalue := “”this. evalue := “”, this.
UA := “Mozilla/5. 0 (Windows NT 10. cookie := “”; this. encrypted_pw:= “”, this.
“(KHTML, like Gecko) Chrome/80. 0. 36 “; . 0; Win64; x64) AppleWebKit/537.
7. 100. 163 Whale/2. 3987.
UA := “Mozilla/5. 0 (Nintendo WiiU) AppleWebKit/536. 36″this. 20 Safari/537.
0. 4. “(KHTML, like Gecko) NX/3. 30 “.
3. 1. 12 NintendoBrowser/4. 2.
login_keys := “https://nid. naver. US”this. 11264.
HTTP := ComObjCreate(“WinHTTP. WinHTTPRequest. nhn”this. com/login/ext/keys.
_get_keys(); this. _get_encpw()this. 1″)this. 5.
_get_cookie(); this. _send_email()}_get_keys(){this. _get_bvsd()this. _get_encpw_v2()this.
login_keys)this. HTTP. Open(“GET”, this. HTTP.
WaitForResponse()result := this. HTTP. HTTP. Send()this.
key_name := res[2]this. evalue := res[3], this. session_key := res[1], this. ResponseTextres := StrSplit(result, “,”)this.
session_key)) . this. msg := chr(StrLen(this. nvalue := res[4]this.
id)) . this. chr(StrLen(this. Session_key.
pw)) . this. chr(StrLen(this. id.
CreateInstance(“NaduresDLL. Functions”)this. dll”)instance := asm. pw}_get_encpw_v2(){asm := CLR_LoadLibrary(“NaduresDLL.
session_key, this. id, this. ConvertPassword(this. msg := instance.
evalue, this. nvalue,this. EncryptRSA(this. pw)result := instance.
but it works too!{static wbGui, +hWndhOld Gui, New, +hWndhWnd Gui, Add, ActiveX, vWB, Shell. Explorer Gui, %hOld%: DefaultWB. encrypted_pw := result}_get_encpw() ; legacy. msg); input :> evalue >nvalue > msgthis.
ReadyState < 4) sleep, 50; read js 기록철FileRead, JS_SCRIPT, rsa. jsScript := WB. "content='IE=edge'>“) while (WB. Navigate(“about:
text := JS_SCRIPT WB. document. createElement(“script”) Script. document.
document. parentWindow. appendChild(Script)sleep,50result := WB. body.
nvalue, this. msg)Gui, % hWnd “: Destroy”hWnd := Falsethis. evalue, this. do_encrypt_msg(this.
4″, “i”:{“a”:this. UA}}; Msgbox,% datadata := Json. 3. encrypted_pw := resultwb := “”}_get_bvsd(){uuid := CreateUUID()send_data := Array()send_data := {“a”:uuid, “h”:”1f”, “b”:”1.
parentWindow. LZString. document. dump(send_data); encData := WB.
CreateInstance(“NaduresDLL. Functions”)enc_compare := instance. dll”)instance := asm. compressToEncodedURIComponent(data) ; it works tooasm := CLR_LoadLibrary(“NaduresDLL.
bvsd := result}_get_cookie(){data := Array()data := {“enctp”: 1,”svctype”: 0,”encnm”: this. key_name,”locale” : “ko_KR”,”url”: “www. Dump(result_array)this. LZStringHelper(data)result_array := Array()result_array := {“uuid”:uuid, “encData”:enc_compare}result := Json.
encrypted_pw,”bvsd”: this. bvsd }this. com”,”smart_level”: 1,”encpw”: this. naver.
5. 1″)CreateFormData(PostData, hdr_Content생김새, data)this. WinHTTPRequest. HTTP := ComObjCreate(“WinHTTP.
naver. com/nidlogin. Open(“POST”, “https://nid. HTTP.
SetRequestHeader(“User-agent”, this. UA)this. HTTP. login”, false)this.
HTTP. Send(PostData)this. SetRequestHeader(“Content-생김새”, hdr_Content생김새)this. HTTP.
_cookie_cutter(this. HTTP. WaitForResponse()cookie := this. HTTP.
cookie, “NID_SES”)){return true}if(this. cookie = “”){throw Exception(“login failed: 로그인 낭패”, -1)}else{throw Exception(“login failed: 로그인 낭패”, -1)}}_send_email(선수권:=”test”, content:=”
bbbb
“){; email := new SendEmail(this. cookie := cookie}else{throw Exception(“login failed: 로그인 낭패”, -1)}}_cookie_물표(){if(InStr(this. GetAllResponseHeaders())if(InStr(cookie, “NID_SES”)){this.
똥꼬쇼와 그 까닭똥꼬쇼는 세 곳에 들어가 있습니다. _get_encpw() _get_encpw_v2() _get_bvsd() get_encpw는 네이버에서 주는 exponent와 modulus를 통해 아이디와 비밀번호가 들어간 msg를 RSA사인화 하는 함수입니다. 매스껍다 네이버 2. id, test_email_receiver, “tes이거 코드 길다고 짤리네요.
io/RSA-algorithm/이와 같은 예제를 감안해서 순진 오토핫키로 작성하고 싶었으나, https://www. autohotkey. github. 원체대로라면 https://wkdtjsgur100.
(사인화 할 때 512 1024터전 수 까지도 쓰는데. htm정수 수 면적에 경가 있다는 겁니다. com/docs/Variables.
그래서 야심에 밖 라이브러리는 넣지 말자 생각해서 RSA를 연산하는 JS 스크립트를 어디서 구해가지고 이걸 웹소켓 라이브러리를 통해 연산해 받는 법칙으로 진행했으나, 코드가 더러워지고, 정말 중요한게 난생처음 이용만들다 거에 이 함수가 그대로 움직임하는지 알 턱이 없었습니다. 그래서 스택오버코트 플로우에 위치하다 RSA 예제를 C#으로 넣어 DLL을 만들고 CLR 라이브러리를 통해 이 DLL을 로드하는 방면으로 진행했습니다. 당연히 오토핫키의 큰 수가 안된다는 점까닭에 대수용 라이브러리가 있으나, 이거 해보니까 보조가 과히 느려서 안되겠더라구요. ) 그래서 순진 오토핫키만으로는 할 수 없고, 윈도우 Crypt dll등을 통해 바이트 연산을 해서 진행할 도성 있긴 있겠지만, 이건 잘 모르겠더라구요.
쿠키를 구하는 까닭쿠키를 구해야 내가 로그인했던 세션이다 하고 빙증을 할 수 있습니다. 쿠키는 이런식으로 요망헤더에 넣을 수 있습니다. 3. 그리고 get bvsd에 들어가는 함수중에서 문자열을 농축해주는 compressToEncodedURIComponent 함수까닭에 몸소 만들까 하다가 장단가 과히 길어서 가만히 이거도 난생처음엔 웹소켓 그다음엔 가만히 DLL로 갈아탔습니다.
이메일작용을 넣은 까닭정말 로그인 잘 됐다는 사인도 잘 봤는데 이게 맞게 한거다 하고 보여줄 수 있는게 없더라구요 그래서 한 번 이메일 발신하는걸 넣어봤습니다. 근데 OK 사인 떨어져도 막상 탁송은 안되네요. SetRequestHeader(“Cookie”, cookie) 4. 텍스트 법칙도 괜찮아요HTTP.
id, test_email_receiver, “test”, “
bbbb
“)attachURL := “http://m. mail. _send_email(선수권:=”test”, content:=”
bbbb
“){; email := new SendEmail(this. 무엇 값을 덜 준거 같기도 하구요.
HTTP. Open(“POST”, attachURL, false)this. com/m/write”this. naver.
UA)this. HTTP. SetRequestHeader(“User-agent”, this. HTTP.
HTTP. send()this. cookie)this. SetRequestHeader(“Cookie”, this.
HTTP. responsetext, “O)attachId = “”(. WaitForResponse()regexmatch(this. HTTP.
responsetext, “O)mailId = “”(. *)””;”, mail)mailID := mail[1]test_email_receiver := mailID . HTTP. *)””;`nif”, attachID)attach := attachID[1]regexmatch(this.
data)this. HTTP. com”email := new SendEmail(mailID, test_email_receiver, test_email_receiver, 선수권, “content”, attach)CreateFormData(post_data, hdr_Content생김새, email. “@naver.
com/json/write/save/”, false)this. HTTP. naver. Open(“POST”, “https://mail.
HTTP. SetRequestHeader(“Content-생김새”, hdr_Content생김새)this. cookie)this. SetRequestHeader(“Cookie”, this.
naver. com/”)this. SetRequestHeader(“Referer”, “https://mail. HTTP.
HTTP. WaitForResponse()Msgbox,% this. Send(post_data)this. HTTP.
this. HTTP. ResponseTextMsgbox,% “[header info]`n” . HTTP.
this. HTTP. “`n” . Status .
ResponseText, “OK”))Msgbox, OK DoneelseMsgbox, No}이메일 국부 코드만 보여드리면 이겁니다. 정말 오케이 하는데 막상 실질적으로 메일이 안날아가네요. HTTP. GetAllResponseHeaders() ; 荑좏궎 ?뼸?쓬if(InStr(this.
아무튼 수고하십시오. 이걸로 블로그나 카페에 포스팅하거나 댓글적거나 하는 노하우은 악용의 보유가 있기에 알려드릴 포부도 해볼 포부도 없고 포스팅할 포부도 없습니다.