当前位置: 网站首页>小程序开发>小程序制作

汝州网站制作【汝州网站优化】汝州建网站、汝州微信公众号运营、汝州网页设计、汝州微信小程序商城

发表日期: 2021-04-28 09:42:31 浏览次数:103

汝州网站制作【汝州网站优化】汝州建网站、汝州微信公众号运营、汝州网页设计、汝州微信小程序商城


汝州市位于河南省中西部,因北汝河贯穿全境而得名,总面积1573平方公里,总人口120万,辖21个乡镇街道,459个行政村,是平顶山市下辖的县级市,也是河南省十个省直管县试点之一。

汝州是历代郡州治所。从公元606年的隋朝设立汝州以来,距今已有1400多年的历史。

汝州距离省会郑州90公里、洛阳70公里、平顶山60公里,焦枝(柳)铁路、宁洛高速、二广高速、林桐高速穿境而过,在1小时交通圈内通达郑州国际机场、洛阳机场,已建成和规划建设的郑万高铁、郑洛城际铁路、洛平漯周高铁、三洋铁路紧临汝州或在汝州设站。

汝州境内旅游景点达到852个,省级以上重点文物保护单位20个,其中国家重点文物保护单位10处,拥有风穴寺、九峰山等2个4A级景区,怪坡、中国汝瓷小镇、丹阳湖景区、汝水湾景区、汝河沙滩公园等5个3A级景区。共有37个具有开发价值的古寨古堡,夏店镇山顶村、蟒川镇半扎村、大峪镇青山后村、焦村镇张村等4个是国家级传统村落。九峰山、紫云山、蒋姑山、大红寨等风景名胜,罗圈地质公园冰川遗址是世界四大冰川地质遗址之一。

汝州市为国家园林城市、国家卫生城市、全国绿化模范市、全国文明城市城市,被评为全国第二批节水型社会建设达标市、全省水生态文明城市、全省首批全域旅游示范市、首批省级森林城市,荣获中国十佳绿色城市、全国文旅融合特色创新示范市、中国汝瓷之都等称号,海绵城市项目荣获中国人居环境范例奖,PPP项目实施和土地节约集约利用两项工作受到国务院通报表彰。 [1] 


起因,由于部分网站升级https加密协议至tls1.2,而WinXP的schannel不支持tls1.2,使用windows SSPI提供https能力的软件,在XP下不能访问tls1.2的网站。


因此,thunder和IDM等下载软件,在后期版本里,都引入了openssl来支持https.


至笔者发文时,IDM的最新版本是v6.38b21,其在SSPI方式失败的时候,会尝试openssl来连接。


但是笔者发现,WinXP下IDM仍不能下载部分https链接,提示:



图例Url是:https://www.appinn.com/wp-content/uploads/Appinn-icon-32.jpg


wireshark抓包,与笔者调用openssl成功下载的demo对比发现:



下载失败的那种情况,SSL握手的时候,扩展字段里缺少了server_name.


对比IDM的SSL相关实现,发现它缺少了很重要的一句,SSL_set_tlsext_host_name(sslHandle, host);


// Connect the SSL struct to our connection

        if (!SSL_set_fd (sslHandle, (int)socket))

            ERR_print_errors_fp (stderr);


        SSL_set_tlsext_host_name(sslHandle, host);


        // Initiate SSL handshake

        if (SSL_connect (sslHandle) != 1)

            ERR_print_errors_fp (stderr);


于是需要给IDMan.exe里补丁上这一句:


1 查壳,无壳。

2 查导入表表,没发现libssl.dll.

3 windbg Ctrl+e IDMan.exe,sxe ld libssl.dll,返回至IDMan.exe领空,发现:

LoadLibraryW(libssl.dll);

GetProcAddress(h_libssl_dll, "SSL_connect");


SSL_set_tlsext_host_name宏实际是SSL_ctrl(),但是上面初始化ssl函数的函数里,没有初始化SSL_ctrl,给它补一个:

3.1 .rdata节末尾空白处,加一个字符串pch_SSL_ctrl"SSL_ctrl";

3.2 .data节末尾空白处加一个变量存SSL_ctrl地址;

3.3 在.text节末尾空白处加:

  test    bl, bl

  jnz     L_Fail

  push    offset pch_SSL_ctrl ; lpProcName

  mov     eax, h_libssl_dll

  push    eax             ; hModule

  call    esi ; GetProcAddress

  mov     SSL_ctrl, eax

  cmp     eax, edi

  jz      L_Fail

  jmp     L_Success


3.4 在初始化ssl函数的函数里,原来初始化玩最后一个SSL函数,即SSL_read后,跳到L_SSL_ctrl,

  push    offset aSsl_read ; "SSL_read"

  mov     ecx, h_libssl_dll

  push    ecx             ; hModule

  call    esi ; GetProcAddress

  mov     SSL_read, eax

  cmp     eax, edi

  jnz     L_SSL_ctrl

  

这样就找到了SSL_ctrl的地址。


4. bp libssl!SSL_connect,下载https://www.appinn.com/wp-content/uploads/Appinn-icon-32.jpg,断下,返回至IDMan.exe领空;

在SSL_connect之前,我们要想办法插入SSL_set_tlsext_host_name(sslHandle, host);

SSL_set_tlsext_host_name有两个参数,明显这里能直接拿到sslHandle,而host是Url中的www.appinn.com,猜测在此处函数里的this指针里,会有这个host的存在。

SSL_set_tlsext_host_name宏实际是SSL_ctrl。


bp ws2_32!gethostbyname, 笔者这里第五次命中时会进入openssl流程,返回至IDMan.exe领空,能看到:


  v5 = *(_DWORD *)(this_ + 0x184);

  if ( v5 )

    v6 = *(_BYTE *)(v5 + 0x15C);

  else

    v6 = 0;


  if ( v6 )

  {

    host = *(char **)(v5 + 0x140);

  }

  else

  {

    v9 = *(char ***)(this_ + 0xB4);

    if ( !v9 )

      v9 = *(char ***)(this_ + 0xB0);

    host = *v9;

  }

这里就拿到了host的位置,实际后面我们用到的是poi(poi(this_ + 0xB0))。


返回一开始断SSL_connect的地方,返回IDMan领空,把call SSL_connect改为:


  mov     ecx, [esi+3450h]

  push    ecx

  nop

  jmp     L_SSL_ctrl_setServerName  // 原来是call SSL_connect

  

在.text节末尾空白处加:

   L_SSL_ctrl_setServerName proc near

                 mov     eax, [esi+0B0h]

                 mov     eax, [eax]

                 push    eax             ; _DWORD

                 push    0               ; _DWORD

                 push    37h             ; _DWORD

                 push    ecx             ; _DWORD

                 call    SSL_ctrl

                 add     esp, 10h

                 call    SSL_connect

                 jmp     原始call SSL_connect后一句

 L_SSL_ctrl_setServerName endp

 

 

 测试OK ~

 

 PS:

 1.汇编代码可以用VS 里 __asm{ xxx xxx}, 反编译后拿到。

 2.jmp等的opcode自己构造,目标地址-原始地址-5,如果是负值用补码;

 3.用IDA patch的,菜单Edit -> Patch program -> Change byte,完成后Apply patches to input file...


微信图片_20210425092605.jpg


汝州网站制作汝州网站优化汝州建网站、汝州微信公众号运营、汝州设计、汝州微信小程序商城

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878