aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rdp_drdynvc.c
diff options
context:
space:
mode:
authorDavid Fort <contact@hardening-consulting.com>2023-11-23 15:10:48 +0100
committerDavid Fort <contact@hardening-consulting.com>2023-11-27 09:59:00 +0100
commit653d79ef0939f5cf3b77e0fdd8b9b8898d70d4a3 (patch)
tree84760f890139ef3db9167400dd5052a24ec857d1 /epan/dissectors/packet-rdp_drdynvc.c
parentea259b8841eb74ba9dad0b9191c3332debd67fa6 (diff)
rdp: add preliminary RDPEAR channel support
Add the basic parsing for the redirected authentication channel also called remote credential guard.
Diffstat (limited to 'epan/dissectors/packet-rdp_drdynvc.c')
-rw-r--r--epan/dissectors/packet-rdp_drdynvc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rdp_drdynvc.c b/epan/dissectors/packet-rdp_drdynvc.c
index 1cdb288003..469dbe0c22 100644
--- a/epan/dissectors/packet-rdp_drdynvc.c
+++ b/epan/dissectors/packet-rdp_drdynvc.c
@@ -60,6 +60,7 @@ dissector_handle_t egfx_handle;
dissector_handle_t rail_handle;
dissector_handle_t cliprdr_handle;
dissector_handle_t snd_handle;
+dissector_handle_t ear_handle;
#define PNAME "RDP Dynamic Channel Protocol"
#define PSNAME "DRDYNVC"
@@ -494,6 +495,9 @@ dissect_rdp_drdynvc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
case DRDYNVC_CHANNEL_AUDIOUT:
call_dissector(snd_handle, tvb_new_subset_remaining(tvb, offset), pinfo, tree);
break;
+ case DRDYNVC_CHANNEL_AUTH_REDIR:
+ call_dissector(ear_handle, tvb_new_subset_remaining(tvb, offset), pinfo, tree);
+ break;
default:
proto_tree_add_item(tree, hf_rdp_drdynvc_data, tvb, offset, -1, ENC_NA);
break;
@@ -608,6 +612,9 @@ dissect_rdp_drdynvc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree,
case DRDYNVC_CHANNEL_AUDIOUT:
call_dissector(snd_handle, targetTvb, pinfo, tree);
break;
+ case DRDYNVC_CHANNEL_AUTH_REDIR:
+ call_dissector(ear_handle, targetTvb, pinfo, tree);
+ break;
default:
proto_tree_add_item(tree, hf_rdp_drdynvc_data, targetTvb, 0, -1, ENC_NA);
break;
@@ -848,6 +855,7 @@ void proto_reg_handoff_drdynvc(void) {
rail_handle = find_dissector("rdp_rail");
cliprdr_handle = find_dissector("rdp_cliprdr");
snd_handle = find_dissector("rdp_snd");
+ ear_handle = find_dissector("rdp_ear");
}
/*