通过Ollydbg定位私有协议通信明文
简介:做安全的筒子经常会碰到这样的问题,当向要分析通信协议的时候往往都会有加密通信保护,对于SSL通信我们可以使用SSL劫持,但对于应用层面的加密就显得无能为力了,最好的办法就是调试应用,在应用内部去把明文通信数据包挖出来做分析。
1、 向开发工程师了解获取明文协议数据的入口函数,此处为ssl_session::handle_read。
2、 在本机安装和启动LBS后台服务程序。方法:先后点击install.bat和start.bat。启动完成后任务管理器可以看到LBS的进程,通过netstat也可以看到监听端口为8555。


3、 启动OD并attach LBS进程,并等待装载完成,如图:


4、 打开OD模块窗口,找到并选中lbs模块(实际是DLL动态链接库):


5、 使用组合键ctrl+n调出查看该模块的函数的窗口,直接在窗口上输入要查找的函数名即可自动进行筛选:

6、 选中该函数按F2插入断点,并让进程RUN起来:

7、 将某设备的LBS设置为本机IP和LBS端口(8555),
7.1、telnet到设备,账户为admin/设备验证码。
7.2、执行命令:setLBS IP:port
7.3、执行命令:reboot
8、 在设备重启的过程中将向本机发送注册信令,该信令将触发ssl_session::handle_read函数的执行和OD的断点。
9、 在栈区的上下文中需找指向信令数据的指针。

10、 选中内存区域,并按ctrl+c组合键,在弹出的对话框中输入信令数据地址,并最终定位到具体的信令数据区域,如下图所示:


通过Ollydbg定位私有协议通信明文的更多相关文章
- Netty实现简单私有协议
本文参考<Netty权威指南> 私有协议实现的功能: 1.基于Netty的NIO通信框架,提供高性能异步通信能力 2.提供消息的编码解码框架,实现POJO的序列化和反序列化 3.提供基于I ...
- 网络直播流媒体协议的选择讨论,RTSP,RTMP,HTTP,私有协议?
最近有不少人在EasyDarwin的交流群里面问关于花椒.映客手机直播技术的问题,还有RTSP.RTMP协议选择的问题,这里个人谈一下自己的愚见. 1.不管是RTSP/RTP.RTMP.HTTP,亦或 ...
- HTTP协议通信原理 与常见报错信息
HTTP协议通信原理 请求报文 请求行 GET index.html HTTP 1.1 请求方法:get 读取服务器数据内容 post 提交存储服务端数据(用户注册) 协议版本: ht ...
- 通过私有协议Chrome浏览器页面打开本地程序
近期方有这样的要求:这两个系统,根据一组Chrome开展,根据一组IE开展,需要Chrome添加一个链接,然后进入IE该系统的开发.这,需要Chrome跳转到创建一个链接IE浏览器指定的页面.同时也实 ...
- 真正实现Netty私有协议开发
首先<Netty权威指南>私有协议开发那一章的样例代码是编译不通过的(但是这丝毫不影响本书的价值)处理方案可以参考:http://www.itnose.net/detail/6112870 ...
- 《java入门第一季》之Socket编程通信和TCP协议通信图解
Socket编程通信图解原理: TCP协议通信图解
- 如何让你的传输更安全——NIO模式和BIO模式实现SSL协议通信
对于SSL/TLS协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展--JSSE,它包含了实现Internet安全通信的一系 ...
- Learning-Python【28】:基于TCP协议通信的套接字
什么是 Socket Socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Sock ...
- Learning-Python【30】:基于UDP协议通信的套接字
UDP协议没有粘包问题,但是缓冲区大小要足够装数据包大小,建议不要超过 512 服务端: # 服务端 import socket server = socket.socket(socket.AF_IN ...
随机推荐
- 调用微信JS-SDK接口上传图片
最近要在微信上做个问卷调查,有个上传图片功能,折腾找了半天资料,都不好弄,最终打算调用微信提供的上传图片接口,实现上传图片功能!此功能最大的好处是可以在微信服务器上暂存图片,减少本地服务器图片的缓存, ...
- Bootstrap框架的简介
一.Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.JavaScript的前端框架. 它是为实现快速开发Web应用程序而设计的一套前端工具包. 它支持响应式布局, ...
- poj 1426(同余搜索)
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26926 Accepted: 111 ...
- Python3发送qq邮件,测试通过
import smtplib from email.mime.text import MIMEText # 收件人列表 mail_namelist = ["10402852@qq.com&q ...
- 四十九 常用内建模块 urllib
urllib提供了一系列用于操作URL的功能. Get urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应: 例如,对豆瓣的一个 ...
- react native 问题点
问题点一:安装了react-native-vector-icons后,编译出错 版本: "react": "16.2.0", "react-nativ ...
- .Net WebAPI 增加Swagger
第一部分:创建项目 选择Web/ASP.NET Web Application 这里我选择的是WebAPI,并且增加MVC和Web API,权限部分选择无权限 第二部分:增加EF连接 因为项目需要连接 ...
- 创建一个支持ES6的Nodejs项目
文章来自于:https://www.codementor.io/iykyvic/writing-your-nodejs-apps-using-es6-6dh0edw2o 第一步:创建项目文件夹并初始化 ...
- Thinkphp命名规范
1.类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php: 2.类 ...
- CodeForces 732E Sockets
贪心,优先队列. 将$s$按照从小到大的顺序扔进优先队列.从小的开始与电脑配对,如果找不到合适的电脑,那么再变小一次,直到找到与之配对的电脑或者作废. #pragma comment(linker, ...