📄 creadargument.cpp
字号:
ThrunetPort=0;
char buf[100];
memset(buf,0,100);
FILE *fp = Fopen(CommandSlash[0],"rt");
if(fp==NULL)
{
MessageBox(NULL,"Can't Open File.","Error",NULL);
PostQuitMessage(0);
return 0;
}
fscanf(fp,"%s",buf);
// MessageBox(NULL,buf,"ip",NULL);
strcpy(ThrunetIP,buf);
if(strlen(buf)<1)
{
PostQuitMessage(0);
return 0;
}
fscanf(fp,"%s",buf);
// MessageBox(NULL,buf,"port",NULL);
ThrunetPort=atoi(buf);
if(ThrunetPort<0)
{
PostQuitMessage(0);
return 0;
}
fscanf(fp,"%s",buf);
if(strcmp(buf,"thrunet"))
{
// PostQuitMessage(0);
// return 0; //滴风齿捞 酒囱 赤籍捞搁 肋扼 滚赴促
}
// MessageBox(NULL,buf,"thrunet",NULL);
HRESULT hr = NOERROR;
bool fComInitialized = false;
if (FAILED(hr = ::CoInitialize(NULL)))
_com_issue_error(hr);
fComInitialized = true;
thrunet::_clsURLCHKPtr a;
hr=a.CreateInstance("thrunet.clsURLCHK");
if(FAILED(hr))
{
PostQuitMessage(0);
// printf("createinstance error..\n");
return 0;
}
_bstr_t result;
_bstr_t in_s;
in_s = "abcd"; // 狼固绝绰 蔼捞骨肺 弊成 逞败 霖促.
result=a->GetID(in_s); // GedID甫 龋免窍搁 userid啊 逞绢柯促
if(strcmp((char*)result,"*")) //*搁 角菩, 酒聪搁 蜡历酒捞叼
{
memset(UserID,0,sizeof(UserID));
strcpy(UserID,(char*)result);
UserIDlength = strlen((char*)result);
WhatLineIUse=1;
// a.Release();
return 1;
}
else
{
PostQuitMessage(0);
// a.Release();
return 0;
}
return 0;
}
bool WaitingTheAnswerForTHTUNET( t_connection *c, short int *answer );
int CClientBill::Check_Channel_i() //唱 盲澄酒捞?
{
// _asm int 3;
if(CommandNum!=1) return 0;
if(!strcmp(Command[0],"/lgi"))
{
if(Channel_i_StartUP()==1)
{
WhatLineIUse = 2;
return 1;
}
else
{
PostQuitMessage(0);
WhatLineIUse = -2;
return 0;
}
}
return 0;
}
int CClientBill::Channel_i_StartUP() //盲澄酒捞俊辑 逞绢柯 何盒. 扼捞宏矾府 肺爹茄促.
{
// _asm int 3;
hDll= LoadLibrary("chigamec.dll");
if(hDll == NULL){
// Library Loading 角菩. 俊矾 贸府.
return 0;
}
typedef int (CALLBACK* LPFNDLLFUNC)(SessionParameter* lpSP);
LPFNDLLFUNC lpfnDllFunc;
lpfnDllFunc = (LPFNDLLFUNC)GetProcAddress(hDll, "WaitForSessionParameter");
if (!lpfnDllFunc)
{
// DWORD dwErr = GetLastError();
// 俊矾 贸府
FreeLibrary(hDll);
return 0;
}
else
{
lpfnDllFunc(&m_SessParam); //Active X肺 何磐 SessionParameter甫 傈崔 罐阑 锭 鳖瘤 措扁窍霸 凳.
//捞侩磊啊 秒家甫 窍看阑版快 Return篮 窍瘤父 m_SessParam篮 Null蔼阑 艾霸 凳
}
if(lstrlen(m_SessParam.lpszUserName)<1 || lstrlen(m_SessParam.lpszIPAddress)<1 || lstrlen(m_SessParam.lpszPassword)<1)
return 0; //捞侩磊啊 弥家茄 版快
else
{
memset(UserID,0,sizeof(UserID));
strcpy(UserID,m_SessParam.lpszUserName);
return 1; //弥家茄 绢恫蔼捞 甸绢啊 乐促.
}
}
int CClientBill::Channel_i_SendEncryptedData() //盲澄酒捞俊辑 力傍茄 dll俊辑 舅酒辑 酒捞叼客 鞠龋甫 傈价茄促.
{
// WSADATA wsaData;
// SOCKET sockfd;
// struct sockaddr_in serv_addr;
//
// winsock initialization
//
// if (WSAStartup(0x202, &wsaData) == SOCKET_ERROR) {
// goto cleanup;
// }
// memset(&serv_addr, 0, sizeof(serv_addr));
// serv_addr.sin_family = AF_INET;
// serv_addr.sin_addr.s_addr = inet_addr(m_SessParam.lpszIPAddress);
// serv_addr.sin_port = htons(m_SessParam.nPortNum);
// if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
// goto cleanup;
// }
// if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
// goto cleanup;
// }else{ //connect俊 己傍沁阑锭 官肺 SendEncryptedData窃荐甫 阂矾具 窃.
typedef int (CALLBACK* LPFNDLLFUNC)(LPCTSTR, LPCTSTR, SOCKET);
LPFNDLLFUNC lpfnDllFunc;
lpfnDllFunc = (LPFNDLLFUNC)GetProcAddress(hDll, "SendEncryptedData");
if (!lpfnDllFunc)
{
// 俊矾 贸府
FreeLibrary(hDll);
return 0;
}
else
{
DWORD dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, connections.socket);
// DWORD dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, connections[curr_connect].socket);
// DWORD dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, sockfd);
//Data(ID/Pwd)甫 Encryption窍咯 MugProxy俊 傈崔.
if(dwRet == 0){
return 1;
//己傍
}else{
int t=0;
while(t)
{
// dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, sockfd);
dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, connections.socket);
// dwRet = lpfnDllFunc(m_SessParam.lpszUserName, m_SessParam.lpszPassword, connections[curr_connect].socket);
if(dwRet==0)
return 1;
else
t++;
if(t>10) break;
}
// 角菩!!
// Proxy Server肺 何磐 Public Key, Random Seed甫 罐酒 Data甫 Encryption秦辑 焊郴绰 单 角菩窃.
// 捞锭俊绰 橇肺弊伐阑 辆丰窍带瘤, Reconnect甫 矫档 秦具 窃.
}
}
// }
// cleanup:
if (connections.socket)
closesocket(connections.socket);
// if (connections[curr_connect].socket)
// closesocket(connections[curr_connect].socket);
WSACleanup();
PostQuitMessage(0);
return 0;
}
int CClientBill::Check_Unitel() //唱 蜡聪炮?
{
char uni[10]="Unitel&IP",temp[7]=" ";
for(int i=0;i<CommandNum;i++)
{
if(!memcmp(uni,Command[i],9)) //unitel捞扼绰 窜绢啊 乐栏搁
{
WhatLineIUse=3; //蜡聪炮捞扼绊 钎矫
g_unitel = new CUnicheck;
return 1;
}
}
return 0;
}
int CClientBill::Unitel_Port()
{
for(int i=0;i<CommandNum;i++)
{
char *p=Command[i];
for(int len=0;len<lstrlen(Command[i])-9;len++)
{
if(!memcmp(Command[i]+len,"&PO:",4))
{
int temp=0;
while(1)
{
temp++;
char haha=(char) *(Command[i]+len+temp);
if( haha=='&')
{
char haha[20];
memset(haha,0,20);
memset(haha,0,sizeof(haha));
memcpy(haha,Command[i]+len+4,temp-4);
return(atoi(haha));
}
}
}
}
}
return 0;
}
//char t[100]="p1.txt Unitel&IP:88.2.100.100&PO:8888&ID:huhaha&NA:辨端&MO:20&P1:&P2:";
int CClientBill::Unitel_IP()
{
memset(Return,0,sizeof(Return));
for(int i=0;i<CommandNum;i++)
{
char *p=Command[i];
for(int len=0;len<lstrlen(Command[i])-9;len++)
{
if(!memcmp(Command[i]+len,"&IP:",4))
{
int temp=0;
while(1)
{
temp++;
char haha=(char) *(Command[i]+len+temp);
if( haha=='&')
{
// _asm int 3;
memset(Return,0,sizeof(Return));
memcpy(Return,Command[i]+len+4,temp-4);
// strcat(Return,".unitel.co.kr");
// MessageBox(NULL,Return,"IP address from Argument",NULL);
g_unitel->ReturnUniteIP(Return);
memset(Return,0,sizeof(Return));
strcpy(Return,g_unitel->UnitelIP);
// MessageBox(NULL,Return,"IP address from Unitel IP return Module",NULL);
return 1;
}
}
}
}
}
return 0;
}
//char t[100]="p1.txt Unitel&IP:88.2.100.100&PO:8888&ID:huhaha&NA:辨端&MO:20&P1:&P2:";
char* CClientBill::Unitel_ID()
{
memset(UserID,0,sizeof(UserID));
for(int i=0;i<CommandNum;i++)
{
char *p=Command[i];
for(int len=0;len<lstrlen(Command[i])-9;len++)
{
if(!memcmp(Command[i]+len,"&ID:",4))
{
int temp=0;
while(1)
{
temp++;
char haha=(char) *(Command[i]+len+temp);
if( haha=='&')
{
memset(UserID,0,sizeof(UserID));
memcpy(UserID,Command[i]+len+4,temp-4);
return UserID;
}
}
}
}
}
return 0;
}
int CClientBill::Unitel_SendMessage()
{
char dis[7]="UNITEL";
// SendAliveCheckRoutine();
// if(Send(dis,1)==0)
// return 0;
// else
return 1;
}
/*
醚 N俺
0 寇何葛碘疙
1 牢郸胶疙
2 荤侩磊ID
3 NETSGO Gateway Server狼 林家
4 Gateway 单阁狼 Base PORT锅龋
5 Gateway单阁肮荐 (Multi-Server备炼)
6 辑厚胶Server狼 林家
7 辑厚胶 单阁狼 Port锅龋
8 立加 蜡屈
//9~N-4 [ 扁鸥鞘夸茄 Argument甸 ] //救敬促
9 N-3 netsgo
10 N-2 牢刘侩Atoms锅龋(Decimal)
11 N-1 宏扼快历滚傈
醚 12俺
*/
int CClientBill::Check_Netsgo() //唱 齿明绊?
{
if(CommandNum!=11)
{
return 0;
}
if(atoi(Command[10])<1000)
{
return 0;
}
if( strcmp(Command[8],"netsgo") || atoi(Command[9])<0 )
{
return 0;
}
if(Netsgo_AtomTable()==0)
{
return 0;
}
WhatLineIUse=4;
return 1;
}
int CClientBill::Netsgo_AtomTable()
{
char cBuf[256];
ATOM hAtom = (ATOM)atoi(Command[9]);
if (GlobalGetAtomName( hAtom, cBuf, 256 ) == 0 )
{ // Atom蔼捞 粮犁窍绰瘤 Check
// 俊矾贸府 begin
char dis[100];
sprintf(dis, "some error - %d\n", GetLastError() );
// MessageBox(NULL,dis,"",NULL);
// 俊矾贸府 end
return 0;
}
if (lstrcmp(Command[1], cBuf ) )
{ // 荤侩磊 ID客 Atom俊 狼茄 String蔼阑 厚背窃
// 俊矾贸府 begin
char dis[100];
sprintf(dis, "some error - %d\n", GetLastError() );
// MessageBox(NULL,dis,"",NULL);
// 俊矾贸府 end
return 0;
}
memset(UserID,0,sizeof(UserID));
strcpy(UserID,Command[1]);
return 1;
}
int CClientBill::Netsgo_Port() //齿明绊狼 port甫 馆券
{
int SERV_PORT_NO = atoi(Command[3]);// = 40007; /* argv[4]狼 Base Port蔼 */
int SERV_PORT_CNT= atoi(Command[4]);// = 5; /* argv[5]狼 Port肮荐 */
int MAX_PORT_NO = SERV_PORT_NO + SERV_PORT_CNT - 1 ; /* Connection Retry甫 困窃 */
int serv_sock = time(0); /* Random 贸府甫 困窃 (Language Dependent) */
serv_sock %= SERV_PORT_CNT; /* 唱赣瘤 蔼阑 荤侩 (Language Dependent) */
int daemon_port = SERV_PORT_NO + serv_sock; /* Base Port蔼 + 唱赣瘤 */
return daemon_port;
}
int CClientBill::Netsgo_IP() //齿明绊狼 ip甫 馆券
{
// _asm int 3;
LPHOSTENT lpHostEnt = gethostbyname((LPCTSTR)Command[2]);
if (lpHostEnt)
{
IN_ADDR inAddr;
memcpy((void*)&inAddr.S_un.S_addr, lpHostEnt->h_addr,lpHostEnt->h_length);
memset(Return,0,sizeof(Return));
wsprintf(Return,"%d.%d.%d.%d",
inAddr.S_un.S_un_b.s_b1,
inAddr.S_un.S_un_b.s_b2,
inAddr.S_un.S_un_b.s_b3,
inAddr.S_un.S_un_b.s_b4);
return 1;
}
return 0;
// strcpy(Return,"211.39.34.51");
// sprintf(Return,"%s",Command[2]); /* argv[3]狼 Gateway Server狼 IP Address */
return 1;
}
int CClientBill::Netsgo_SendMessage()
{
// _asm int 3;
char argument_string[255];
memset(argument_string,0,255);
sprintf(argument_string,"DragonRaja.exe %s",CommandLineBackup);
int len = strlen(argument_string);
if(Send(argument_string,len)==0)
return 0;
if(Receive(2)==0) //Netsgo绰 2官捞飘肺 焊辰促
return 0;
if(!strcmp(Buffer,"~1")) //multi login捞搁
{
MessageBox(NULL,"穿焙啊 酒捞叼甫 静绊 乐嚼聪促.","Netsgo",NULL);
PostQuitMessage(0);
return 0;
}
else
{
return 1; //泅力 荤侩窍瘤 臼酒档 面盒洒 鞘夸茄 沥焊啊 朝扼埃促.
}
return 0;
}
int CClientBill::Send(char *msg,int len)
{
int size = len;
char *dis = new char [size];
int pnt;
// _asm int 3;
memset(dis,0, size );
memcpy(dis,msg,size);
DWORD cur_time;
DWORD check_time = timeGetTime();
int addlen;
pnt = 0;
while( 1 )
{
addlen = send( connections.socket, dis + pnt , size, 0 );
if( addlen < 0 )
{
PostQuitMessage(0);
return 0;
// Error..
}
else
{
size -= addlen;
pnt += addlen;
if( size == 0 )
{
// 己傍.
return 1;
break;
}
else if( size < 0 )
{
PostQuitMessage(0);
return 0;
// Error.,
}
}
cur_time = timeGetTime();
if( cur_time - check_time > 5000 )
{
PostQuitMessage(0);
return 0;
// Error .. 5檬悼救 Packet阑 焊郴瘤 给沁促.
}
else
{
// 酒流篮 矫埃捞 巢疽栏聪 弧府 焊郴..
}
}
return 0;
}
int CClientBill::SendToPaySocket(char *msg,int len)
{
int size = len;
char *dis = new char [size];
int pnt;
// _asm int 3;
memset(dis,0, size );
memcpy(dis,msg,size);
DWORD cur_time;
DWORD check_time = timeGetTime();
int addlen;
pnt = 0;
while( 1 )
{
addlen = send( sockfd, dis + pnt , size, 0 );
if( addlen < 0 )
{
PostQuitMessage(0);
return 0;
}
else
{
size -= addlen;
pnt += addlen;
if( size == 0 )
{
return 1;
break;
}
else if( size < 0 )
{
PostQuitMessage(0);
return 0;
}
}
cur_time = timeGetTime();
if( cur_time - check_time > 5000 )
{
PostQuitMessage(0);
return 0;
// Error .. 5檬悼救 Packet阑 焊郴瘤 给沁促.
}
else
{
// 酒流篮 矫埃捞 巢疽栏聪 弧府 焊郴..
}
}
return 0;
}
DWORD global_time_new;
char thrunetanswerbuf[4];
int thrunetanswerbuf_pnt;
int thrunetanswerbuf_len;
int CClientBill::Receive(int len)
{
memset(Buffer,0,sizeof(Buffer));
bool ret;
if ( !connections.socket )
// if ( !connections[curr_connect].socket )
{
return false;
}
Buffer_len = len;
Buffer_pnt = 0;
DWORD s_time = timeGetTime();
DWORD c_time;
while( 1 )
{
Sleep(10);
ret = Receive_sub( &connections );
// ret = Receive_sub( &connections[curr_connect] );
if( ret == true )
{
return ret;
}
c_time = global_time_new;
if( c_time - s_time > 5000 )
{
return false;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -