HttpSendRequest发送post请求返回错误12150?

dfsgg 2014-08-25 08:54:12
char    szAccept[]   = "Accept: */*";   //接受文件的类型
CString strHeaders = _T("application/x-www-form-urlencoded;\r\n");//
char szReferer[] = "Referer:http://pay.gz163.cn/web/index.php"; //这个最好写下,不然有的网站说盗链什么的检测不通过
//CString szFormData = "operate=checkweakpwd&username=18184500731"+ "&password=37061146"+"&t0.6191092612754476"; //我们上面分析出来的”参数“
CString szFormData = "action=checkbind&phone=18085686724&areaCode=0851&numberType=0&token=314aaf65c5ee8372aa1f7644548207a5";
MessageBox(szFormData);
HINTERNET hSession;
HINTERNET hConnect;
HINTERNET hRequest;
BOOL bReturn = FALSE;

// 之前使用Socket,现在使用Wininet相关API建立链接 ,初始化 WinInet.dll 并联接服务器,返回相应的句柄
hSession = InternetOpen("testlogin",
INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0); //初始化 WinInet.dll,开始 HTTP会话,建立 HTTP 连接
hConnect = InternetConnect(hSession,"pay.gz163.cn",
INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1); //建立 Internet 的连接,开始 HTTP会话,
hRequest = HttpOpenRequest(hConnect,"POST","/web/index.php?t=3", "HTTP/1.1",szReferer,(LPCSTR *)&szAccept,INTERNET_FLAG_RELOAD,1); //打开一个 HTTP 请求的句柄
int i = GetLastError();
// 提交数据表单
LPVOID pBuf = (LPVOID)szFormData.GetBuffer(szFormData.GetLength());
bReturn = HttpSendRequest(hRequest,
strHeaders,-1L,pBuf,szFormData.GetLength()); //向 HTTP 服务器发送指定的请求

//HttpAddRequestHeaders 添加一个或多个 HTTP 请求报头到 HTTP请求句柄
i = GetLastError();

前面一些都好,就是到这里出现了错误,希望大神指导下,
...全文
813 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dfsgg 2014-09-01
  • 打赏
  • 举报
回复
引用 6 楼 hurryboylqs 的回复:
按以下方式声明“ TCHAR szHeader[] = { // 如果提交的是表单,那么这个MIME 一定要带! _T("Content-Type: application/x-www-form-urlencoded\r\n") }; [quote=引用 7 楼 hurryboylqs 的回复:] LPTSTR AcceptTypes[2] = {TEXT("*/*"), NULL};
6楼回答的大哥:
//char    szAccept[]   = "Accept: */*";   //接受文件的类型
  //  CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded\r\n;");//
//在这里按你的方式声明	
LPTSTR AcceptTypes[2] = {TEXT("*/*"), NULL};
TCHAR szHeader[] =
	{
		// 如果提交的是表单,那么这个MIME 一定要带!
		_T("Content-Type: application/x-www-form-urlencoded\r\n")
	};    
char    szReferer[]  = "Referer:http://pay.gz163.cn/web/index.php"; 
	CString szFormData = "action=checkbind&phone=18085686724&areaCode=0851&numberType=0&token=314aaf65c5ee8372aa1f7644548207a5";
	MessageBox(szFormData);
    HINTERNET   hSession;      
    HINTERNET   hConnect;      
    HINTERNET   hRequest;      
    BOOL        bReturn  = FALSE;   
    hSession = InternetOpen("testlogin",
                            INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0); 
    hConnect = InternetConnect(hSession,"pay.gz163.cn",
                               INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1); 
    hRequest = HttpOpenRequest(hConnect,"POST","/web/index.php?t=3", "HTTP/1.1",szReferer,(LPCSTR *)&szAccept,INTERNET_FLAG_RELOAD,1);
	int i =  GetLastError();
    LPVOID pBuf = (LPVOID)szFormData.GetBuffer(szFormData.GetLength());   
    bReturn = HttpSendRequest(hRequest,
              strHeaders,-1L,pBuf,szFormData.GetLength()); 
	i =  GetLastError();
dfsgg 2014-09-01
  • 打赏
  • 举报
回复
引用 4 楼 VisualEleven 的回复:
用抓包工具抓个包看看不就清楚了吗?
引用 5 楼 FireBurn 的回复:
截图里面不是显示 200 OK吗? 另外楼主你并没有在函数里面使用那个strHeaders
那个图就是我抓的图,但是用模拟post就出现了12150
FireBurn 2014-08-31
  • 打赏
  • 举报
回复
截图里面不是显示 200 OK吗? 另外楼主你并没有在函数里面使用那个strHeaders
hurryboylqs 2014-08-31
  • 打赏
  • 举报
回复
LPTSTR AcceptTypes[2] = {TEXT("*/*"), NULL};
hurryboylqs 2014-08-31
  • 打赏
  • 举报
回复
按以下方式声明“ TCHAR szHeader[] = { // 如果提交的是表单,那么这个MIME 一定要带! _T("Content-Type: application/x-www-form-urlencoded\r\n") };
dfsgg 2014-08-28
  • 打赏
  • 举报
回复
char    szAccept[]   = "Accept: */*";   //接受文件的类型
CString strHeaders = _T("Content-Type: application/x-www-form-urlencoded\r\n;");//
char szReferer[] = "Referer:http://pay.gz163.cn/web/index.php";
CString szFormData = "action=checkbind&phone=18085686724&areaCode=0851&numberType=0&token=314aaf65c5ee8372aa1f7644548207a5";
MessageBox(szFormData);
HINTERNET hSession;
HINTERNET hConnect;
HINTERNET hRequest;
BOOL bReturn = FALSE;
hSession = InternetOpen("testlogin",
INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
hConnect = InternetConnect(hSession,"pay.gz163.cn",
INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1);
hRequest = HttpOpenRequest(hConnect,"POST","/web/index.php?t=3", "HTTP/1.1",szReferer,(LPCSTR *)&szAccept,INTERNET_FLAG_RELOAD,1);
int i = GetLastError();
LPVOID pBuf = (LPVOID)szFormData.GetBuffer(szFormData.GetLength());
bReturn = HttpSendRequest(hRequest,
strHeaders,-1L,pBuf,szFormData.GetLength());
i = GetLastError();

改过之后的
dfsgg 2014-08-28
  • 打赏
  • 举报
回复
改了,改过之后还是原来的错误12150,
Eleven 2014-08-28
  • 打赏
  • 举报
回复
用抓包工具抓个包看看不就清楚了吗?
Yofoo 2014-08-27
  • 打赏
  • 举报
回复
你的这个 strHeaders 不对吧 用这个试试 "Accept-Language: zh-cn\r\n" "Content-Type: application/x-www-form-urlencoded\r\n";
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧