注1:次文章只用与技术研究,并无其它用意!使用此软件造成的一切后果均与本人无关!

注2:此软件的原型来自互联网!软件作者:snow

注3:欢迎转载,转载请注明文章原地址:http://blog.csdn.net/icelemon1314/archive/2010/08/13/5810161.aspx

正文:

在网上搜索大半天后,就找到了这一个相关的软件,下过来后,初步研究发现只能截取国际服的相关数据包!所以要想用于GF还必须要进行改造!

在使用软件前,需要设置所监听的网卡。运行Devices.bat后可以看到

冒险岛封包拦截网卡列表  
 
0: Marvell Yukon Ethernet Controller.)  
192.168.1.1  
 
 
请按任意键继续. . .

由于我电脑上只开了一个网卡,所以只有一个编号0;如果你开了多个网卡,那么这里将会有多个编号!记住恩的网卡编号!

接着我们打开文件settings.properties找到DEVICE这一项,把这一项的值改为刚才恩所记下的网卡编号!保存!

好了这样就大概的弄完了准备活动!在未改源码之前,我们先大概看下软件的工作流程!运行Decrypt Packet.bat程序将会启动,首先出来的是一个CMD的窗口,会显示相关工作模式等!接着如果设置使用界面(一般都会用)就会弹出解密,这是软件的初始化工作就做完了!接着我们启动游戏,一直到停在选大区的界面是,解包软件仍然没有反映应,点大区后还没有反应,输密码,进游戏后还是没有反应!到此我们可以判断,软件没有起到效果!

按常理来说,在我们点大区的时候就会有数据包的产生,而软件的截包启动也应该是在这个时候开始!所以我们猜测,是否这个封包就会不同呢?下面我们开始在源码中查找问题的所在!

打开源码,首先我们要分析这个程序总体的启动流程和查找出判断是否启动拦截的关键代码!

在源码中我们可以看到有两个包分别为:org.snow.maplesnowsniffer和org.snow.odinms,然后我们打开org.snow.maplesnowsniffer可以看到下面仅有一个Main.java,我们打开这个Main.java,就可以找到启动时候的关键代码了。

if (program.equals("sniffer")) {
    MaplePcapture.main(argsNew);
} else if (program.equals("listdevices")) {
    ListDevices.main(argsNew);
} else if (program.equals("opcodeview")) {
    MapleOpcodeView.main(argsNew);
} else {
    System.out.println("Unknown starting argument");
}

从这里我们可以看出,有三种启动模式!我们所关心的是第一个,所以要查看对应的MaplePcapture.java文件!

在包org.snow.odinms下面我们就可以找到MaplePcapture.java,打开此文件找到main方法

public static void main(String args[]) throws IOException {  
        getInstance().doMain();  
    }  
 
    public void doMain() {  
        System.out.print("冒险岛封包拦截器");  
        try {  
        loadSettings();  
        } catch (Exception e) {  
            System.out.println("加载设置错误!");  
            e.printStackTrace();  
        }  
 
            try {  
            captor = JpcapCaptor.openDevice(devices[deviceIndex], 65535, false, 20);  
            captor.setFilter(packetFilter, true);  
            if (useGUI) {  
                packetGUI = new MaplePcaptureGUI();  
                packetGUI.setCapture(this);  
                packetGUI.setVisible(true);  
            }  
            captor.loopPacket(-1, this);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }

可以看到main又调用了一个doMain的方法,我们继续看doMain函数,看完之后我们并没有发现有什么特殊的地方!继续往下看我们看到有个函数叫receivePacket,看来这个函数就是我们要找的了!看完这个函数后,我们会发现这段代码并未涉及到程序开始拦截封包!在此,我们注意到这个函数是一个重载函数,所以它可能还有其他的实现方法!所以我们在项目中搜索receivePacket。结果在MaplePcap.java 中还找到了一个receivePacket在这个文件中我们找到了关键代码

if (packet.data.length == 15 && packet.data[0] == 0x0d && packet.data[1] == 0) {

这个应该就是国际服点大区时候的封包头,只要我们将其替换成GF的,就应该能够截取到封包数据了!

至于GF的点大区封包获取有很多方法,我门有尝试过,我想一种可能是,用要截获版本的客户端去连接低版本的服务端!这样服务端应该能够收到数据~然后就...

好了,假如我们已经获得GF点大区的数据了:即 1F 00 所以只要我们收到这个包,那么我们就可以启动截包了!将上面那么判断语句修改为:

if (packet.data.length == 2 && packet.data[0] == 0x1F && packet.data[1] == 0) {

这样编译后,我们就能够抓取到相应的封包了!

后记:

1.经过试用后发现,当角色进入游戏后,截到的封包数据没有解密!这个问题,还请高人指教!

2.由于本人水平有限,有误之处还请提出!

3.软件下载:

CSDN:http://download.csdn.net/source/2618109

115:http://u.115.com/file/f8c9f40e81

ys168:http://e.ys168.com/?icelemon

冒险岛封包拦截研究!相关推荐

  1. 关于冒险岛封包拦截程序的开发计划

    传说冒险岛游戏中有一种利用网络延时,将特殊道具"偷"出任务地图的方法.相信掌握了此种技术的人都会爱不释手,我也是如此!目前来讲,使用这种方法的操作过程有些繁琐,要切换出游戏利用WI ...

  2. 替换系统wsock32.dll,实现封包拦截

    // wsock32.cpp : Defines the entry point for the DLL application. //:::::::::::::::::::::::::::::::: ...

  3. Windows核心编程_HOOk SOCKET实现封包拦截

    Socket的HOOK技术是目前网络拦截程序的基础功能,还有浏览器的抓包工具都是通过拦截Socket函数实现的 浏览器也好,通讯软件也好,他们只是使用的通讯协议不一样,其最底层的全部都是通过封装Soc ...

  4. 易语言编程-远程封包拦截与发送技术

    我们前面学习了封包拦截的技术和发送技术,但都是用DLL的注入方式来进行拦截封包的 那么有没有一种可以不需要注入,就可以拦截到指定进程里的封包数据呢? 答案是肯定的:有的 Game-EC模块的最新版本就 ...

  5. X64安卓模拟器封包拦截发送工具测试(免代理免网卡)

    这个是这个工具下载链接,大家有空一起交流一下.直接X64位游戏测试 无需网卡,无需代理软件,直接操作 链接: https://pan.baidu.com/s/1_XNX9VVugSfGF3fXI1S7 ...

  6. 01-Spring Boot的基本认识

    Spring Boot的基本认识 不管是Spring Cloud Alibaba还是Spring Cloud Netflix,都是基于Spring Boot 这个微框架来构建的.本篇只对Spring ...

  7. 【游戏外挂、修改器、辅助研究1】认识外挂

    1.什么是游戏外挂 随着电子游戏的兴起,许多人都在以游戏娱乐, 自然,有人的地方就有需求,就有竞争, 人们竞争着等级.排名.装备.物品等等, 可是,要怎么获得这些东西呢? 自然是刷怪,无穷无尽地刷怪, ...

  8. C++逆向安全教程150全集---2020年木塔老师新教程

    法律声明:教程不会涉及指定公司的网游测试,不会提供任何游戏的数据或者侵害游戏公司的版本问题.教程目的是数据分析原理和提高安全技术.逆向技术必须按照国家法律来实施.测试的游戏纯属技术研究,禁止非法用途. ...

  9. X64驱动开发和保护+X86X64游戏逆向分析课程

    老师教学范围和方式:木塔负责PC电脑端C语言基础和端游逆向分析部分内容,采用录制+部分直播课程教学,晚上还有专业老师讲解和指导.我要的是质量不是数量.老师备课,设计课件需要时间的. 学习周期:PC端3 ...

最新文章

  1. 耿直:统计学中的因果推断问题(Causal Inference)
  2. Linux下安装mysql(2) 及常见问题解决(CentOS)
  3. 社交重构、游戏革新,万物皆可元宇宙?这场大会给你讲清楚了|活动预告
  4. SAP CRM SPRO Customizing 里 Text Object 属性 continue 的含义
  5. Oracle DBA必须学会的11个Linux基本命令
  6. 打开终端输入没反应_忘掉Iterm2,试试这款跨平台终端工具
  7. 【图像处理】MATLAB:频域高低通滤波器
  8. 有关8086必须记住的几个数(持续更新)
  9. HTTP的padding状态
  10. 知识图谱 - TransE算法
  11. python利用PyQt5制作QQ空间登入客户端
  12. 恒力弹簧设计及寿命预测
  13. 兰州大学本科毕业论文答辩PPT模板
  14. Elasticsearch 相关知识
  15. 好记性真的不如烂笔头
  16. 09——规范数据库设计
  17. 渗透测试流程——渗透测试的9个步骤(转)
  18. 老人智能手表方案/案列/APP/小程序/网站
  19. 保研之旅9:东南大学“通信与信息系统学科”推免面试
  20. 项目管理之关键链法VS关键路径法

热门文章

  1. 【Android】图片切角,切指定的边。
  2. 数据应用场景之标签管理体系
  3. com.android.phone目录,手机开机一直显示quot;com.android.phone已停止quot;肿么弄
  4. 世人皆说屠龙术,我来谈谈易筋经
  5. 医院系统时间同步服务器,医院对同步时钟系统的需求
  6. java毕业设计——基于java+JSP+sqlserver的Smart系统-题库及试卷管理模块设计与实现(毕业论文+程序源码)——学生信息管理系统模板2
  7. sunday算法特征码_C++ sunday算法 极速定位指定进程内存特征码!
  8. VBA While Wend循环
  9. 正确使用Google英文版
  10. 【游戏开发实战】可爱的动物数字,教你在Unity中自制UGUI艺术字体(位图字体)(Bitmap Font Generator)