Jaafar M. H. Elmirghani

451 papers B 36C 3Journal 231Unranked 179
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Ahmed A. M. Hassan, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2026 J jnl
CoRR
Wafaa B. M. Fadlelmula, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2026 J jnl
IEEE Trans. Commun.
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2025 J jnl
IEEE Trans. Commun.
Hossein Kazemi, Elham Sarbazi, Michael J. Crisp, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Majid Safari, Harald Haas
2025 J jnl
CoRR
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2025 J jnl
IEEE Trans. Commun.
Ahmad Adnan Qidan, Khulood D. Alazwary, Taisir E. H. El-Gorashi, Majid Safari, Harald Haas, Richard V. Penty, Ian H. White, Jaafar M. H. Elmirghani
2025 J jnl
CoRR
Ahmad Adnan Qidan, Khulood D. Alazwary, Taisir E. H. El-Gorashi, Majid Safari, Harald Haas, Richard V. Penty, Ian H. White, Jaafar M. H. Elmirghani
2025 J jnl
CoRR
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Majid Safari, Harald Haas, Richard V. Penty, Ian H. White, Jaafar M. H. Elmirghani
2025 J jnl
IEEE Access
Azza E. A. Eltraify, Randa A. Thabit, Opeyemi O. Ajibola, Wafaa B. M. Fadlelmula, Ahmed A. M. Hassan, Ahrar N. Hamad, Abdelrahman S. Elgamal, Walter Zibusiso Ncube, Harith S. Ibrahim, Mariam Elmirghani, Sanaa Hamid Mohamed, Louise Krug, Greg McSorley, Jaafar M. H. Elmirghani
2025 J jnl
IEEE Trans. Instrum. Meas.
Omar Khalifa, Anas S. Mohammed, Ali Alhejab, Abdelrahman S. Abdelrahman, Ahmed Al-Radhwan, Ruslan Zhagypar, Hesham ElSawy, Nour Kouzayha, Noha Al-Harthi, Jaafar M. H. Elmirghani, Zekeriya Aksoy, Tareq Y. Al-Naffouri
2025 J jnl
CoRR
Wafaa B. M. Fadlelmula, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2025 J jnl
CoRR
Ahmed A. M. Hassan, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2025 conf
VTC2025-Spring
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 conf
ICTON
Abrar S. Alhazmi, Sanaa H. Mohamed, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
Abrar S. Alhazmi, Sanaa H. Mohamed, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
IEEE Trans. Commun.
Elham Sarbazi, Hossein Kazemi, Michael J. Crisp, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Majid Safari, Harald Haas
2024 conf
ICCSPA
Krishnendu S. Tharakan, Omar Khalifa, Hayssam Dahrouj, Nour Kouzayha, Hesham ElSawy, Noha Al-Harthi, Zekeriya Aksoy, Jaafar M. H. Elmirghani, Tareq Y. Al-Naffouri
2024 conf
SM
Yuxiang Liu, Osama Amin, Noha Alharthi, Jaafar M. H. Elmirghani, Ahmed M. Eltawil, Basem Shihada
2024 J jnl
IEEE Internet Things J.
Omar Khalifa, Nour Kouzayha, Mohammed Abdullah Hussaini, Hesham ElSawy, Noha Al-Harthi, Jaafar M. H. Elmirghani, Mansoor Hanif, Tareq Y. Al-Naffouri
2024 conf
ICTON
Mohammed A. Alshahrani, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
Mohammed A. Alshahrani, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 B conf
GLOBECOM
S. M. Mahdi Shahabi, Xiaonan Deng, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
S. M. Mahdi Shahabi, Xiaonan Deng, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2024 conf
ICTON
Ahrar N. Hamad, Walter Zibusiso Ncube, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
Ahrar N. Hamad, Walter Zibusiso Ncube, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 conf
MeditCom
Walter Zibusiso Ncube, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 conf
ICTON
Mohammed Alharthi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
CoRR
Mohammed Alharthi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2024 J jnl
IEEE Access
Ida Syafiza M. Isa, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2023 conf
ICTON
Abdelrahman S. Elgamal, Osama Z. Aletri, Barzan A. Yosuf, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
ICC
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
CoRR
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
BlackSeaCom
Anas S. Mohammed, Omar Khalifa, Ali Alhejab, Abdelrahman S. Abdelrahman, Ahmed Al-Radhwan, Hesham ElSawy, Nour Kouzayha, Noha Al-Harthi, Jaafar M. H. Elmirghani, Mansoor Hanif, Tareq Y. Al-Naffouri
2023 conf
ICTON
Walter Zibusiso Ncube, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
ICTON
Wafaa B. M. Fadlelmula, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
CoRR
Wafaa B. M. Fadlelmula, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
IEEE Trans. Commun.
Mohammad Dehghani Soltani, Hossein Kazemi, Elham Sarbazi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Harald Haas, Majid Safari
2023 conf
ICTON
Yu Zeng, Sanaa H. Mohamed, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
ICTON
Ahmed A. M. Hassan, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2023 J jnl
CoRR
Ahmed A. M. Hassan, Ahmad Adnan Qidan, Taisir Elgorashi, Jaafar M. H. Elmirghani
2023 conf
ICTON
Khulood D. Alazwary, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
ICTON
Yu Zeng, Sanaa H. Mohamed, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 conf
ICTON
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
CoRR
Ahrar N. Hamad, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
IEEE Wirel. Commun.
Mohammad Dehghani Soltani, Ahmad Adnan Qidan, Shenjie Huang, Barzan A. Yosuf, Sanaa H. Mohamed, Ravinder Singh, Yi Liu, Wajahat Ali, Rui Chen, Hossein Kazemi, Elham Sarbazi, Bela Berde, Dominique Chiaroni, Bastien Béchadergue, Fathi Abdeldayem, Hardik Soni, Jose Tabu, Micheline Perrufel, Nikola Serafimovski, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Michael J. Crisp, Richard V. Penty, Ian H. White, Harald Haas, Majid Safari
2023 conf
ICTON
Mohammed Alharthi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2023 J jnl
CoRR
Mohammed Alharthi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
IEEE Trans. Commun.
Hossein Kazemi, Elham Sarbazi, Mohammad Dehghani Soltani, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Majid Safari, Harald Haas
2022 conf
ICC
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
IEEE/ACM Trans. Netw.
Zaid H. Nasralla, Taisir E. H. El-Gorashi, Ali Hammadi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2022 J jnl
IEEE Access
Jaber Almutairi, Mohammad Aldossary, Hatem A. Alharbi, Barzan A. Yosuf, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Elham Sarbazi, Hossein Kazemi, Michael J. Crisp, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Majid Safari, Harald Haas
2022 J jnl
IEEE Trans. Green Commun. Netw.
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Wafaa B. M. Fadlelmula, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 conf
MeditCom
Mohammed Moawad Alenazi, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Mohammed Moawad Alenazi, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
IEEE Access
Hatem A. Alharbi, Barzan A. Yosuf, Mohammad Aldossary, Jaber Almutairi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Hatem A. Alharbi, Barzan A. Yosuf, Mohammad Aldossary, Jaber Almutairi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Abdullah M. Alqahtani, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 conf
MeditCom
Mohammed Alharthi, Sanaa H. Mohamed, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Mohammed Alharthi, Sanaa H. Mohamed, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Mohammad Dehghani Soltani, Hossein Kazemi, Elham Sarbazi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Harald Haas, Majid Safari
2022 B conf
NetSoft
Abrar S. Alhazmi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Abrar S. Alhazmi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 B conf
NetSoft
Walter Zibusiso Ncube, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
IEEE Access
Fatemah S. Behbehani, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 conf
ICC Workshops
Khulood D. Alazwary, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Ahmed A. M. Hassan, Ahmad Adnan Qidan, Mansourah K. A. Aljohani, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2022 J jnl
Proc. IEEE
Mohammad Dehghani Soltani, Elham Sarbazi, Nikolaos Bamiedakis, Priyanka de Souza, Hossein Kazemi, Jaafar M. H. Elmirghani, Ian H. White, Richard V. Penty, Harald Haas, Majid Safari
2022 J jnl
IEEE J. Sel. Areas Commun.
Geoffrey Ye Li, Walid Saad, Ayfer Özgür, Peter Kairouz, Zhijin Qin, Jakob Hoydis, Zhu Han, Deniz Gündüz, Jaafar M. H. Elmirghani
2022 J jnl
CoRR
Mohammad Dehghani Soltani, Hossein Kazemi, Elham Sarbazi, Ahmad Adnan Qidan, Barzan A. Yosuf, Sanaa H. Mohamed, Ravinder Singh, Bela Berde, Dominique Chiaroni, Bastien Béchadergue, Fathi Abdeldayem, Hardik Soni, Jose Tabu, Micheline Perrufel, Nikola Serafimovski, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Richard V. Penty, Ian H. White, Harald Haas, Majid Safari
2022 J jnl
IEEE J. Sel. Areas Commun.
Geoffrey Ye Li, Walid Saad, Ayfer Özgür, Peter Kairouz, Zhijin Qin, Jakob Hoydis, Zhu Han, Deniz Gündüz, Jaafar M. H. Elmirghani
2022 conf
PHOTOPTICS
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
CSCN
Abrar S. Alhazmi, Sanaa H. Mohamed, Osama Zwaid Alsulami, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abrar S. Alhazmi, Sanaa H. Mohamed, Osama Zwaid Alsulami, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
CSCN
Abdullah M. Alqahtani, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abdullah M. Alqahtani, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 C conf
ISNCC
Abdullah M. Alqahtani, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abdullah M. Alqahtani, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
e-Energy
Barzan A. Yosuf, Sanaa H. Mohamed, Mohammed Moawad Alenazi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Barzan A. Yosuf, Sanaa H. Mohamed, Mohammed Moawad Alenazi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
WF-IoT
Mohammed Moawad Alenazi, Barzan A. Yosuf, Sanaa Hamid, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Mohammed Moawad Alenazi, Barzan A. Yosuf, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
IEEE Access
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Khulood D. Alazwary, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abrar S. Alhazmi, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Ahmed N. Al-Quzweeni, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
CSCN
Mohammed Alharthi, Sanaa H. Mohamed, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Mohammed Alharthi, Sanaa H. Mohamed, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Fatemah S. Behbehani, Taisir Elgorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abdelrahman S. Elgamal, Osama Zwaid Alsulami, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Khulood D. Alazwary, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 conf
CCECE
Abdelrahman S. Elgamal, Osama Zwaid Alsulami, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Abdelrahman S. Elgamal, Osama Zwaid Alsulami, Ahmad Adnan Qidan, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
CoRR
Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2021 B conf
GLOBECOM
Ahmad Adnan Qidan, Máximo Morales Céspedes, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2021 J jnl
IEEE J. Sel. Areas Commun.
Geoffrey Ye Li, Walid Saad, Ayfer Özgür, Peter Kairouz, Zhijin Qin, Jakob Hoydis, Zhu Han, Deniz Gündüz, Jaafar M. H. Elmirghani
2021 J jnl
IEEE J. Sel. Areas Commun.
Geoffrey Ye Li, Walid Saad, Ayfer Özgür, Peter Kairouz, Zhijin Qin, Jakob Hoydis, Zhu Han, Deniz Gündüz, Jaafar M. H. Elmirghani
2021 J jnl
J. Sens. Actuator Networks
Konstantinos Koufos, Karim E. I. Haloui, Mehrdad Dianati, Matthew D. Higgins, Jaafar M. H. Elmirghani, Muhammad Ali Imran, Rahim Tafazolli
2021 conf
ICC
Ahmad Adnan Qidan, Máximo Morales Céspedes, Ana García Armada, Jaafar M. H. Elmirghani
2020 conf
ICTON
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Randa A. Thabit, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Randa A. Thabit, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Sarah O. M. Saeed, Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Mohammed T. Alresheedi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Sarah O. M. Saeed, Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Mohammed T. Alresheedi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Zaid H. Nasralla, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Asuquo A. Okon, Ibrahim Elgendi, Olusegun S. Sholiyi, Jaafar M. H. Elmirghani, Abbas Jamalipour, Kumudu S. Munasinghe
2020 J jnl
IEEE Netw.
Asuquo A. Okon, Nishant Jagannath, Ibrahim Elgendi, Jaafar M. H. Elmirghani, Abbas Jamalipour, Kumudu S. Munasinghe
2020 conf
ICTON
Wafaa B. M. Fadlelmula, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Wafaa B. M. Fadlelmula, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Barzan A. Yosuf, Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Abrar S. Alhazmi, Osama Zwaid Alsulami, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Abrar S. Alhazmi, Osama Zwaid Alsulami, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Yu Zeng, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Yu Zeng, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Osama Zwaid Alsulami, Khulood D. Alazwary, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Ida Syafiza M. Isa, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Ida Syafiza M. Isa, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Zaineb T. Al-Azez, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Mohammed Moawad Alenazi, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Mohammed Moawad Alenazi, Barzan A. Yosuf, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Rui Ma, Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Rui Ma, Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Amal A. Alahmadi, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani, Susan Grant-Muller, David Hutchison, Andreas Mauthe, Mehrdad Dianati, Carsten Maple, Laurent Lefèvre, A. Lason
2020 conf
ICTON
Osama Zwaid Alsulami, Mansourah K. A. Aljohani, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Khulood D. Alazwary, Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Khulood D. Alazwary, Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Safwan Hafeedh Younus, Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Mansourah K. A. Aljohani, Osama Zwaid Alsulami, Khulood D. Alazwary, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Mansourah K. A. Aljohani, Osama Zwaid Alsulami, Khulood D. Alazwary, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Fatemah S. Behbehani, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Fatemah S. Behbehani, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2020 conf
6G SUMMIT
Osama Zwaid Alsulami, Amal A. Alahmadi, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Abdullah M. Alqahtani, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Abdullah M. Alqahtani, Sanaa H. Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Sarah O. M. Saeed, Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Mohammed T. Alresheedi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Sarah O. M. Saeed, Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Mohammed T. Alresheedi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Ida Syafiza M. Isa, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
IEEE Access
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2020 conf
ICTON
Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Osama Zwaid Alsulami, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Jaafar M. H. Elmirghani, Hatem A. Alharbi, Azza E. A. Eltraify, Sanaa Hamid Mohamed, Barzan A. Yosuf, Taisir E. H. El-Gorashi
2020 conf
ICTON
Azza E. A. Eltraify, Sanaa Hamid Mohamed, Jaafar M. H. Elmirghani
2020 J jnl
CoRR
Azza E. A. Eltraify, Sanaa Hamid Mohamed, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Aubida A. Al-Hameed, Safwan Hafeedh Younus, Ahmed Taha Hussein, Mohammed Thamer Alresheedi, Jaafar M. H. Elmirghani
2019 conf
CSCN
Osama Zwaid Alsulami, Mohamed O. I. Musa, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Veh. Technol. Mag.
Klaus David, Jaafar M. H. Elmirghani, Harald Haas, Xiaohu You
2019 conf
ICTON
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Fatemah S. Behbehani, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Zaineb T. Al-Azez, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Amal A. Alahmadi, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Amal A. Alahmadi, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Rui Ma, Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Rui Ma, Amal A. Alahmadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Yu Zeng, Ahmed N. Al-Quzweeni, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Ida Syafiza M. Isa, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Ida Syafiza M. Isa, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Yu Zeng, Ahmed N. Al-Quzweeni, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Fatemah S. Behbehani, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2019 conf
ICTON
Mohamad Bin Abdull Halim, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Mohamad Bin Abdull Halim, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
CSE/EUC
Osama Zwaid Alsulami, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Aubida A. Al-Hameed, Safwan Hafeedh Younus, Ahmed Taha Hussein, Mohammed Thamer Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Osama Zwaid Alsulami, Amal A. Alahmadi, Sarah O. M. Saeed, Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 conf
CSCN
Osama Zwaid Alsulami, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Ahmed N. Al-Quzweeni, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Sarah O. M. Saeed, Sanaa Hamid Mohamed, Osama Zwaid Alsulami, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Safwan Hafeedh Younus, Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed Thamer Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IEEE Access
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
IET Cyper-Phys. Syst.: Theory & Appl.
Etinosa Ekomwenrenren, Hatem A. Alharbi, Taisir Elgorashi, Jaafar M. H. Elmirghani, Petros Aristidou
2019 conf
ICTON
Azza E. A. Eltraify, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Azza E. A. Eltraify, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2019 conf
StICT
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2019 conf
ICTON
Osama Zwaid Alsulami, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 conf
INFOCOM Workshops
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Safwan Hafeedh Younus, Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Randa A. T. Alani, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 J jnl
CoRR
Randa A. T. Alani, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Osama Zwaid Alsulami, Mohamed O. I. Musa, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 conf
ICTON
Mansourah K. A. Aljohani, Mohamed O. I. Musa, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2019 J jnl
IET Commun.
Safwan Hafeedh Younus, Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Esam M. Almohimmah, Mohammed T. Alresheedi, Ahmad Fauzi Abas, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
Comput. Networks
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
JOCN
Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Ida Syafiza M. Isa, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Ida Syafiza M. Isa, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2018 conf
ICTON
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
IEEE Trans. Netw. Serv. Manag.
Ali M. Al-Salim, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Zaineb T. Al-Azez, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir Elgorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Barzan A. Yosuf, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2018 conf
WOCC
Haider Qays Al-Shammari, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
A. E. A. Eltraify, Mohamed O. I. Musa, Ahmed N. Al-Quzweeni, Jaafar M. H. Elmirghani
2018 J jnl
JOCN
Jaafar M. H. Elmirghani, Thierry Klein, K. Hinton, Leonard Nonde, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Xiaowen Dong
2018 J jnl
CoRR
Ali M. Al-Salim, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2018 conf
ICTON
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Safwan Hafeedh Younus, Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Opeyemi O. Ajibola, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Ahmed N. Al-Quzweeni, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Mohammed S. Hadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 conf
ICTON
Hatem A. Alharbi, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Hatem A. Alharbi, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2018 J jnl
CoRR
Safwan Hafeedh Younus, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2017 J jnl
IEEE Access
Safwan Hafeedh Younus, Ahmed Taha Hussein, Mohammed Thamer Alresheedi, Jaafar M. H. Elmirghani
2017 conf
NOF
Amal A. Alahmadi, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2017 J jnl
JOCN
Mohamed O. I. Musa, Taisir Elgorashi, Jaafar M. H. Elmirghani
2017 conf
OFC
Jaafar M. H. Elmirghani, Leonard Nonde, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Xiaowen Dong, K. Hinton, Thierry Klein
2017 J jnl
Veh. Commun.
Samaneh Igder, Samya Bhattacharya, Bilal R. Qazi, Hamdi Idjmayyel, Jaafar M. H. Elmirghani
2017 conf
ICTON
Hatem A. Alharbi, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Jaafar M. H. Elmirghani
2017 J jnl
IEEE Commun. Mag.
Liangping Ma, Charles L. Despins, Jaafar M. H. Elmirghani, Thierry Klein, Iti Saha Misra, Leo Hwa Chiang, Ewell Tan
2017 J jnl
IEEE Syst. J.
Jinsong Wu, Richard T. Watson, Raffaele Bolla, Athanassios Manikas, Mounir Hamdi, Jaafar M. H. Elmirghani
2017 conf
ISWCS
Raymundo Ramirez Gutierrez, Li Zhang, Lie-Liang Yang, Jaafar M. H. Elmirghani
2017 conf
ICTON
Sanaa Hamid Mohamed, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2017 conf
ICTON
Randa A. T. Alani, Ali Hammadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2017 J jnl
Veh. Commun.
George A. Audu, Samya Bhattacharya, Adnan Muhtar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2017 J jnl
Veh. Commun.
Samya Bhattacharya, Bilal R. Qazi, Adnan Muhtar, Wanod Kumar, Jaafar M. H. Elmirghani
2017 J jnl
IEEE Commun. Mag.
Harvey Freeman, Jaafar M. H. Elmirghani, Charles L. Despins
2017 conf
ICTON
Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Safwan Hafeedh Younus, Jaafar M. H. Elmirghani
2017 J jnl
IET Commun.
Mohammed T. Alresheedi, Ahmed Taha Hussein, Jaafar M. H. Elmirghani
2017 conf
ICTON
Safwan Hafeedh Younus, Jaafar M. H. Elmirghani
2016 conf
ICTON
Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Ahmed N. Al-Quzweeni, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Aubida A. Al-Hameed, Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2016 J jnl
IEEE Trans. Veh. Technol.
Raymundo Ramirez Gutierrez, Li Zhang, Jaafar M. H. Elmirghani
2016 J jnl
IEEE Trans. Commun.
Maryam Hafeez, Jaafar M. H. Elmirghani
2016 conf
NGMAST
Samaneh Igder, Samya Bhattacharya, Jaafar M. H. Elmirghani
2016 conf
ICTON
Zaineb T. Al-Azez, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 B conf
CNSM
Leonard Nonde, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Howraa M. Mohammad Ali, Ali M. Al-Salim, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Ali Hammadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 J jnl
JOCN
Ahmed Taha Hussein, Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Ali M. Al-Salim, Howraa M. Mohammad Ali, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 J jnl
IEEE Trans. Commun.
Mohammed Thamer Alresheedi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Mohammed T. Alresheedi, Ahmed Taha Hussein, Jaafar M. H. Elmirghani
2016 conf
ICTON
Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 J jnl
Wirel. Commun. Mob. Comput.
Amar H. Kabashi, Jaafar M. H. Elmirghani
2016 conf
ICTON
Zaid H. Nasralla, Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2016 conf
ONDM
Zaid H. Nasralla, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2016 conf
ICTON
Ali Hammadi, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2016 conf
NGMAST
Samaneh Igder, Samya Bhattacharya, Bilal R. Qazi, Jaafar M. H. Elmirghani
2016 conf
NGMAST
George A. Audu, Samya Bhattacharya, Jaafar M. H. Elmirghani
2016 B conf
GLOBECOM
Leonard Nonde, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 J jnl
JOCN
Ahmed Taha Hussein, Jaafar M. H. Elmirghani
2015 J jnl
IET Commun.
Ignacio Julio García Zuazola, Leire Azpilicueta, Ashwani Sharma, Hugo Landaluce, Francisco Falcone, Ignacio Angulo, Asier Perallos, William G. Whittow, Jaafar M. H. Elmirghani, John C. Batchelor
2015 B conf
GLOBECOM
Leonard Nonde, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
ICTON
Mohammed A. Alhartomi, Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2015 conf
ICTON
Ali M. Al-Salim, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
ICTON
Mohamed O. I. Musa, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
ICTON
Ahmed N. Al-Quzweeni, Taisir E. H. El-Gorashi, Leonard Nonde, Jaafar M. H. Elmirghani
2015 conf
NGMAST
Zaid H. Nasralla, Taisir E. H. El-Gorashi, Mohamed O. I. Musa, Jaafar M. H. Elmirghani
2015 J jnl
IEEE Commun. Mag.
Yabin Ye, Felipe Jiménez Arribas, Jaafar M. H. Elmirghani, Filip Idzikowski, Jorge López Vizcaíno, Paolo Monti, Francesco Musumeci, Achille Pattavina, Ward Van Heddeghem
2015 J jnl
IEEE J. Sel. Areas Commun.
Maryam Hafeez, Jaafar M. H. Elmirghani
2015 conf
ICTON
Ali Hammadi, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
ICTON
Ahmed Taha Hussein, Jaafar M. H. Elmirghani
2015 J jnl
JOCN
Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2015 conf
NGMAST
Samaneh Igder, Hamdi Idjmayyel, Bilal R. Qazi, Samya Bhattacharya, Jaafar M. H. Elmirghani
2015 conf
ICC
Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
CloudNet
Zaineb T. Al-Azez, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2015 conf
NGMAST
George A. Audu, Samya Bhattacharya, Jaafar M. H. Elmirghani
2014 J jnl
IEEE Trans. Veh. Technol.
Wanod Kumar, Samya Bhattacharya, Bilal R. Qazi, Jaafar M. H. Elmirghani
2014 conf
ICTON
Leonard Nonde, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2014 conf
OnlineGreenComm
Jaafar M. H. Elmirghani, Thierry Klein, K. Hinton, Taisir E. H. El-Gorashi, Ahmed Q. Lawey, Xiaowen Dong
2013 conf
EW
Raymundo Ramirez Gutierrez, Li X. Zhang, Jaafar M. H. Elmirghani
2013 J jnl
J. High Speed Networks
Niemah I. Osman, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2013 conf
ICC
Maryam Hafeez, Jaafar M. H. Elmirghani
2013 conf
AINA Workshops
Hamdi Idjmayyel, Bilal R. Qazi, Jaafar M. H. Elmirghani
2013 conf
ICC
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2013 conf
GLOBECOM Workshops
Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2013 conf
ICC
Adnan Muhtar, Bilal R. Qazi, Samya Bhattacharya, Jaafar M. H. Elmirghani
2013 conf
ICC
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2012 conf
ICC
Wanod Kumar, Samya Bhattacharya, Bilal R. Qazi, Jaafar M. H. Elmirghani
2012 J jnl
IEEE J. Sel. Areas Commun.
Maryam Hafeez, Jaafar M. H. Elmirghani
2012 B conf
IWCMC
Raymundo Ramirez Gutierrez, Li Zhang, Jaafar M. H. Elmirghani, Ali F. Almutairi
2012 B conf
IWCMC
Imad E. Ahmed, Bilal R. Qazi, Jaafar M. H. Elmirghani
2012 J jnl
J. Networks
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2012 J jnl
IET Commun.
Wei Feng, Li Zhang, Jaafar M. H. Elmirghani
2012 conf
NGMAST
Imad E. Ahmed, Bilal R. Qazi, Jaafar M. H. Elmirghani
2012 conf
ONDM
Xiaowen Dong, Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2012 B conf
GLOBECOM
Ahmed Q. Lawey, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2012 J jnl
JOCN
Hsi-Hsir Chou, Bernardi Pranggono, Tim D. Wilkinson, Fan Zhang, William A. Crossland, Jaafar M. H. Elmirghani
2012 ch.
Handbook of Energy-Aware and Green Computing
Yury Audzevich, Andrew W. Moore, Andrew C. Rice, Ripduman Sohan, S. Timotheou, Jon Crowcroft, Sherif Akoush, Andy Hopper, Adrian Wonfor, H. Wang, Richard V. Penty, Ian H. White, Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2012 J jnl
IEEE Trans. Netw. Serv. Manag.
Hamada Alshaer, Jaafar M. H. Elmirghani
2011 conf
WOCN
Imad E. Ahmed, Bilal R. Qazi, Jaafar M. H. Elmirghani
2011 B conf
GLOBECOM
Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2011 conf
GLOBECOM Workshops
Hamdi Idjmayyel, Wanod Kumar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2011 B conf
GLOBECOM
Wanod Kumar, Adnan Muhtar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2011 conf
WOCN
Adnan Muhtar, Wanod Kumar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2011 conf
VTC Spring
Raymundo Ramirez Gutierrez, Li Zhang, Jaafar M. H. Elmirghani, Rui Fa
2011 B conf
GLOBECOM
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2011 B conf
IWCMC
Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2011 conf
ICC
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2011 J jnl
JOCN
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2011 J jnl
IEEE J. Sel. Areas Commun.
Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2011 conf
Integrated Network Management
Hamada Alshaer, Jaafar M. H. Elmirghani
2011 conf
WOCN
Niemah I. Osman, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2011 conf
WOCN
Hamdi Idjmayyel, Wanod Kumar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2011 B conf
IWCMC
Amar H. Kabashi, Jaafar M. H. Elmirghani
2010 B conf
GLOBECOM
Samya Bhattacharya, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
WOCN
Hamdi Idjmayyel, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 J jnl
IEEE Trans. Commun.
Fuad E. Alsaadi, Mohammad Nikkar, Jaafar M. H. Elmirghani
2010 B conf
PIMRC
Amar H. Kabashi, Jaafar M. H. Elmirghani
2010 conf
GreenCom/CPSCom
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2010 B conf
GLOBECOM
D. Satyanarayana, Jaafar M. H. Elmirghani
2010 conf
WOCN
M. Nikkar Esfahani, Jaafar M. H. Elmirghani
2010 J jnl
IEEE Trans. Veh. Technol.
Bilal R. Qazi, Hamada Alshaer, Jaafar M. H. Elmirghani
2010 J jnl
IEEE J. Sel. Areas Commun.
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2010 conf
WOCN
Imad E. Ahmed, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 J jnl
IET Commun.
Hamada Alshaer, Jaafar M. H. Elmirghani
2010 J jnl
IET Commun.
Wei Feng, Hamada Alshaer, Jaafar M. H. Elmirghani
2010 J jnl
IET Commun.
Rui Liu, Jaafar M. H. Elmirghani
2010 conf
WOCN
Xiaowen Dong, Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2010 J jnl
Int. J. Commun. Syst.
Wei Feng, Jaafar M. H. Elmirghani
2010 J jnl
Int. J. Commun. Networks Distributed Syst.
Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 B conf
GLOBECOM
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2010 conf
WOCN
Mohammed T. Alresheedi, Jaafar M. H. Elmirghani
2010 conf
ICC
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2010 conf
ICC
Amar H. Kabashi, Jaafar M. H. Elmirghani
2010 conf
ICC
Samya Bhattacharya, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 J jnl
IEEE Trans. Veh. Technol.
Jamal M. Alattar, Jaafar M. H. Elmirghani
2010 conf
ISWCS
M. Nikkar Esfahani, Jaafar M. H. Elmirghani
2010 J jnl
Wirel. Commun. Mob. Comput.
Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
NGMAST
Imad E. Ahmed, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
WOCN
Wanod Kumar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
NGMAST
Adnan Muhtar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
WOCN
Adnan Muhtar, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 conf
NGMAST
Hamdi Idjmayyel, Bilal R. Qazi, Jaafar M. H. Elmirghani
2010 J jnl
J. Networks
Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2009 conf
ICC
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2009 J jnl
IEEE J. Sel. Areas Commun.
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2009 J jnl
IEEE Trans. Wirel. Commun.
Jaafar M. H. Elmirghani, Fuad E. Alsaadi
2009 conf
VTC Fall
Hamada Alshaer, Jaafar M. H. Elmirghani
2009 B conf
IWCMC
Mun J. Lok, Bilal R. Qazi, Jaafar M. H. Elmirghani
2009 J jnl
JOCN
Balagangadhar G. Bathula, Jaafar M. H. Elmirghani
2009 B conf
AINA
Mun J. Lok, Bilal R. Qazi, Jaafar M. H. Elmirghani
2009 B conf
AINA
Wei Feng, Hamada Alshaer, Jaafar M. H. Elmirghani
2009 B conf
IWCMC
Wei Feng, Hamada Alshaer, Jaafar M. H. Elmirghani
2009 conf
ITNG
Wei Feng, Hamada Alshaer, Jaafar M. H. Elmirghani
2009 J jnl
IET Commun.
Ignacio J. García Zuazola, Jaafar M. H. Elmirghani, John C. Batchelor
2009 conf
ICNS
Omar Y. K. Alani, Jaafar M. H. Elmirghani
2009 ch.
COST Action 291 Final Report
Taisir E. H. El-Gorashi, Jaafar M. H. Elmirghani
2009 B conf
IWCMC
Bilal R. Qazi, Jaafar M. H. Elmirghani
2009 J jnl
IEEE J. Sel. Areas Commun.
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2009 conf
AINA Workshops
Bilal R. Qazi, Ángela A. de Grado Vivero, Omar Y. K. Alani, Jaafar M. H. Elmirghani
2009 B conf
IWCMC
Bilal R. Qazi, Ángela A. de Grado Vivero, Jaafar M. H. Elmirghani
2008 B conf
GLOBECOM
Jamal M. Alattar, Jaafar M. H. Elmirghani
2008 conf
VTC Fall
Bilal R. Qazi, Hamada Alshaer, Jaafar M. H. Elmirghani
2008 J jnl
Int. J. Netw. Manag.
Hamada Alshaer, Jaafar M. H. Elmirghani
2008 J jnl
Int. J. Commun. Syst.
Hamada Alshaer, Jaafar M. H. Elmirghani
2008 conf
ICC
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2008 conf
GridNets
Balagangadhar G. Bathula, Jaafar M. H. Elmirghani
2008 conf
ICC
Jamal M. Alattar, Jaafar M. H. Elmirghani
2007 conf
ICC
Jamal M. Alattar, Jaafar M. H. Elmirghani
2007 conf
ONDM
Jamal M. Alattar, Jaafar M. H. Elmirghani
2007 B conf
GLOBECOM
Fuad E. Alsaadi, Jaafar M. H. Elmirghani
2007 conf
ICC
Bernardi Pranggono, Rashid Mehmood, Jaafar M. H. Elmirghani
2007 J jnl
IET Commun.
Rui Liu, Jaafar M. H. Elmirghani
2006 conf
ICC
Bin Chen, Bernardi Pranggono, Jaafar M. H. Elmirghani
2006 B conf
MASCOTS
Rashid Mehmood, Jon Crowcroft, Jaafar M. H. Elmirghani
2006 conf
ICC
Taisir E. H. El-Gorashi, Bernardi Pranggono, Jaafar M. H. Elmirghani
2005 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani, Ian H. White
2004 J jnl
IEEE Trans. Commun.
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2004 conf
ICC
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2004 conf
ICC
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2004 B conf
GLOBECOM
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2004 J jnl
IEEE Trans. Commun.
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2004 B conf
GLOBECOM
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2003 J jnl
IEEE J. Sel. Areas Commun.
Christophe Jelger, Jaafar M. H. Elmirghani
2003 J jnl
Int. J. Commun. Syst.
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2003 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani
2003 J jnl
IEEE Trans. Commun.
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2003 J jnl
IEEE Commun. Mag.
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2003 conf
ICC
Abdullah G. Al-Ghamdi, Jaafar M. H. Elmirghani
2002 B conf
GLOBECOM
Andreas Müller, Jaafar M. H. Elmirghani
2002 J jnl
IEEE Trans. Commun.
Andreas Müller, Jaafar M. H. Elmirghani
2002 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani, Edward H. Sargent
2002 J jnl
Int. J. Commun. Syst.
Christophe Jelger, Jaafar M. H. Elmirghani
2002 conf
ICC
Christophe Jelger, Jaafar M. H. Elmirghani
2002 J jnl
IEEE Commun. Mag.
Christophe S. Jelger, Jaafar M. H. Elmirghani
2001 B conf
GLOBECOM
Andreas Müller, Jaafar M. H. Elmirghani
2001 B conf
GLOBECOM
Christophe Jelger, Jaafar M. H. Elmirghani
2001 conf
ICC
Andreas Müller, Jaafar M. H. Elmirghani
2001 B conf
GLOBECOM
Manuel Muñoz de la Corte, Jaafar M. H. Elmirghani
2001 conf
ICC
Karel L. Sterckx, Jaafar M. H. Elmirghani
2001 conf
ICC
Wai Pang Ng, Jaafar M. H. Elmirghani, Simon Broom
2001 conf
ICC
Wai Pang Ng, Jaafar M. H. Elmirghani, Simon Broom
2000 B conf
GLOBECOM
Andreas Müller, Jaafar M. H. Elmirghani
2000 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani, Hussein T. Mouftah
2000 conf
ICC (2)
Wai Pang Ng, Jaafar M. H. Elmirghani, Robert A. Cryan, Yoong Choon Chang, Simon Broom
2000 B conf
GLOBECOM
Karel L. Sterckx, Jaafar M. H. Elmirghani, Robert A. Cryan
2000 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani, Hussein T. Mouftah
2000 J jnl
Int. J. Commun. Syst.
Karel L. Sterckx, Jaafar M. H. Elmirghani, Robert A. Cryan
1999 J jnl
IEEE Commun. Lett.
Andreas Müller, Jaafar M. H. Elmirghani
1998 J jnl
IEEE Commun. Mag.
Pavlos Theodorou, Jaafar M. H. Elmirghani, Robert A. Cryan
1998 J jnl
IEEE Commun. Lett.
Andreas Müller, Jaafar M. H. Elmirghani
1998 J jnl
IEEE Commun. Mag.
Jaafar M. H. Elmirghani
1998 conf
ICC
Hsun-Hung Chan, Jaafar M. H. Elmirghani, Robert A. Cryan
1998 J jnl
IEEE Commun. Mag.
Hsun-Hung Chan, Karel L. Sterckx, Jaafar M. H. Elmirghani, Robert A. Cryan
1997 J jnl
IEEE Trans. Signal Process.
Jaafar M. H. Elmirghani, Simon H. Milner, Robert A. Cryan
1996 J jnl
Eur. Trans. Telecommun.
Simon H. Milner, Jaafar M. H. Elmirghani, Robert A. Cryan
1995 J jnl
IEEE Trans. Commun.
Jaafar M. H. Elmirghani, Robert A. Cryan, F. Mike Clayton
1995 J jnl
Signal Process.
Jaafar M. H. Elmirghani, Robert A. Cryan, F. Mike Clayton
1995 J jnl
Eur. Trans. Telecommun.
Jaafar M. H. Elmirghani, Robert A. Cryan
1994 C conf
ISCAS
Jaafar M. H. Elmirghani, Robert A. Cryan
1994 C conf
ISCAS
Jaafar M. H. Elmirghani, Robert A. Cryan
1994 J jnl
Eur. Trans. Telecommun.
Jaafar M. H. Elmirghani, Robert A. Cryan, F. Mike Clayton
1993 J jnl
Eur. Trans. Telecommun.
Robert A. Cryan, Jaafar M. H. Elmirghani, F. Mike Clayton
redb/extractors/decompiler/_archive/DecompileGhidra.py
← Index redb/extractors/decompiler/_archive/DecompileGhidra.py python
from hashlib import sha256, md5
import inspect
import subprocess
import json
import os
import time
from datetime import datetime, timezone
from typing import Dict, List, Any, Optional

from dotenv import load_dotenv
from redb.extractors.enum import Tag
from redb.extractors.extractor import Extractor
import magic
import pefile
import ppdeep
import tlsh


class DecompileGhidra(Extractor):
    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        filetype=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
        )
        self.log.debug(inspect.currentframe().f_code.co_name)
        self.ghidra_path = os.getenv("GHIDRA_PATH", "/opt/ghidra")
        self.java_script_path = os.getenv(
            "GHIDRA_SCRIPT_PATH",
            "/opt/ghidra/Ghidra/Features/Base/ghidra_scripts/GhidraDecompilerScript.java",
        )
        self.analysis_results = None
        self.ghidra_process = None  # Track the current process
        self.project_path = None
        self.filetype = filetype

        # Convert TIMEOUT to integer with a default of 1200 seconds (20 minutes)
        try:
            self.TIMEOUT = int(os.getenv("GHIDRA_TIMEOUT", "1200"))
        except ValueError:
            self.log.warning(
                "Invalid GHIDRA_TIMEOUT value, using default of 1200 seconds"
            )
            self.TIMEOUT = 1200

        self.initialize_project()

    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.cleanup_run()

    def is_dotnet(self):
        try:
            if self.filetype == "pebin":
                file_type = magic.from_buffer(self.binary)
                if ".Net" in file_type:
                    return True
                pe = pefile.PE(self.filepath)
                for entry in pe.OPTIONAL_HEADER.DATA_DIRECTORY:
                    # IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR is typically 14
                    if (
                        entry.name == "IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR"
                        and entry.Size > 0
                    ):
                        return True
                return False
        except AttributeError as e:
            self.log.error(
                f"AttributeError error dotnet file {self.hash.sha256} Full error : {e}"
            )
            return False

    def cleanup_run(self):
        """Clean up after analysis."""
        try:
            if self.ghidra_process and self.ghidra_process.poll() is None:
                self.ghidra_process.terminate()
                try:
                    self.ghidra_process.wait(timeout=5)
                except subprocess.TimeoutExpired:
                    self.ghidra_process.kill()

            # Clean up project directory
            if self.project_path and os.path.exists(self.project_path):
                import shutil

                shutil.rmtree(self.project_path)
                self.log.debug(f"Cleaned up project directory: {self.project_path}")

            # Force garbage collection
            import gc

            gc.collect()
        except Exception as e:
            self.log.error(f"Error in cleanup: {e}")

    # @classmethod
    # def cleanup_batch(cls):
    #     """Clean up the persistent project at the end of a batch."""
    #     print(f"Cleaning up Ghidra project for batch")
    #     if cls._project_path and os.path.exists(cls._project_path):
    #         try:
    #             import shutil
    #             shutil.rmtree(cls._project_path)
    #             cls._project_initialized = False
    #             cls._project_path = None
    #         except Exception as e:
    #             print(f"Error cleaning up project: {e}")

    def _get_environment(self):
        """Setup and return the environment for Ghidra."""
        env = os.environ.copy()
        java_home = os.getenv("GHIDRA_JAVA_HOME", "/usr/lib/jvm/java-17-openjdk-amd64")
        env.update(
            {
                "JAVA_HOME": java_home,
                "PATH": f"{java_home}/bin:{env['PATH']}",
                "LD_LIBRARY_PATH": f"{java_home}/lib:{env.get('LD_LIBRARY_PATH', '')}",
            }
        )
        # Print environment variables for debugging
        self.log.debug(f"JAVA_HOME: {env['JAVA_HOME']}")
        self.log.debug(f"PATH: {env['PATH']}")
        self.log.debug(f"LD_LIBRARY_PATH: {env['LD_LIBRARY_PATH']}")

        return env

    def initialize_project(self):
        """Initialize a temporary Ghidra project for this file."""
        # Create unique project directory
        self.project_path = f"/tmp/ghidra_{os.path.basename(self.filepath)}_{str(int(time.time()))}_{os.getpid()}"
        os.makedirs(self.project_path, exist_ok=True)
        self.log.debug(f"Created temporary project at {self.project_path}")

        # Create a minimal initialization file
        init_file = os.path.join(self.project_path, ".init")
        with open(init_file, "wb") as f:
            f.write(bytes([0x7F, 0x45, 0x4C, 0x46]))  # Valid ELF header magic bytes

        # Initialize project with minimal file
        env = self._get_environment()
        cmd = [
            f"{self.ghidra_path}/support/analyzeHeadless",
            self.project_path,
            "TempProject",
            "-import",
            init_file,
        ]

        try:
            result = subprocess.run(cmd, env=env, capture_output=True, text=True)
            if result.returncode != 0:
                self.log.error(f"Failed to initialize project: {result.stderr}")
                raise RuntimeError("Project initialization failed")

            # Clean up initialization file
            os.remove(init_file)
            self.log.debug("Project initialized successfully")

        except Exception as e:
            self.log.error(f"Error initializing project: {e}")
            raise

    def analyze_binary(self) -> Optional[Dict[str, Any]]:
        """Run Ghidra analysis and return results."""
        self.log.debug("Starting binary analysis")

        # # Check if packed
        # if self.check_binary_protection():
        #     self.log.warning("Skipping protected binary")
        #     return None

        # Check for .NET only if needed
        # if self.is_dotnet():
        #     self.MAX_NAMED_ARG_WARNINGS = 10000  # Higher threshold for .NET
        #     self.log.info("Adjusting parameters for .NET binary")
        # else:
        #     self.MAX_NAMED_ARG_WARNINGS = 1000  # Normal threshold

        if not os.path.exists(self.java_script_path):
            self.log.error(f"Java script not found: {self.java_script_path}")
            return None

        env = self._get_environment()

        try:
            base_cmd = [
                f"{self.ghidra_path}/support/analyzeHeadless",
                self.project_path,
                "TempProject",
                "-import",
                self.filepath,
                "-scriptPath",
                os.path.dirname(self.java_script_path),
                "-postScript",
                self.java_script_path,
                self.sha256,
                self.filepath,
            ]
            return self.run_ghidra(base_cmd, env)

        except Exception as e:
            self.log.error(f"Error in Ghidra analysis: {e}")
            return None

        finally:
            self.cleanup_run()

    def run_ghidra(
        self, cmd: list, env: Optional[Dict[str, str]] = None
    ) -> Optional[Dict[str, Any]]:
        """Run Ghidra process and capture JSON output with improved logging separation."""
        process = None
        try:
            self.log.info(f"Starting Ghidra analysis: {' '.join(cmd)}")
            start_time = time.time()

            process = subprocess.Popen(
                cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
            )
            self.ghidra_process = process

            warning_counter = 0
            named_arg_counter = 0
            # Read all output lines
            json_output = None
            while True:
                line = process.stdout.readline()
                if not line and process.poll() is not None:
                    break

                stripped_line = line.strip()
                if not stripped_line:
                    continue

                # if 'Invalid FieldOrProp value in NamedArg' in stripped_line:
                #     named_arg_counter += 1
                #     if named_arg_counter > self.MAX_NAMED_ARG_WARNINGS:
                #         self.log.error(f"Too many NamedArg warnings ({named_arg_counter}), possible protected file.")
                #         self.ghidra_process.kill()
                #         return None
                if (
                    stripped_line.startswith("{")
                    and '"sha256"' in stripped_line
                    and '"decompiled"' in stripped_line
                ):
                    # This is our actual JSON output from GhidraDecompilerScript
                    json_output = stripped_line
                elif any(level in stripped_line for level in ["INFO", "WARN", "ERROR"]):
                    # Ghidra framework logging
                    log_level = (
                        "debug"
                        if "INFO" in stripped_line
                        else "warning"
                        if "WARN" in stripped_line
                        else "error"
                    )
                    if log_level == "warning" and any(
                        expected in stripped_line
                        for expected in [
                            "Unable to disassemble EXTERNAL block",
                            "Failed to markup ELF Note",
                            "Invalid FieldOrProp value in NamedArg",
                            "Unable to resolve constructor",
                            "Could not follow disassembly flow into non-existing memory",
                            "Unable to read bytes at ram",
                        ]
                    ):
                        # Skip expected warnings
                        continue

                    getattr(self.log, log_level)(f"Ghidra info: {stripped_line}")

            # Process completion and stderr
            try:
                stderr = process.stderr.read()
                process.wait(timeout=self.TIMEOUT)

                if stderr:
                    for line in stderr.splitlines():
                        stripped_line = line.strip()
                        if not stripped_line:
                            continue
                        if "ERROR" in stripped_line:
                            self.log.error(f"Ghidra stderr: {stripped_line}")
                        elif "WARN" in stripped_line:
                            self.log.warning(f"Ghidra stderr: {stripped_line}")
                        else:
                            self.log.debug(f"Ghidra stderr: {stripped_line}")

            except subprocess.TimeoutExpired:
                process.kill()
                self.log.error("Ghidra analysis timed out")
                return None

            elapsed_time = time.time() - start_time
            self.log.debug(f"Ghidra analysis completed in {elapsed_time:.2f}s")

            # Parse JSON output if we found it
            if json_output:
                try:
                    result = json.loads(json_output)
                    # Validate the required structure
                    if not isinstance(result, dict) or not all(
                        k in result
                        for k in ["sha256", "decompiled", "disassembled", "cfg"]
                    ):
                        self.log.error("Invalid JSON structure from Ghidra")
                        return None
                    return result
                except json.JSONDecodeError as e:
                    self.log.error(f"Failed to parse Ghidra JSON output: {e}")
                    return None
            else:
                self.log.error("No JSON output received from Ghidra")
                return None

        except Exception as e:
            self.log.error(f"Error running Ghidra: {str(e)}")
            if hasattr(e, "__traceback__"):
                import traceback

                self.log.debug(
                    f"Traceback: {''.join(traceback.format_tb(e.__traceback__))}"
                )
            return None

        finally:
            if process:
                try:
                    # Ensure pipes are closed
                    if process.stdout:
                        process.stdout.close()
                    if process.stderr:
                        process.stderr.close()
                    # Terminate process if still running
                    if process.poll() is None:
                        process.terminate()
                        try:
                            process.wait(timeout=5)
                        except subprocess.TimeoutExpired:
                            process.kill()
                except Exception as e:
                    self.log.error(f"Error cleaning up Ghidra process: {e}")

    def extract(self) -> bool:
        """Extract and process all analysis results."""
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            results = self.analyze_binary()
            if not results:
                return False

            self.analysis_results = results
            return True

        except Exception as e:
            self.log.error(f"Error in extraction: {e}")
            return False

    def prepare_export_data(self, exporter_type: str) -> Any:
        """Prepare data for database export."""
        self.log.debug(inspect.currentframe().f_code.co_name)
        if not self.analysis_results:
            return None

        if exporter_type == "ClickHouseExporter":
            now = datetime.now(timezone.utc)

            def prepare_array_field(value, array_type):
                """Helper to prepare array fields with proper null handling"""
                if value is None:
                    return []
                return value

            def ssdeep_disassembly(func):
                try:
                    if len(func) > 1:
                        return ppdeep.hash(func)
                    return ""
                except Exception as e:
                    self.log.error(f"Error in disassembly ssdeep hash calculation: {e}")
                    return ""

            def tlsh_disassembly(func):
                try:
                    if len(func) >= 50:
                        return tlsh.hash(func.encode("utf-8"))
                    return ""
                except Exception as e:
                    self.log.error(f"Error in disassembly tlsh hash calculation: {e}")
                    return ""

            return {
                "multi_table": True,
                "decompiled_content": {
                    "table": "decompiled_functions_content",
                    "data": [
                        [
                            f["decompiled_content_hash"],
                            f["decompiled_function"],
                            f["function_type"],
                            now,
                        ]
                        for f in self.analysis_results["decompiled"]
                    ],
                    "column_names": [
                        "decompiled_content_hash",
                        "decompiled_function",
                        "function_type",
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "String",
                        "Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5)",
                        "DateTime64(3, 'UTC')",
                    ],
                },
                "decompiled_refs": {
                    "table": "decompiled_functions_references",
                    "data": [
                        [
                            self.analysis_results["sha256"],
                            f["decompiled_content_hash"],
                            f["decompiled_function_name"],
                            f["decompiled_function_address"],
                            now,
                        ]
                        for f in self.analysis_results["decompiled"]
                    ],
                    "column_names": [
                        "sha256",
                        "decompiled_content_hash",
                        "decompiled_function_name",
                        "decompiled_function_address",
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "FixedString(64)",
                        "LowCardinality(String)",
                        "String",
                        "DateTime64(3, 'UTC')",
                    ],
                },
                "disassembled_content": {
                    "table": "disassembled_functions_content",
                    "data": [
                        [
                            f["disassembled_content_hash"],
                            f["fully_normalized_content_hash"],
                            f["api_normalized_content_hash"],
                            f["category_normalized_content_hash"],
                            f.get("disassembled_function", ""),
                            f.get("fully_normalized_disassembly", ""),
                            f.get("api_normalized_disassembly", ""),
                            f.get("category_normalized_disassembly", ""),
                            ssdeep_disassembly(f.get("disassembled_function", "")),
                            tlsh_disassembly(f.get("disassembled_function", "")),
                            ssdeep_disassembly(
                                f.get("fully_normalized_disassembly", "")
                            ),
                            tlsh_disassembly(f.get("fully_normalized_disassembly", "")),
                            f.get("function_type", "UNKNOWN"),
                            f.get("instruction_count", 0),
                            prepare_array_field(
                                f.get("instruction_types"), "LowCardinality(String)"
                            ),
                            f.get("control_flow_count", 0),
                            prepare_array_field(
                                f.get("memory_access_pattern"), "LowCardinality(String)"
                            ),
                            prepare_array_field(
                                f.get("register_usage"), "LowCardinality(String)"
                            ),
                            f.get("data_references_count", 0),
                            # prepare_array_field(f.get('opcode_frequency_vector'), 'Float32'),
                            # prepare_array_field(f.get('api_calls_vector'), 'Float32'),
                            # prepare_array_field(f.get('minhash_signature'), 'UInt64'),
                            # f.get('pic_hash', ''),
                            f.get("max_block_size", 0),
                            f.get("num_calls", 0),
                            f.get("stack_size", 0),
                            # prepare_array_field(f.get('instruction_type_ratios'), 'Float32'),
                            # prepare_array_field(f.get('instruction_embedding'), 'Float32'),
                            now,
                        ]
                        for f in self.analysis_results["disassembled"]
                    ],
                    "column_names": [
                        "disassembled_content_hash",
                        "fully_normalized_content_hash",
                        "api_normalized_content_hash",
                        "category_normalized_content_hash",
                        "disassembled_function",
                        "fully_normalized_disassembly",
                        "api_normalized_disassembly",
                        "category_normalized_disassembly",
                        "ssdeep_disassembly",
                        "tlsh_disassembly",
                        "ssdeep_fully_normalized",
                        "tlsh_fully_normalized",
                        "function_type",
                        "instruction_count",
                        "instruction_types",
                        "control_flow_count",
                        "memory_access_pattern",
                        "register_usage",
                        "data_references_count",
                        # 'opcode_frequency_vector',
                        # 'api_calls_vector',
                        # 'minhash_signature',
                        # 'pic_hash',
                        "max_block_size",
                        "num_calls",
                        "stack_size",
                        # 'instruction_type_ratios',
                        # 'instruction_embedding',
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "FixedString(64)",
                        "FixedString(64)",
                        "FixedString(64)",
                        "String",
                        "String",
                        "String",
                        "String",
                        "Nullable(String)",
                        "Nullable(FixedString(72))",
                        "Nullable(String)",
                        "Nullable(FixedString(72))",
                        "Enum8('USER'=1, 'LIBRARY'=2, 'THUNK'=3, 'EXTERNAL'=4, 'UNKNOWN'=5)",
                        "UInt32",
                        "Array(LowCardinality(String))",
                        "UInt32",
                        "Array(LowCardinality(String))",
                        "Array(LowCardinality(String))",
                        "UInt32",
                        # 'Array(Float32)',
                        # 'Array(Float32)',
                        # 'Array(UInt64)',
                        # 'Nullable(FixedString(16))',
                        "Nullable(UInt32)",
                        "Nullable(UInt32)",
                        "Nullable(Int32)",
                        # 'Array(Float32)',
                        # 'Array(Float32)',
                        "DateTime64(3, 'UTC')",
                    ],
                },
                "disassembled_refs": {
                    "table": "disassembled_functions_references",
                    "data": [
                        [
                            self.analysis_results["sha256"],
                            f["disassembled_content_hash"],
                            f["fully_normalized_content_hash"],
                            f["api_normalized_content_hash"],
                            f["category_normalized_content_hash"],
                            f["disassembled_function_name"],
                            f["disassembled_function_address"],
                            now,
                        ]
                        for f in self.analysis_results["disassembled"]
                    ],
                    "column_names": [
                        "sha256",
                        "disassembled_content_hash",
                        "fully_normalized_content_hash",
                        "api_normalized_content_hash",
                        "category_normalized_content_hash",
                        "disassembled_function_name",
                        "disassembled_function_address",
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "FixedString(64)",
                        "FixedString(64)",
                        "FixedString(64)",
                        "FixedString(64)",
                        "LowCardinality(String)",
                        "String",
                        "DateTime64(3, 'UTC')",
                    ],
                },
                "cfg_blocks": {
                    "table": "cfg_blocks",
                    "data": [
                        [
                            b["block_id"],
                            self.analysis_results["sha256"],
                            b["function_address"],
                            b["block_start_address"],
                            b["block_end_address"],
                            b["block_size"],
                            b["block_instructions"],
                            b["fully_normalized_instructions"],
                            b["api_normalized_instructions"],
                            b["category_normalized_instructions"],
                            b.get("predecessor_blocks", []),
                            b.get("successor_blocks", []),  # Use empty array as default
                            b.get("is_entry_block", False),
                            b.get("is_exit_block", False),
                            b.get("branch_type", "UNKNOWN"),
                            b.get("referenced_constants", []),
                            b.get("sign", 1),  # Use 1 as default for sign
                            now,
                        ]
                        for b in self.analysis_results["cfg"]
                    ],
                    "column_names": [
                        "block_id",
                        "sha256",
                        "function_address",
                        "block_start_address",
                        "block_end_address",
                        "block_size",
                        "block_instructions",
                        "fully_normalized_instructions",
                        "api_normalized_instructions",
                        "category_normalized_instructions",
                        "predecessor_blocks",
                        "successor_blocks",
                        "is_entry_block",
                        "is_exit_block",
                        "branch_type",
                        "referenced_constants",
                        "sign",
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "FixedString(64)",
                        "String",
                        "String",
                        "String",
                        "UInt32",
                        "String",
                        "Nullable(String)",
                        "Nullable(String)",
                        "Nullable(String)",
                        "Array(String)",
                        "Array(String)",
                        "Bool",
                        "Bool",
                        "Enum8('DIRECT'=1, 'CONDITIONAL'=2, 'CALL'=3, 'RETURN'=4, 'FALLTHROUGH'=5, 'UNKNOWN'=6)",
                        "Array(String)",
                        "Int8",
                        "DateTime64(3, 'UTC')",
                    ],
                },
                "function_analysis_errors": {
                    "table": "function_analysis_errors",
                    "data": [
                        [
                            self.analysis_results["sha256"],
                            f["function_name"],
                            f["function_address"],
                            f["error_location"],
                            f.get(
                                "error_message", ""
                            ),  # it could be empty, how to handle it?
                            f.get("error_details", ""),
                            f.get("error_type", "unknown"),
                            md5(
                                f"{f['error_message']}{f['function_name']}{f['function_address']}{f['error_location']}".encode()
                            ).hexdigest(),
                            "new",
                            now,
                        ]
                        for f in self.analysis_results["errors"]
                    ],
                    "column_names": [
                        "sha256",
                        "function_name",
                        "function_address",
                        "error_location",
                        "error_message",
                        "error_details",
                        "error_type",
                        "error_hash",
                        "status",
                        "analysis_date",
                    ],
                    "column_type_names": [
                        "FixedString(64)",
                        "Nullable(String)",
                        "String",
                        "LowCardinality(String)",
                        "Nullable(String)",
                        "Nullable(String)",
                        "Nullable(String)",
                        "FixedString(32)",
                        "Enum8('new'=1, 'investigating'=2, 'fixed'=3, 'wontfix'=4)",
                        "DateTime64(3, 'UTC')",
                    ],
                },
            }

    def tag(self) -> str:
        """Return the tag for this extractor."""
        return Tag.DECOMPILED.value

    def get_clickhouse_table(self) -> str:
        """Not used directly as we're handling multiple tables."""
        pass