zoukankan      html  css  js  c++  java
  • 通过Ollydbg定位私有协议通信明文

    简介:做安全的筒子经常会碰到这样的问题,当向要分析通信协议的时候往往都会有加密通信保护,对于SSL通信我们可以使用SSL劫持,但对于应用层面的加密就显得无能为力了,最好的办法就是调试应用,在应用内部去把明文通信数据包挖出来做分析。

    1、  向开发工程师了解获取明文协议数据的入口函数,此处为ssl_session::handle_read

    2、  在本机安装和启动LBS后台服务程序。方法:先后点击install.batstart.bat。启动完成后任务管理器可以看到LBS的进程,通过netstat也可以看到监听端口为8555

    clip_image002

    clip_image004

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

    clip_image006

    clip_image008

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

    clip_image010

    clip_image012

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

    clip_image014

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

    clip_image016

    7、  将某设备的LBS设置为本机IPLBS端口(8555),

    7.1telnet到设备,账户为admin/设备验证码。

    7.2、执行命令:setLBS IP:port

    7.3、执行命令:reboot

    8、  在设备重启的过程中将向本机发送注册信令,该信令将触发ssl_session::handle_read函数的执行和OD的断点。

    9、  在栈区的上下文中需找指向信令数据的指针。

    clip_image018

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

    clip_image020

    clip_image022

  • 相关阅读:
    Socket的使用
    TCP/IP协议、UDP协议、 Http协议
    使用或不使用递归的二分查找
    冒泡排序、选择排序、直接插入排序
    Scanner的使用 猜数字 +猜电影
    序列化与反序列化
    构造者模式
    内存访问
    实践:使用socket实现跨进程通信(二:多并发)(C语言)
    实践:使用socket实现跨进程通信(C语言)
  • 原文地址:https://www.cnblogs.com/fishou/p/4175528.html
Copyright © 2011-2022 走看看