论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Oracle
›
从零写一个兼容MySQL/Oracle的Proxy中件间(一)《初识O ...
从零写一个兼容MySQL/Oracle的Proxy中件间(一)《初识Oracle的通信协议》 ...
宝塔山
论坛元老
|
2023-2-3 16:49:51
|
显示全部楼层
|
阅读模式
楼主
主题
1025
|
帖子
1025
|
积分
3075
0.前言
MySQL由于开源的原因,有各式各样的中件间Proxy ,极大的丰富了做高可用或迁移的方案,习惯了MySQL生态圈的灵活和便利,Oracle官方不开源代码和协议,没有中间件proxy,显得很笨重。
比如以下的方案就会很不好办
:
实时抓取Oralce的访问SQL日志
慢日志捕获和收集
高可用中件间Proxy在故障时自动切换
SQL访问黑名单。
基于以上的一些困难,打算自己从头写一个兼容MySQL/Oracle的中件间,希望从中件间层同时支持两种数据库。方便我们做数据库的高可用管理和从Oracle到MySQL的迁移。
这个计划是在年前的2021年最后一次组内会议上提出来的构想。元旦放假期间我就一直在想这事怎么搞
问题的难点在于:
Oracle的client/server端通信没有文档的说明,没人能说清楚Oracle是怎么交互的
。
这两天用最原始的方法抓包,一个包一个包的去看,找到包的规律,分析它的通信协议。竟然发现这个方法可行
1.步骤
1.写一个Python脚本去连接(192.168.1.1:1521)上的Oracle
#!/usr/bin/env python
## coding: utf-8
import cx_Oracle
conn = cx_Oracle.connect('dboopreader/dbooppassword@192.168.1.1:1521/testdb')
print("连接成功")
conn.close()
print("连接关闭")
复制代码
通过wireshark抓包,发现一次简单的连接,有38个通信包。
2.捕获这些包,发现它的规律
挨个点开这些包,发现了一些有用的信息,然后发现wireshark的包看起来不方便,
本地模拟一个端口1522端口,劫持这些请求,打印出来,得到如下这种的tcp包
[code]抓到:127.0.0.1到192.168.1.1的包二进制展示如下:0.0x7 0xaf 0x0 0x0 0x6 0x0 0x0 0x0 0x0 0x0 0x2 0x54 0x3 0x54 0x3 0x3 0x2a 0x6 0x1 0x1 20.0x1 0x6f 0x1 0x1 0xc 0x1 0x1 0x1 0x1 0x1 0x1 0x1 0x7f 0xff 0x3 0xe 0x3 0x3 0x1 0x1 40.0xff 0x1 0xff 0xff 0x1 0xb 0x1 0x1 0xff 0x1 0x6 0xa 0xe2 0x1 0x7f 0x5 0xf 0xf 0xd 0x7 60.0x2 0x1 0x0 0x0 0x18 0x0 0x7 0x80 0x0 0x0 0x0 0x3c 0x3c 0x3c 0x80 0x0 0x0 0x0 0x0 0x0 80.0x0 0x20 0xd0 0x7 0x0 0x1 0x0 0x1 0x0 0x1 0x0 0x0 0x0 0x2 0x0 0x2 0x0 0xa 0x0 0x0 100.0x0 0x8 0x0 0x8 0x0 0x1 0x0 0x0 0x0 0xc 0x0 0xc 0x0 0xa 0x0 0x0 0x0 0x17 0x0 0x17 120.0x0 0x1 0x0 0x0 0x0 0x18 0x0 0x18 0x0 0x1 0x0 0x0 0x0 0x19 0x0 0x19 0x0 0x18 0x0 0x19 140.0x0 0x1 0x0 0x0 0x0 0x1a 0x0 0x1a 0x0 0x19 0x0 0x1a 0x0 0x1 0x0 0x0 0x0 0x1b 0x0 0x1b 160.0x0 0xa 0x0 0x1b 0x0 0x1 0x0 0x0 0x0 0x1c 0x0 0x1c 0x0 0x16 0x0 0x1c 0x0 0x1 0x0 0x0 180.0x0 0x1d 0x0 0x1d 0x0 0x17 0x0 0x1d 0x0 0x1 0x0 0x0 0x0 0x1e 0x0 0x1e 0x0 0x17 0x0 0x1e 200.0x0 0x1 0x0 0x0 0x0 0x1f 0x0 0x1f 0x0 0x19 0x0 0x1f 0x0 0x1 0x0 0x0 0x0 0x20 0x0 0x20 220.0x0 0xc 0x0 0x20 0x0 0x1 0x0 0x0 0x0 0x21 0x0 0x21 0x0 0xc 0x0 0x21 0x0 0x1 0x0 0x0 240.0x0 0xa 0x0 0xa 0x0 0x1 0x0 0x0 0x0 0xb 0x0 0xb 0x0 0x1 0x0 0x0 0x0 0x28 0x0 0x28 260.0x0 0x1 0x0 0x0 0x0 0x29 0x0 0x29 0x0 0x1 0x0 0x0 0x0 0x75 0x0 0x75 0x0 0x1 0x0 0x0 280.0x0 0x78 0x0 0x78 0x0 0x1 0x0 0x0 0x1 0x22 0x1 0x22 0x0 0x1 0x0 0x0 0x1 0x23 0x1 0x23 300.0x0 0x1 0x1 0x23 0x0 0x1 0x0 0x0 0x1 0x24 0x1 0x24 0x0 0x1 0x0 0x0 0x1 0x25 0x1 0x25 320.0x0 0x1 0x0 0x0 0x1 0x26 0x1 0x26 0x0 0x1 0x0 0x0 0x1 0x2a 0x1 0x2a 0x0 0x1 0x0 0x0 340.0x1 0x2b 0x1 0x2b 0x0 0x1 0x0 0x0 0x1 0x2c 0x1 0x2c 0x0 0x1 0x0 0x0 0x1 0x2d 0x1 0x2d 360.0x0 0x1 0x0 0x0 0x1 0x2e 0x1 0x2e 0x0 0x1 0x0 0x0 0x1 0x2f 0x1 0x2f 0x0 0x1 0x0 0x0 380.0x1 0x30 0x1 0x30 0x0 0x1 0x0 0x0 0x1 0x31 0x1 0x31 0x0 0x1 0x0 0x0 0x1 0x32 0x1 0x32 400.0x0 0x1 0x0 0x0 0x1 0x33 0x1 0x33 0x0 0x1 0x0 0x0 0x1 0x34 0x1 0x34 0x0 0x1 0x0 0x0 420.0x1 0x35 0x1 0x35 0x0 0x1 0x0 0x0 0x1 0x36 0x1 0x36 0x0 0x1 0x0 0x0 0x1 0x37 0x1 0x37 440.0x0 0x1 0x0 0x0 0x1 0x38 0x1 0x38 0x0 0x1 0x0 0x0 0x1 0x39 0x1 0x39 0x0 0x1 0x0 0x0 460.0x1 0x3b 0x1 0x3b 0x0 0x1 0x0 0x0 0x1 0x3c 0x1 0x3c 0x0 0x1 0x0 0x0 0x1 0x3d 0x1 0x3d 480.0x0 0x1 0x0 0x0 0x1 0x3e 0x1 0x3e 0x0 0x1 0x0 0x0 0x1 0x3f 0x1 0x3f 0x0 0x1 0x0 0x0 500.0x1 0x40 0x1 0x40 0x0 0x1 0x0 0x0 0x1 0x41 0x1 0x41 0x0 0x1 0x0 0x0 0x1 0x42 0x1 0x42 520.0x0 0x1 0x0 0x0 0x1 0x43 0x1 0x43 0x0 0x1 0x0 0x0 0x1 0x47 0x1 0x47 0x0 0x1 0x0 0x0 540.0x1 0x48 0x1 0x48 0x0 0x1 0x0 0x0 0x1 0x49 0x1 0x49 0x0 0x1 0x0 0x0 0x1 0x4b 0x1 0x4b 560.0x0 0x1 0x0 0x0 0x1 0x4d 0x1 0x4d 0x0 0x1 0x0 0x0 0x1 0x4e 0x1 0x4e 0x0 0x1 0x0 0x0 580.0x1 0x4f 0x1 0x4f 0x0 0x1 0x0 0x0 0x1 0x50 0x1 0x50 0x0 0x1 0x0 0x0 0x1 0x51 0x1 0x51 600.0x0 0x1 0x0 0x0 0x1 0x52 0x1 0x52 0x0 0x1 0x0 0x0 0x1 0x53 0x1 0x53 0x0 0x1 0x0 0x0 620.0x1 0x54 0x1 0x54 0x0 0x1 0x0 0x0 0x1 0x55 0x1 0x55 0x0 0x1 0x0 0x0 0x1 0x56 0x1 0x56 640.0x0 0x1 0x0 0x0 0x1 0x57 0x1 0x57 0x0 0x1 0x1 0x57 0x0 0x1 0x0 0x0 0x1 0x58 0x1 0x58 660.0x0 0x1 0x0 0x0 0x1 0x59 0x1 0x59 0x0 0x1 0x0 0x0 0x1 0x5a 0x1 0x5a 0x0 0x1 0x0 0x0 680.0x1 0x5c 0x1 0x5c 0x0 0x1 0x0 0x0 0x1 0x5d 0x1 0x5d 0x0 0x1 0x0 0x0 0x1 0x62 0x1 0x62 700.0x0 0x1 0x0 0x0 0x1 0x63 0x1 0x63 0x0 0x1 0x0 0x0 0x1 0x67 0x1 0x67 0x0 0x1 0x0 0x0 720.0x1 0x6b 0x1 0x6b 0x0 0x1 0x0 0x0 0x1 0x7c 0x1 0x7c 0x0 0x1 0x0 0x0 0x1 0x7d 0x1 0x7d 740.0x0 0x1 0x0 0x0 0x1 0x7e 0x1 0x7e 0x0 0x1 0x0 0x0 0x1 0x7f 0x1 0x7f 0x0 0x1 0x0 0x0 760.0x1 0x80 0x1 0x80 0x0 0x1 0x0 0x0 0x1 0x81 0x1 0x81 0x0 0x1 0x0 0x0 0x1 0x82 0x1 0x82 780.0x0 0x1 0x0 0x0 0x1 0x83 0x1 0x83 0x0 0x1 0x0 0x0 0x1 0x84 0x1 0x84 0x0 0x1 0x0 0x0 800.0x1 0x85 0x1 0x85 0x0 0x1 0x0 0x0 0x1 0x86 0x1 0x86 0x0 0x1 0x0 0x0 0x1 0x87 0x1 0x87 820.0x0 0x1 0x0 0x0 0x1 0x89 0x1 0x89 0x0 0x1 0x0 0x0 0x1 0x8a 0x1 0x8a 0x0 0x1 0x0 0x0 840.0x1 0x8b 0x1 0x8b 0x0 0x1 0x0 0x0 0x1 0x8c 0x1 0x8c 0x0 0x1 0x0 0x0 0x1 0x8d 0x1 0x8d 860.0x0 0x1 0x0 0x0 0x1 0x8e 0x1 0x8e 0x0 0x1 0x0 0x0 0x1 0x8f 0x1 0x8f 0x0 0x1 0x0 0x0 880.0x1 0x90 0x1 0x90 0x0 0x1 0x0 0x0 0x1 0x91 0x1 0x91 0x0 0x1 0x0 0x0 0x1 0x94 0x1 0x94 900.0x0 0x1 0x1 0x25 0x0 0x1 0x0 0x0 0x1 0x95 0x1 0x95 0x0 0x1 0x0 0x0 0x1 0x96 0x1 0x96 920.0x0 0x1 0x0 0x0 0x1 0x97 0x1 0x97 0x0 0x1 0x0 0x0 0x1 0x9d 0x1 0x9d 0x0 0x1 0x0 0x0 940.0x1 0x9e 0x1 0x9e 0x0 0x1 0x0 0x0 0x1 0x9f 0x1 0x9f 0x0 0x1 0x0 0x0 0x1 0xa0 0x1 0xa0 960.0x0 0x1 0x0 0x0 0x1 0xa1 0x1 0xa1 0x0 0x1 0x0 0x0 0x1 0xa2 0x1 0xa2 0x0 0x1 0x0 0x0 980.0x1 0xa3 0x1 0xa3 0x0 0x1 0x0 0x0 0x1 0xa4 0x1 0xa4 0x0 0x1 0x0 0x0 0x1 0xa5 0x1 0xa5 1000.0x0 0x1 0x0 0x0 0x1 0xa6 0x1 0xa6 0x0 0x1 0x0 0x0 0x1 0xa7 0x1 0xa7 0x0 0x1 0x0 0x0 1020.0x1 0xa8 0x1 0xa8 0x0 0x1 0x0 0x0 0x1 0xa9 0x1 0xa9 0x0 0x1 0x0 0x0 0x1 0xaa 0x1 0xaa 1040.0x0 0x1 0x0 0x0 0x1 0xab 0x1 0xab 0x0 0x1 0x0 0x0 0x1 0xad 0x1 0xad 0x0 0x1 0x0 0x0 1060.0x1 0xae 0x1 0xae 0x0 0x1 0x0 0x0 0x1 0xaf 0x1 0xaf 0x0 0x1 0x0 0x0 0x1 0xb0 0x1 0xb0 1080.0x0 0x1 0x0 0x0 0x1 0xb1 0x1 0xb1 0x0 0x1 0x0 0x0 0x1 0xc1 0x1 0xc1 0x0 0x1 0x0 0x0 1100.0x1 0xc2 0x1 0xc2 0x0 0x1 0x1 0x25 0x0 0x1 0x0 0x0 0x1 0xc6 0x1 0xc6 0x0 0x1 0x0 0x0 1120.0x1 0xc7 0x1 0xc7 0x0 0x1 0x0 0x0 0x1 0xc8 0x1 0xc8 0x0 0x1 0x0 0x0 0x1 0xc9 0x1 0xc9 1140.0x0 0x1 0x0 0x0 0x1 0xca 0x1 0xca 0x0 0x1 0x1 0x9f 0x0 0x1 0x0 0x0 0x1 0xcb 0x1 0xcb 1160.0x0 0x1 0x1 0xa0 0x0 0x1 0x0 0x0 0x1 0xcc 0x1 0xcc 0x0 0x1 0x1 0xa2 0x0 0x1 0x0 0x0 1180.0x1 0xcd 0x1 0xcd 0x0 0x1 0x1 0xa3 0x0 0x1 0x0 0x0 0x1 0xce 0x1 0xce 0x0 0x1 0x1 0xb1 1200.0x0 0x1 0x0 0x0 0x1 0xcf 0x1 0xcf 0x0 0x1 0x1 0x22 0x0 0x1 0x0 0x0 0x1 0xd2 0x1 0xd2 1220.0x0 0x1 0x0 0x0 0x1 0xd3 0x1 0xd3 0x0 0x1 0x1 0xab 0x0 0x1 0x0 0x0 0x1 0xd4 0x1 0xd4 1240.0x0 0x1 0x0 0x0 0x1 0xd5 0x1 0xd5 0x0 0x1 0x0 0x0 0x1 0xd6 0x1 0xd6 0x0 0x1 0x0 0x0 1260.0x1 0xd7 0x1 0xd7 0x0 0x1 0x0 0x0 0x1 0xd8 0x1 0xd8 0x0 0x1 0x0 0x0 0x1 0xd9 0x1 0xd9 1280.0x0 0x1 0x0 0x0 0x1 0xda 0x1 0xda 0x0 0x1 0x0 0x0 0x1 0xdb 0x1 0xdb 0x0 0x1 0x0 0x0 1300.0x1 0xdc 0x1 0xdc 0x0 0x1 0x0 0x0 0x1 0xdd 0x1 0xdd 0x0 0x1 0x0 0x0 0x1 0xde 0x1 0xde 1320.0x0 0x1 0x0 0x0 0x1 0xdf 0x1 0xdf 0x0 0x1 0x0 0x0 0x1 0xe0 0x1 0xe0 0x0 0x1 0x0 0x0 1340.0x1 0xe1 0x1 0xe1 0x0 0x1 0x0 0x0 0x1 0xe2 0x1 0xe2 0x0 0x1 0x0 0x0 0x1 0xe3 0x1 0xe3 1360.0x0 0x1 0x1 0x6b 0x0 0x1 0x0 0x0 0x1 0xe4 0x1 0xe4 0x0 0x1 0x0 0x0 0x1 0xe5 0x1 0xe5 1380.0x0 0x1 0x0 0x0 0x1 0xe6 0x1 0xe6 0x0 0x1 0x0 0x0 0x1 0xea 0x1 0xea 0x0 0x1 0x0 0x0 1400.0x1 0xeb 0x1 0xeb 0x0 0x1 0x0 0x0 0x1 0xec 0x1 0xec 0x0 0x1 0x0 0x0 0x1 0xed 0x1 0xed 1420.0x0 0x1 0x0 0x0 0x1 0xee 0x1 0xee 0x0 0x1 0x0 0x0 0x1 0xef 0x1 0xef 0x0 0x1 0x0 0x0 1440.0x1 0xf0 0x1 0xf0 0x0 0x1 0x0 0x0 0x1 0xf2 0x1 0xf2 0x0 0x1 0x0 0x0 0x1 0xf3 0x1 0xf3 1460.0x0 0x1 0x0 0x0 0x1 0xf4 0x1 0xf4 0x0 0x1 0x0 0x0 0x1 0xf5 0x1 0xf5 0x0 0x1 0x0 0x0 1480.0x1 0xf6 0x1 0xf6 0x0 0x1 0x0 0x0 0x1 0xfd 0x1 0xfd 0x0 0x1 0x0 0x0 0x1 0xfe 0x1 0xfe 1500.0x0 0x1 0x0 0x0 0x2 0x1 0x2 0x1 0x0 0x1 0x0 0x0 0x2 0x2 0x2 0x2 0x0 0x1 0x0 0x0 1520.0x2 0x4 0x2 0x4 0x0 0x1 0x0 0x0 0x2 0x5 0x2 0x5 0x0 0x1 0x0 0x0 0x2 0x6 0x2 0x6 1540.0x0 0x1 0x0 0x0 0x2 0x7 0x2 0x7 0x0 0x1 0x0 0x0 0x2 0x8 0x2 0x8 0x0 0x1 0x0 0x0 1560.0x2 0x9 0x2 0x9 0x0 0x1 0x0 0x0 0x2 0xa 0x2 0xa 0x0 0x1 0x0 0x0 0x2 0xb 0x2 0xb 1580.0x0 0x1 0x0 0x0 0x2 0xc 0x2 0xc 0x0 0x1 0x0 0x0 0x2 0xd 0x2 0xd 0x0 0x1 0x0 0x0 1600.0x2 0xe 0x2 0xe 0x0 0x1 0x0 0x0 0x2 0xf 0x2 0xf 0x0 0x1 0x0 0x0 0x2 0x10 0x2 0x10 1620.0x0 0x1 0x0 0x0 0x2 0x11 0x2 0x11 0x0 0x1 0x0 0x0 0x2 0x12 0x2 0x12 0x0 0x1 0x0 0x0 1640.0x2 0x13 0x2 0x13 0x0 0x1 0x0 0x0 0x2 0x14 0x2 0x14 0x0 0x1 0x0 0x0 0x2 0x15 0x2 0x15 1660.0x0 0x1 0x0 0x0 0x2 0x16 0x2 0x16 0x0 0x1 0x0 0x0 0x2 0x17 0x2 0x17 0x0 0x1 0x0 0x0 1680.0x2 0x18 0x2 0x18 0x0 0x1 0x0 0x0 0x2 0x19 0x2 0x19 0x0 0x1 0x0 0x0 0x2 0x1a 0x2 0x1a 1700.0x0 0x1 0x0 0x0 0x2 0x1b 0x2 0x1b 0x0 0x1 0x0 0x0 0x2 0x1f 0x2 0x1f 0x0 0x1 0x0 0x0 1720.0x2 0x20 0x2 0x20 0x0 0x1 0x0 0x0 0x2 0x21 0x2 0x21 0x0 0x1 0x0 0x0 0x2 0x22 0x2 0x22 1740.0x0 0x1 0x0 0x0 0x2 0x23 0x2 0x23 0x0 0x1 0x0 0x0 0x2 0x24 0x2 0x24 0x0 0x1 0x0 0x0 1760.0x2 0x25 0x2 0x25 0x0 0x1 0x0 0x0 0x2 0x26 0x2 0x26 0x0 0x1 0x0 0x0 0x2 0x27 0x2 0x27 1780.0x0 0x1 0x0 0x0 0x2 0x28 0x2 0x28 0x0 0x1 0x0 0x0 0x2 0x29 0x2 0x29 0x0 0x1 0x0 0x0 1800.0x2 0x2a 0x2 0x2a 0x0 0x1 0x0 0x0 0x2 0x2b 0x2 0x2b 0x0 0x1 0x0 0x0 0x2 0x2c 0x2 0x2c 1820.0x0 0x1 0x0 0x0 0x2 0x2d 0x2 0x2d 0x0 0x1 0x0 0x0 0x2 0x2e 0x2 0x2e 0x0 0x1 0x0 0x0 1840.0x2 0x2f 0x2 0x2f 0x0 0x1 0x0 0x0 0x2 0x30 0x2 0x30 0x0 0x1 0x0 0x0 0x2 0x31 0x2 0x31 1860.0x0 0x1 0x0 0x0 0x2 0x32 0x2 0x32 0x0 0x1 0x0 0x0 0x2 0x33 0x2 0x33 0x0 0x1 0x0 0x0 1880.0x2 0x34 0x2 0x34 0x0 0x1 0x0 0x0 0x2 0x36 0x2 0x36 0x0 0x1 0x0 0x0 0x2 0x37 0x2 0x37 1900.0x0 0x1 0x0 0x0 0x2 0x38 0x2 0x38 0x0 0x1 0x0 0x0 0x2 0x39 0x2 0x39 0x0 0x1 0x0 0x0 1920.0x2 0x3a 0x2 0x3a 0x0 0x1 0x0 0x0 0x2 0x3b 0x2 0x3b 0x0 0x1 0x0 0x0 0x2 0x3c 0x2 0x3c 1940.0x0 0x1 0x0 0x0 0x2 0x3d 0x2 0x3d 0x0 0x1 0x0 0x0 0x2 0x3e 0x2 0x3e 0x0 0x1 0x0 0x0 1960.0x2 0x3f 0x2 0x3f 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 转换成字符如下:0.¯TT*20.oÿ40.ÿÿÿÿâ60.
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宝塔山
论坛元老
这个人很懒什么都没写!
楼主热帖
Sqlserver2012卸载
Maxwell 一款简单易上手的实时抓取Mysq ...
分布式事务 | 使用DTM 的Saga 模式 ...
哈工大信息安全概论期末复习 ...
WebLogic JNDI注入(CVE-2021-2109) ...
HTTPS基础原理和配置-3
轻量级CI/CD发布部署环境搭建及使用_03 ...
数字IC-1.9 吃透通信协议中状态机的代 ...
[DuckDB] 多核算子并行的源码解析 ...
.NET服务治理之限流中间件-FireflySoft ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
移动端开发
容器及微服务
Mysql
网络安全
快速回复
返回顶部
返回列表