改裝pos機自動(dòng)發(fā)卡號密碼

 新聞資訊2  |   2023-08-10 09:45  |  投稿人:pos機之家

網(wǎng)上有很多關(guān)于改裝pos機自動(dòng)發(fā)卡號密碼,自動(dòng)輸入密碼的知識,也有很多人為大家解答關(guān)于改裝pos機自動(dòng)發(fā)卡號密碼的問(wèn)題,今天pos機之家(www.xjcwpx.cn)為大家整理了關(guān)于這方面的知識,讓我們一起來(lái)看下吧!

本文目錄一覽:

1、改裝pos機自動(dòng)發(fā)卡號密碼

改裝pos機自動(dòng)發(fā)卡號密碼

本人從事在線(xiàn)教育c++十年工作經(jīng)驗現在精心整理了一套從小白到項目實(shí)踐開(kāi)發(fā)各種學(xué)習資料如果你想學(xué)想加入我們請關(guān)注我在私信回復“編程”就可以領(lǐng)取學(xué)習資料??!

個(gè)人分類(lèi): c/c++

Lol(英雄聯(lián)盟)自動(dòng)輸入密碼

搞了一天,終于把程序寫(xiě)好了,以后再也不用每次都手動(dòng)輸入密碼了。盡管不是很完美,但可用性還是有的。我還是太年輕了,剛開(kāi)始以為只要找到了密碼框的句柄就搞定了,可找了許久仍然找不到。也許是我太年輕了,也許是Riot Games或者騰訊太牛逼了。最后只好用了穩定性不是很好的方法:直接模擬鼠標鍵盤(pán)輸入,之所以這么說(shuō),因為我預測在很極端的情況,比如cpu比較繁忙的時(shí)候,在游戲輸入密碼界面獲得焦點(diǎn)之前,模擬鼠標鍵盤(pán)的動(dòng)作就開(kāi)始了,那么必然會(huì )失敗。還有就是焦點(diǎn)定位的問(wèn)題,會(huì )因為顯示屏的分辨率不同而不同,所以難免會(huì )出錯。也許可以觀(guān)察幾種不同分辨率的顯示屏找到一個(gè)兼容的方法,但我懶得找,自己能用就好了。所以讀者如果想用的話(huà),可以看下文,會(huì )有關(guān)于修改代碼的方法,。當然也可以根據代碼各種改,改成方便自己使用的程序。

下面介紹一下程序用法吧。主要有兩個(gè)文件,主程序lol.exe和密碼記錄文件lol.ini。把這兩個(gè)文件放到 英雄聯(lián)盟\\TCLS 的文件夾下,即Client.exe所在目錄。想方便點(diǎn)呢,可以給lol.exe創(chuàng )建一個(gè)快捷方式,再移動(dòng)快捷方式到桌面,或者寫(xiě)個(gè)啟動(dòng)lol.exe的bat放到桌面也可以。打開(kāi)lol.exe有兩個(gè)選項,第一是設定密碼,第二是在英雄聯(lián)盟進(jìn)入了輸入賬號密碼界面后可以自動(dòng)輸入密碼。當然第一次使用該程序是需要設定密碼的,以后就不需要,除非更改密碼。對于管理員身份登錄windows的用戶(hù)(大多數人都是這樣子),lol.exe發(fā)現英雄聯(lián)盟還沒(méi)有啟動(dòng)會(huì )自動(dòng)自動(dòng)英雄聯(lián)盟的。而我一般是用標準用戶(hù)(即非管理員),由于英雄聯(lián)盟是要在管理員身份運行才可以玩的,因此要用其他方法。我目前就是在英雄聯(lián)盟\\TCLS 的文件夾創(chuàng )建一個(gè)bat,里面的內容是

runas /savecred /user:liulian Client.exe

lol.exe

就是先啟動(dòng)Client.exe,再自動(dòng)lol.exe。然后給該bat創(chuàng )建一個(gè)快捷方式,放到桌面。

下面闡述一下原理吧。第一次使用該程序需要設定密碼,設定密碼后密碼經(jīng)過(guò)某種方法加密后存放到lol.ini文件中,本來(lái)想rsa算法加密一下,想到最近比較忙,算了,只好自己隨便想了個(gè)算法加密,只要不會(huì )直接暴露密碼就好了。每次自動(dòng)輸入密碼,都是從lol.ini讀出密碼,解密后,再模擬鼠標鍵盤(pán)動(dòng)作輸入。每一次先將鼠標定位到下圖的右下角的地方,在模擬鼠標點(diǎn)擊事件,這樣就讓密碼框獲得鍵盤(pán)輸入焦點(diǎn)了。最后就是根據密碼,模擬鍵盤(pán)按鍵了。這方法兼容性就不是很好了,因為程序中我是根據像素坐標定位的。

在sendPswd函數中有這么一句

SetCursorPos(1012+origin.left,395+origin.top);

其中1012和395是上面那張圖的寬和高,origin是上面的圖的左上角的坐標點(diǎn),這句話(huà)的意思就是講鼠標定位到圖中右下角的地方,即密碼框中的一點(diǎn)。對于不同分辨率的顯示屏,需要改動(dòng)一下。

下面是代碼:

#include <cstdio>

#include <iostream>

#include <windows.h>

#include <cstring>

#include <process.h>

enum Option{setPassword =1,sendPassword = 2};

Option opt ;

#define maxLen 88

#define keyLen 8

int key[]={0,9,3,8,8,2,9,6};//奇怪用數字就不會(huì )出錯啊

LPCTSTR appName = "lol";

LPCTSTR keyName = "pwd";

//LPCTSTR value = "";

LPCTSTR iniFileName ="lol.ini";//<windows.h>

char fullPathName[maxLen];

HWND self;

char encodedPswd[maxLen];

char decodedPswd[maxLen];

extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow ();

int main()

{

void init();

void showOption();

void setPswd();

void readPswd();

void decodePswd();

void sendPswd();

void close();

init();

int option = -1;

showOption();

while (opt == setPassword)

{

setPswd();

showOption();

}

readPswd();

decodePswd();

sendPswd();

close();

// system("pause");

return 0;

}

void printLine()

{

printf("-----------");

}

void waitForInput()

{

printLine();

printf(">");

}

unsigned int WINAPI getFocus(void*)

{

for(;;)

{

Sleep(1000);

SetForegroundWindow(self);

}

}

void init()

{

GetCurrentdirectory(maxLen,fullPathName);

strcat(fullPathName,"\\\\");

strcat(fullPathName,iniFileName);

self =GetConsoleWindow();

//SetForegroundWindow(self);

SetWindowPos(self,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_SHOWWINDOW);

_beginthreadex(NULL,0,getFocus,NULL,0,NULL);

}

void showOption()

{

printLine();

printf("1 要設定密碼請輸入1,再按回車(chē)");

printLine(); printf("\");

printLine();

printf("2 要自動(dòng)輸入lol密碼,請直接按回車(chē)(確保進(jìn)入了輸入密碼畫(huà)面)");

printLine(); printf("\");

char ch;

waitForInput();

ch = getchar();

switch(ch)

{

case \'1\':

opt = setPassword;

break;

case \'\\':

opt = sendPassword;//printf("enter");

break;

default:

exit(1);

}

}

void encodePswd()

{

// strcpy(encodedPswd,decodedPswd);//未加密,只是簡(jiǎn)單的拷貝

int i;

for( i=0;i<strlen(decodedPswd);i++)

{

encodedPswd[i] = decodedPswd[i] ^key[i%keyLen];

}

encodedPswd[i]=\'\\0\';

}

void writePswd()

{

encodePswd();

bool suc = WritePrivateProfileString(appName,keyName,encodedPswd,fullPathName);

// int error = GetLastError();

// printf("error:%d",error);

if (suc)

printf("設定成功\");

else printf("設置失敗\");

//終于知道為什么會(huì )拒絕訪(fǎng)問(wèn) 了,注意是windows目錄需要權限,還有不是system32目錄哦

//lpFileName ----- String,初始化文件的名字。如果沒(méi)有指定完整路徑名,

// 則windows會(huì )在windows目錄查找文件。如果文件沒(méi)有找到,則函數會(huì )創(chuàng )建它

}

void setPswd()

{

printLine();

printf("請輸入密碼");

printLine();printf("\");

waitForInput();

scanf("%s",decodedPswd);

fflush(stdin);//清空輸入流,因為上面用了getchar()

writePswd();

}

void decodePswd()

{

// strcpy(decodedPswd,encodedPswd);

int i;

for( i=0;i<strlen(encodedPswd);i++)

{

decodedPswd[i] = encodedPswd[i] ^key[i%keyLen];

}

decodedPswd[i]=\'\\0\';

}

void readPswd()

{

GetPrivateProfileString(appName,keyName,NULL,encodedPswd,maxLen,fullPathName);

decodePswd();

// printf("%s",decodedPswd);

}

void statrLol()

{

printLine();

printf("lol還沒(méi)啟動(dòng),自動(dòng)啟動(dòng)lol");

printLine();

printf("\");

char dir[maxLen];

GetCurrentDirectory(maxLen,dir);

strcat(dir,"\\\\");

strcat(dir,"Client.exe");

ShellExecute(NULL,"open",dir,NULL,NULL,SW_SHOWNORMAL);

printLine();

//使用系統自帶的 runas /savecred 選項,第一次輸入密碼后,會(huì )保存憑據。

//特點(diǎn):無(wú)法限制能夠運行的命令,安全性差。

printf("選擇服務(wù)器后,請按回車(chē)繼續");

printLine();

printf("\");

getchar();

}

void inputUppercase(char upper)

{

keybd_event(VK_SHIFT, 0, 0 ,0);

keybd_event(upper, 0, 0 ,0);

keybd_event(upper, 0, KEYEVENTF_KEYUP ,0);

keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP ,0);

}

void sendPswd()

{

HWND lolWin = FindWindow(NULL,"英雄聯(lián)盟登錄程序");

while(lolWin == NULL)

{

statrLol();

lolWin = FindWindow(NULL,"英雄聯(lián)盟登錄程序");

}

SetForegroundWindow(lolWin);

RECT origin;

GetWindowRect(lolWin,&origin);

Sleep(500);

SetCursorPos(1012+origin.left,395+origin.top);

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

//用記事本做測試

//HWND npWnd=FindWindow( "notepad",NULL);

//HWND childWnd=FindWindowEx(npWnd, NULL, "Edit", NULL);

//SetForegroundWindow(npWnd);

int i;

char ch;

for(i=0;i<strlen(decodedPswd);i++)

{

if(decodedPswd[i]>=\'a\'&&decodedPswd[i]<=\'z\')

ch = decodedPswd[i] - \'a\' +\'A\';//小寫(xiě)

else if(decodedPswd[i]>=\'A\'&&decodedPswd[i]<=\'Z\')

{

inputUppercase(decodedPswd[i]); //uppercase

continue;

}

else ch = decodedPswd[i]; //digit number

keybd_event(ch, 0, 0 ,0);

keybd_event(ch, 0, KEYEVENTF_KEYUP ,0);

}

// HWND mfpa = FindWindowEx(lolWin,NULL,"MacromediaFlashPlayerActiveX",NULL);

// if(mfpa == NULL)

// printf("1 can\'t");

/*

HWND aaWin = FindWindowEx(mfpa,NULL,"AtlAxWin",NULL);

if(aaWin == NULL)

printf("2 can\'t");

HWND seWin = FindWindowEx(aaWin,NULL,"Shell Embedding",NULL);

if(seWin == NULL)

printf("3 can\'t");

HWND sdovWin = FindWindowEx(seWin,NULL,"Shell DocObject View",NULL);

if(sdovWin == NULL)

printf("4 can\'t");

HWND iesWin = FindWindowEx(sdovWin,NULL,"Internet Explorer_Server",NULL);

if(iesWin == NULL)

printf("5 can\'t");

*/

// HWND pwdWin = FindWindowEx(lolWin,NULL,"TWINCONTROL",NULL);

// SetForegroundWindow(lolWin);

// SendMessage(mfpa,EM_REPLACESEL, 0,(LPARAM)decodedPswd);

// HWND pwdWin = FindWindowEx(lolWin,NULL,"TWINCONTROL",NULL);

// HWND pwdWin = FindWindowEx(lolWin,NULL,"AtlAxWin",NULL);

// if(pwdWin == NULL)

// printf("can\'t");

}

void close()

{}

本人從事在線(xiàn)教育c++十年工作經(jīng)驗現在精心整理了一套從小白到項目實(shí)踐開(kāi)發(fā)各種學(xué)習資料如果你想學(xué)想加入我們請關(guān)注我在私信回復“編程”就可以領(lǐng)取學(xué)習資料?。?!

以上就是關(guān)于改裝pos機自動(dòng)發(fā)卡號密碼,自動(dòng)輸入密碼的知識,后面我們會(huì )繼續為大家整理關(guān)于改裝pos機自動(dòng)發(fā)卡號密碼的知識,希望能夠幫助到大家!

轉發(fā)請帶上網(wǎng)址:http://www.xjcwpx.cn/newsone/96647.html

你可能會(huì )喜歡:

版權聲明:本文內容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻,該文觀(guān)點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權,不承擔相關(guān)法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規的內容, 請發(fā)送郵件至 babsan@163.com 舉報,一經(jīng)查實(shí),本站將立刻刪除。