diff options
author | Piotr Krysik <ptrkrysik@gmail.com> | 2017-04-02 17:19:13 +0200 |
---|---|---|
committer | Piotr Krysik <ptrkrysik@gmail.com> | 2017-04-02 17:19:13 +0200 |
commit | a081366dadeeefe385897b845dade73c2d435e11 (patch) | |
tree | b2716222581b6f3cd30e97c23e1b0a0e100cfef1 | |
parent | 8f121c1e7c3e052ffcb63904f56de4eec7741dc2 (diff) |
Quick hack to interpret unencrypted assignment commands
-rwxr-xr-x | include/grgsm/misc_utils/extract_cmc.h | 1 | ||||
-rwxr-xr-x | lib/misc_utils/extract_cmc_impl.cc | 12 | ||||
-rwxr-xr-x | lib/misc_utils/extract_cmc_impl.h | 2 |
3 files changed, 14 insertions, 1 deletions
diff --git a/include/grgsm/misc_utils/extract_cmc.h b/include/grgsm/misc_utils/extract_cmc.h index 7b31564..c768980 100755 --- a/include/grgsm/misc_utils/extract_cmc.h +++ b/include/grgsm/misc_utils/extract_cmc.h @@ -53,6 +53,7 @@ namespace gr { virtual std::vector<int> get_framenumbers() = 0; virtual std::vector<int> get_a5_versions() = 0; virtual std::vector<int> get_start_ciphering() = 0; + virtual std::vector<int> get_assignment_commands() = 0; }; } // namespace gsm diff --git a/lib/misc_utils/extract_cmc_impl.cc b/lib/misc_utils/extract_cmc_impl.cc index 5fa6a6b..9d59736 100755 --- a/lib/misc_utils/extract_cmc_impl.cc +++ b/lib/misc_utils/extract_cmc_impl.cc @@ -40,7 +40,7 @@ namespace gr { gsmtap_hdr * header = (gsmtap_hdr *)message_plus_header; uint8_t * msg_elements = (uint8_t *)(message_plus_header+sizeof(gsmtap_hdr)); - if((msg_elements[3] & 0xF) == 0x6 && msg_elements[4] == 0x35) + if((msg_elements[3] & 0xFF) == 0x06 && msg_elements[4] == 0x35) { int frame_nr = be32toh(header->frame_number); @@ -50,6 +50,11 @@ namespace gr { d_framenumbers.push_back(frame_nr); d_a5_versions.push_back(a5_version); } + if((msg_elements[3] & 0xFF) == 0x06 && msg_elements[4] == 0x2e) + { + int frame_nr = be32toh(header->frame_number); + d_assignment_commands.push_back(frame_nr); + } } std::vector<int> extract_cmc_impl::get_framenumbers() @@ -67,6 +72,11 @@ namespace gr { return d_start_ciphering; } + std::vector<int> extract_cmc_impl::get_assignment_commands() + { + return d_assignment_commands; + } + extract_cmc::sptr extract_cmc::make() { diff --git a/lib/misc_utils/extract_cmc_impl.h b/lib/misc_utils/extract_cmc_impl.h index fe03bc8..5fca80f 100755 --- a/lib/misc_utils/extract_cmc_impl.h +++ b/lib/misc_utils/extract_cmc_impl.h @@ -35,10 +35,12 @@ namespace gr { std::vector<int> d_framenumbers; std::vector<int> d_a5_versions; std::vector<int> d_start_ciphering; + std::vector<int> d_assignment_commands; public: virtual std::vector<int> get_framenumbers(); virtual std::vector<int> get_a5_versions(); virtual std::vector<int> get_start_ciphering(); + virtual std::vector<int> get_assignment_commands(); extract_cmc_impl(); ~extract_cmc_impl(); }; |