【游戏漏洞】大话西游网页版收发包分析

幸运草
幸运草
幸运草
896
文章
3
评论
2020年5月20日23:51:53 评论 50

8种网络黑灰产作案工具

由于该游戏是有微端的,这个游戏实际上和正常端游区别不大。

我们可以选择OD直接分析收发包。

正常我们知道可以分析 send(sendto WSASend) 和recv 等函数来分析收发包。

这个游戏也可以直接通过send 和recv 断下 但是发送的都是加密包,并且我们通过调用关系向上追溯发现无论做什么动作都是一样的  返回几层就到线程头了,无法继续返回到明文封包位置和功能函数里,那么这位置对于我们来说就是无用的。

那么这种情况说明什么呢?

说明这是线程发包,我们先来了解下线程发包的原理。

正常的发包是这样的,某个功能函数调用内层函数,内层函数对功能参数进行组包,然后加密等等操作,再去调用send等发包函数将封包发送出去,当然内层函数可能很多层,这里面忽略。

那么我们就可以通过这样的调用关系从send返回到明文封包甚至功能函数里去了。

那线程发包是什么情况呢?

线程发包前面的组包加密过程跟正常是一样的,只是他没有直接调用send发送,而是写入到某个指针地址里然后修改了某些发送封包标志位,让其他线程去发送。

那么于此同时有另外一条线程在不断的循环判断是否需要调用send发送封包,一旦判断到标志就会立刻发送。我们之前send返回的调用就是在这条线程里。

那么现在很明显了,我们在这条线程里怎么找也是找不到我们想要的明文封包和功能函数的,那么怎么办呢?

俩种办法,第一种封包内容上下写入断,因为内容是在线程外被写入的那么我们就可以跳出线程来到组包的位置了。

第二种办法在send附近找发送封包的标志,通过标志位跳出线程。

第一种方法为例,直接在send 的buffer 上下写入断 直接可以返回到 以下位置

发包函数以及HOOK位置

010372BB    E8 092C0100     call    01049EC9                         ; 01049EC9

010372C0    F20F1005 70E119>MOVSD XMM0, [119E170]

010372C8    F20F110424      MOVSD [ESP], XMM0

010372CD    53              push    ebx

010372CE    E8 C8250100     call    0104989B                         ; 0104989B

010372D3    83C4 0C         add     esp, 0C

010372D6    B8 01000000     mov     eax, 1

010372DB    5F              pop     edi

010372DC    5E              pop     esi

010372DD    5B              pop     ebx

010372DE    8B4D FC         mov     ecx, dword ptr [ebp-4]

010372E1    33CD            xor     ecx, ebp

010372E3    E8 64261300     call    0116994C                         ; 0116994C

010372E8    8BE5            mov     esp, ebp

010372EA    5D              pop     ebp

010372EB    C3              retn

010372EC    C685 FCFFFDFF 0>mov     byte ptr [ebp+FFFDFFFC], 0

010372F3    66:8B47 28      mov     ax, word ptr [edi+28]

010372F7    66:8985 FDFFFDF>mov     word ptr [ebp+FFFDFFFD], ax

010372FE    8D85 FCFFFDFF   lea     eax, dword ptr [ebp+FFFDFFFC]

01037304    56              push    esi                              ; Len

01037305    50              push    eax                              ; pBuf

01037306    FF15 C0D52D02   call    dword ptr [22DD5C0]              ; 明文发包CALL以及HOOK位置

0103730C    83C4 08         add     esp, 8

0103730F    FFB5 F4FFFDFF   push    dword ptr [ebp+FFFDFFF4]

01037315    FFB5 F8FFFDFF   push    dword ptr [ebp+FFFDFFF8]

0103731B    E8 A92B0100     call    01049EC9                         ; 01049EC9

01037320    8B4D FC         mov     ecx, dword ptr [ebp-4]

01037323    83C4 08         add     esp, 8

01037326    33CD            xor     ecx, ebp

01037328    33C0            xor     eax, eax

0103732A    5F              pop     edi

0103732B    5E              pop     esi

0103732C    5B              pop     ebx

0103732D    E8 1A261300     call    0116994C                         ; 0116994C

01037332    8BE5            mov     esp, ebp

01037334    5D              pop     ebp

01037335    C3              retn

这个位置可以返回到所有的功能CALL了 当然也有特殊功能有另外线程

recv 也一样 不过不是写入断了 而是对包内容下访问断,因为他只是需要copy 而不是改写

断到以下位置

HOOK收包位置

62E888EC  |> /8B4B 30       mov     ecx, dword ptr [ebx+30]

62E888EF  |. |89F2          mov     edx, esi

62E888F1  |. |29C8          sub     eax, ecx

62E888F3  |. |39F0          cmp     eax, esi

62E888F5  |. |0F46D0        CMOVBE EDX, EAX

62E888F8  |. |89F8          mov     eax, edi

62E888FA  |. |034B 34       add     ecx, dword ptr [ebx+34]

62E888FD  |. |29F0          sub     eax, esi

62E888FF  |. |895424 08     mov     dword ptr [esp+8], edx                                ;  Len Edx

62E88903  |. |8955 E4       mov     dword ptr [ebp-1C], edx

62E88906  |. |894424 04     mov     dword ptr [esp+4], eax                                ;  pBuf Eax

62E8890A  |. |890C24        mov     dword ptr [esp], ecx                                  ;  在这里HOOK

62E8890D  |. |E8 1EB40000   call    62E93D30                                              ;  &msvcrt.memcpy>

62E88912  |. |8B55 E4       mov     edx, dword ptr [ebp-1C]                               ;  Hook EAX{pBuf} ESI{Len}

62E88915  |. |29D6          sub     esi, edx

有了这2个位置   收发包明文显示 做什么都得心应手

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

你的手机被劫持了吗?

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
网站SEO优化基础流程(新手必看) 优化

网站SEO优化基础流程(新手必看)

宝塔面板搭建一个获取网站的Favicon图标的APIgetFavicon是一个可以获取网站的Favicon图标并显示在你的网页上的项目。安装方法很简单,属于开箱即食。这篇文章还是基于宝塔面板来搭建。 1、简介 项目:https://github.com/owen0o0/getFavicon 2、准备 宝塔面板(…网站SEO优化属于市场营销的一种,在外行看起来专业性非常强。但在内行眼里,网站SEO优化基础流程是有规律可行的。只要在SEO优化前搞清楚一些基础流程,然后按照流程一步步实施,就算是刚入行的新手,也能少走很多弯路。下面MAY的SEO博客为您讲解SEO优化基础流程。 01 选择网站建站程序 您可能会看到很多的博主介绍第一步应该是购买域名和空间,而May不建议您这样做。 ①. 从网站SEO优化的角度,网站建设最好是先在本地搭建,待网站搭建出来后再上线,一般网站搭建可能会花2~3个月时间; ②. 而您购买的域名和空间刚开始会选择按年购买,网站在本地搭建时,您的域名和空间处于完全闲置的状态。买来也是空置在那里。当然对于比较热门的域名,建议您还是先下手为强。 ③. 推荐WordPress建站。即使是新手,WordPress算是轻松易上手的一款建站程序。丰富的网站模板及插件可以实现多样化功能。 02 选择网站域名和空间 域名:不言而喻,是访客识别您网站的一种标识。一个简单好记的域名至关重要。当然在您选择域名前,最好查看域名历史。 空间:也就是我们常说的网站服务器,是存放网站内容的容器。一个安全稳定的空间/服务器为网站长远发展保驾护航。 03 网站备案 选择国外空间或服务器,可以忽略这一步骤。 选择国内空间或服务器,目前是逃不掉网站ICP备案这一环节。您选用的哪家空间/服务器,就在哪家备案(这是朝廷的规矩)。当然,还有一些省份要求公安联网备案。 04 网站基本设置 ①. 网站TDK T: 网站标题Title是影响排名的一个重要的因素,也是展示在搜索结果第一行。好的标题会决定用户是否点击进入网站。 D: 网站描述Description大致简要介绍网站的主要内容。 K: 网站关键词Keywords,可写也可不写。 ②. 301重定向、404页面、伪静态、站点地图、robots.txt 301重定向:确定网站首选域后(是带www还是不带www),将非首选域301重定向到首选域,避免网站权重的分散。 404页面:当用户访问到不存在页面时,能返回404页面,提示用户这是错误的页面,另外建议404页面设置返回首页或其他分类页导航,帮助用户返回,能大大降低网站跳出率。 伪静态或纯静态:随着搜索引擎越来越智能化,动态页面虽说可以被搜索引擎抓取;但是为了降低搜索引擎工作难度,还是建议将网站伪静态或纯静态化处理。 站点地图:地图一般分为两种,一种是给搜索引擎看的,格式一般为.xml;另一种是给用户看的,格式一般为.html。 robots.txt:搜索引擎访问网站时,会查看站点下的robots.txt,来查看哪些页面可以访问。如果您的网站所有页面都允许搜索引擎抓取,则可以不使用robots.txt;但一般都建议网站配置robots.txt,来禁止搜索引擎抓取一些不重要的页面。 05 网站内容的丰富 保持定期更新优质原创内容,保证网站的活跃,丰富的网站内容不仅可以获得用户的喜爱,也更容易获得搜索引擎的青睐。 06 网站内链建设 网站内链建设包括导航栏链接、面包屑导航链接、侧边栏链接、底部链接、文章中链接等,整个网站内部形成一个巨大的网络结构。以便蜘蛛可以爬行网站的每个角落,提高网站收录量。 07 网站外链建设 也许您会听到很多声音说网站外链建设已经不重要了。但是May觉得外链还是有必要的。先不说外链会不会有助于网站排名,但您不可否认的是外链为搜索引擎和用户多提供进入您网站的入口,及时发现您的网站并访问您的网站。一个优质的外链会给您带来源源不断的流量,您还会说它没必要吗? 写在最后:网站SEO优化是一个细活,也是一个长期的过程,特别是前期会很难看到效果。但坚持下来,一定会获得意想不到的收获。 变化吧:手把手教你建站(基础篇)说起第一次使用Wordpress建站,相信大部分人的印象都是虚拟主机、空间搭网站,因为便宜、省心,自己搭个小站放上去也算足够,但是随着各种技术的迅速发展,原来的很多虚拟主机已经不能再满足Wordpress配置要求,再加上各种云服务、VPS的降价,服务器性价比已…
宝塔面板LNMP从零开始配置NextCloud超详细教程,同时配置外部七牛云存储 优化

宝塔面板LNMP从零开始配置NextCloud超详细教程,同时配置外部七牛云存储

SQLMap-常用命令SQLMap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系…无奈死了,网络上完全没有对于宝塔面板LNMP对于NextCloud的配置教程,官方也没有任何中文文档,不披马甲官网慢得要死,这里给各位排排坑,科普一下。 准备 马甲一个,用来下载最新的NextCloud安装包,注意不要运行包和其他需要依赖的包,最简单的php包就可以。当然,如果你没有马甲,但是能上官网的话也可以直接去下,就是速度慢成蚂蚁...... 在整个配置过程中,关闭宝塔当前站点的防火墙,关总开关,不要一个一个关。 宝塔面板php安装好7.1-7.3版本,低于该版本不能运行。 完全按照教程操作,不要少步骤。 开始配置 在宝塔面板中准备好空壳网站 主要内容: 数据库:MySQL数据库。 PHP:7.1及以上版本。 在宝塔面板——软件商店,找到php 7.X,进入配置页面,选择“安装扩展”,安装“fileinfo”、“opcache”、“redis”、“apcu”、“imagemagick”这五个拓展,静静地等待安装完成。 添加后,绑定好域名,配置好SSL(推荐)。 在“网站目录”中,关闭“防跨站攻击”。 在“文件”中,找到刚刚创建的网站的根目录,删除所有文件,包括上传的NextCloud源码包。 如果全部删除后,发现仍有.user.ini文件,删掉它。 上传源码 直接上传,并且完全解压、覆盖。 如果发现解压到子目录里面了,进入子目录,全选——剪切,然后粘贴到根目录,然后把那个子目录删掉,保证没有多余文件。 这套系统自带程序完整性检查,对于每个文件都要进行md5匹配,否则会有安全提示。 为了避免这些警告,我们还是最好先处理好。 配置系统 打开绑定域名,系统会自动进入安装界面。 填写管理员用户名、密码。 注意!不要在填写完管理员帐号密码后就直接点击“安装完成”!你还没有配置数据库! 点击“存储与数据库”选项,弹出了“数据目录”和“配置数据库”选项。 改变数据目录,不要使它在网站目录内,否则之后还需要在网站配置里面添加deny项。 最好是放在/www目录下。 然后选择数据库为MySQL/MariaDB! 在宝塔面板内创建一个MySQL空白数据库,记下用户名和密码,然后填写到配置项内。 填写后的配置应该像这样: 注意数据库端口的问题,在localhost后面,输入冒号加上端口号,端口号应该为宝塔面板安装的MySQL的运行端口,如果你没有修改过,应该为3306。 然后点击安装完成,等待几十秒钟,就会进入首页了。 解决网络安全警告 直接点击右上角头像,进入“设置”页面,点击左侧“管理——概览”进入安全管理页面。 等待转圈完成,你会看到十多个安全提示,例如(我这里因为之前修复过一次了,有一些错误提示没有出现,具体的在下面): 先说明一点,我如果标出“这个问题可以通过修改配置文件解决,不需要单独修复”,代表这个问题可以通过修改完主要问题后,通过修改配置文件的方式一起解决,就不用单独操心修复了。 这些提示我几乎都看到过了......(心塞塞) 一些文件没有通过完整性检查。了解如何解决该问题请查看我们的文档 请点击右侧“无效文件列表”,查看提醒的错误文件,一般都是.user.ini文件不匹配,或者是你没有删除你的程序源码包,有了多余的文件。 PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(”PATH”) 测试时仅返回空结果. 编辑/www/server/php/73/etc/php-fpm.conf文件,路径中的73请替换为你的php版本,71为7.1,72为7.2,以此类推。 在文件的最后面添加如下代码: env = $HOSTNAME env = /usr/local/bin:/usr/bin:/bin env = /tmp env = /tmp env = /tmp 注意是在文件最后,也就是下面,而不是在下面,否则php会无法启动(不要问我怎么知道的)。 HTTP的请求头 "Strict-Transport-Security" 未设置为至少 "15552000" 秒。为了提高安全性,建议参照security tips ↗中的说明启用HSTS。 这个问题可以通过修改配置文件解决,不需要单独修复 PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果. 在宝塔面板——软件商店,找到php 7.X,进入配置页面,选择“安装扩展”,安装“fileinfo”、“opcache”、“redis”、“apcu”、“imagemagick”这五个拓展,静静地等待安装完成。(一劳永逸,不要用哪个安装哪个,都会用到的) 您的网页服务器未正确设置以解析“XXXX”。更多信息请参见文档。 这个问题可以通过修改配置文件解决,不需要单独修复 内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。 在宝塔面板——软件商店,安装Redis,里面的配置不需要修改。 在宝塔面板——软件商店,找到php 7.X,进入配置页面,选择“安装扩展”,安装“fileinfo”、“opcache”、“redis”、“apcu”、“imagemagick”这五个拓展,静静地等待安装完成。(如果在准备中已经安装好,跳过这个步骤) 进入网站根目录,打开config文件夹,编辑config.php文件,在最后一个逗号后面回车,添加以下内容: 'memcache.local' => 'OCMemcacheAPCu', 'memcache.distributed' => 'OCMemcacheRedis', 'redis' => array( 'host' =>...
linux运维——基础篇 运维

linux运维——基础篇

变化吧:WordPress优化教程近些年来,Chrome等浏览器一直在推动https网站,所有的http协议网站被标记为不安全,而在今年的7月份开始,Chrome将对非https网站进一步加入明显的非安全标记,如果这时再不对网站进行https改造的话,那么可能会对信任度造成一定的影响,所以说对…说到服务器操作系统,linux的各种发行版本以毫无悬念的姿态占领了绝大部分的市场份额。常见的桌面操作系统Windows与Linux在操作上有着很大的区别。 容器技术最初发源于linux,也成熟结果与Linux,因此要掌握容器技术与云运维技术免不了对Linux有一定的了解。 1、systemd 计算机在启动一个操作系统时必须加载并初始化操作系统,方能运行其他的应用程序,这是计算机初始化必不可少的一个启动过程,也就是说计算机启动需要一款初始化系统。systemd是目前Linux系统中最流行的初始化系统之一,能提高系统的启动效率与质量,它不仅可以让系统进程并行启动,还能很好地守护init进程,减少系统内存的不必要开销。 在systemd诞生以前,还有两个系统初始化工具,分别是systemvinit和upstart,systemvinit是一套传统的初始化系统,已经逐渐地淡出了Linux历史舞台,现在已经基本被systemd和upstart取代了,systemd和upstart各有各的特点,不过目前已经有绝大多数的Linux发行版都默认使用systemd,比如Fedora、openSUSE、Ubuntu、Gentoo、Arch Linux等一系列Linux发行版。 2、shell基础编程 在Linux系统中,shell是一种命令行的解释器命令,是用户与系统内核之间进行通信的一种语言。第一个Unix Shell是sh,除此之外还有很多优秀的shell,例如:ksh、bash、csh、tcsh等。 Shell具有两种工作模式,分别是互动模式和脚本模式。互动模式就是用户直接在终端上输入指定的命令并执行,等待命令执行完毕并分析返回的结果,然后再执行下一条命令。脚本模式就是在执行Shell命令的过程中,不需要用户去干扰或控制,它会自动执行下去。脚本模式的执行效率是非常高的,也就是我们经常说的自动化运维,只要我们编辑好了Shell任务,然后跑在Linux进程中,这些任务将会被自动处理。SQLMap-常用命令SQLMap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系…
教你使用宝塔面板快速搭建网站 优化

教你使用宝塔面板快速搭建网站

变化吧:手把手教你建站(基础篇) 说起第一次使用Wordpress建站,相信大部分人的印象都是虚拟主机、空间搭网站,因为便宜、省心,自己搭个小站放上去也算足够,但是随着各种技术的迅速发展,原来的很多虚拟主机已经不能再满足Wordpress配置要求,再加上各种云服务、VPS的降价,服务器性价比已… 本文将教大家使用 宝塔面板 快速搭建网站,云服务器购买 以及 域名注册 部分请自行上网搜索了解,亦可留言联系小编进行咨询。如果是和下方一样本地搭建演示的话,则不需要付费购买域名和主机。宝塔面板 的是 提升运维效率 的 服务器管理 软件,可以一键安装 LAMP / LNMP / 集群 / 监控 / 网站 / FTP / 数据库 / JAVA 等 100 多项服务器管理功能,对新手小白用户非常友好。目前支持在 Linux & Windows ( Server )系统上运行使用。 1、先从 宝塔面板 官网下载最新的 Windows 版安装程序,双击运行后点击 一键安装 按钮,此时如果是在 Windows 系统上运行时则会弹出兼容提示,这里直接点击 是 强制安装即可,待安装结束后点击 开始使用 结束安装。兼容问题可以安装 5.4 旧版,或在 Windows Server 系统上安装新版即可避免,测试环境临时搭建网站强制安装也无太大影响; 2、此时会弹出面板初始信息弹窗直接关闭,进入到面板工具箱界面后,按需修改 端口、安全入口、用户名、密码 ,后点击 保存配置 即可;由于小编是为大家演示操作,端口、默认入口 都没有进行修改,如果是公网服务器搭建时还是建议对其进行修改的,尽量减少风险; 3、点击面板工具箱左上方的 面板地址 即可通过浏览器自动打开并访问,如果是自己手动打开浏览器的也可以通过在地址栏内输入访问地址进行访问。电脑本地搭建则直接访问 127.0.0.1:端口/安全入口 即可进入宝塔面板后台界面,再输入 用户名 和 密码 即可登录。登录成功后可在 IIS 、Apache 、Nginx 套件中任选其一,这里按照实际的使用需要进行选择。如果不了解的话,可直接选则 Naginx 并点击下面的 一键安装 按钮,接下来在消息盒子中查看进度耐心等待安装完成后即可开始使用。 1、小编在上面讲完了 Windows 版本的安装,再和大家说下 Linux 版本的安装方法。本文以 CentOS 7 系统为例进行安装演示,建议大家也使用它。在系统中直接输入下方命令并 回车键 执行,当出现提示 Do you want to ...  时输入字母 y 按 回车键 确认安装; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 2、耐心等待安装过程,当提示 Installed successfully 且下方提供宝塔面板后台 登陆地址 、用户名、密码 则说明安装完成,将这些信息复制下来,然后打开浏览器进行登录; 3、首次使用登陆宝塔面板,勾选 我已阅读“《用户许可协议》”,然后点击 进入面板 ; 4、由于这次是在...