{"id":2141,"date":"2026-05-20T11:27:54","date_gmt":"2026-05-20T11:27:54","guid":{"rendered":"https:\/\/catedramasmovil.uc3m.es\/2026\/05\/20\/hybrid-malware-detection\/"},"modified":"2026-05-20T12:11:56","modified_gmt":"2026-05-20T12:11:56","slug":"hybrid-malware-detection","status":"publish","type":"post","link":"https:\/\/catedramasmovil.uc3m.es\/en\/2026\/05\/20\/hybrid-malware-detection\/","title":{"rendered":"Hybrid malware detection"},"content":{"rendered":"\n[et_pb_section fb_built=&#8221;1&#8243; theme_builder_area=&#8221;post_content&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221;][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.17.0&#8243; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_row _builder_version=&#8221;4.17.0&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.17.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_gallery gallery_ids=&#8221;1978,1968,1970,1949,1974,1951,1972,1976,1947&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_gallery][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_margin=&#8221;|auto||103px||&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_accordion _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;et_body_layout&#8221; hover_enabled=&#8221;0&#8243; sticky_enabled=&#8221;0&#8243;][et_pb_accordion_item _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; theme_builder_area=&#8221;et_body_layout&#8221; open=&#8221;on&#8221;]<p data-start=\"36\" data-end=\"525\" style=\"text-align: justify\"><strong data-start=\"36\" data-end=\"47\">Objective<\/strong><\/p>\n<p data-start=\"36\" data-end=\"525\" style=\"text-align: justify\"><br data-start=\"47\" data-end=\"50\">This work presents a hybrid system for binary file classification, primarily focused on malware detection. The process begins with a binary file, such as a PE executable or an APK application, which is analyzed using IDA Pro to obtain its assembly code representation. From this assembly code, a token structure is generated that represents instructions, operands, calls, jumps, and other relevant elements of the program.  <\/p>\n<p data-start=\"527\" data-end=\"991\" style=\"text-align: justify\">Once the token sequence is obtained, it is fed into a convolutional neural network. The CNN applies filters over the sequence to detect local code patterns, such as instruction combinations, frequent opcodes, repetitive structures, or possible signs of obfuscation. Based on these patterns, the network generates a dense embedding that summarizes the most relevant information of the binary from a sequential perspective into a compact vector.  <\/p>\n<p data-start=\"993\" data-end=\"1453\" style=\"text-align: justify\">In addition to this representation, the binary is also modeled as a graph, for example through a control flow graph. In this graph, nodes may represent basic blocks or functions, while edges indicate execution relationships, jumps, or calls between different parts of the program. The embedding generated by the CNN is integrated with this structural representation to enrich the available information before classification.  <\/p>\n<p data-start=\"1455\" data-end=\"2001\" style=\"text-align: justify\">Finally, the enriched graph is processed using a graph neural network. The GNN applies message passing between nodes, combining the information of each element with that of its neighbors and capturing structural dependencies within the program. After several layers, a global representation of the binary is obtained and fed into a final classifier to determine whether the file is malicious or benign. The main contribution of this work is the combination of the local patterns learned by the CNN with the global structure captured by the GNN.   <\/p>\n<p style=\"text-align: justify\"><\/p>[\/et_pb_accordion_item][\/et_pb_accordion][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;20px||||false|false&#8221; custom_padding=&#8221;0px||||false|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_row column_structure=&#8221;1_2,1_2&#8243; _builder_version=&#8221;4.25.1&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_image src=&#8221;https:\/\/storage.googleapis.com\/wp-uploads.bucket.wp.uc3m.es\/wp-content\/uploads\/sites\/70\/2026\/05\/19102656\/foto-1.jpg&#8221; title_text=&#8221;foto&#8221; _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_image][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;4.18.0&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||0px|||&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;]<p><span style=\"color: #003366\"><strong>BACHELOR&#8217;S THESIS BY<\/strong><\/span><\/p>\n<p><b>\u00c1LVARO GARC\u00cdA PIQUERAS<\/b><\/p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.25.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p><strong><\/strong><\/p>\n<p><strong><\/strong><\/p>\n<p><strong><\/strong><\/p>\n<p><strong>Academic experience<\/strong><\/p>\n<ul>\n<li>Computer Science and Engineering Degree, Universidad Carlos III de Madrid (september 2022 \u2013 september 2026)<\/li>\n<\/ul>\n<ul><\/ul>\n<p>&nbsp;<\/p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.20.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.20.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; custom_padding=&#8221;||9px|||&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;]<p><strong>Work experience<\/strong><\/p>\n<ul>\n<li>AI researcher \u2013 Universidad Carlos III de Madrid along with Grupo MasOrange (october 2025 \u2014 june 2026)<\/li>\n<\/ul>\n<p><strong><br>Skills<\/strong><\/p>\n<ul>\n<li>\n<p>Programming languages: Python, Java, C++, JavaScript, Go, MATLAB<\/p>\n<\/li>\n<li>\n<p>Libraries: Pandas, NumPy, TensorFlow, Keras, Scikit-Learn<\/p>\n<\/li>\n<li>\n<p>Databases and Cloud-Computing: AWS, Amazon S3, Oracle, BigQuery, PostgreSQL, PL\/SQL<\/p>\n<\/li>\n<li>\n<p>Version control and DevOps: GitHub, GitLab<\/p>\n<\/li>\n<li>\n<p>AI, Machine Learning, Neural-Networks, Embedding, GNN<\/p>\n<\/li>\n<\/ul>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.25.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221;][et_pb_text _builder_version=&#8221;4.27.6&#8243; _module_preset=&#8221;default&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;et_body_layout&#8221; sticky_enabled=&#8221;0&#8243;]<blockquote>\n<p><span style=\"color: #000000\"><a href=\"https:\/\/web.archive.org\/web\/20251014220158\/https:\/\/es.linkedin.com\/in\/natalia-rodr%C3%ADguez-navarro-a4a47b298\" target=\"_blank\" rel=\"noopener\" style=\"color: #000000\"><span style=\"text-decoration: underline\">LinkedIn<\/span><\/a><\/span><\/p>\n<\/blockquote>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":172,"featured_media":1979,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[80],"tags":[],"class_list":["post-2141","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects-2025-2026"],"_links":{"self":[{"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/posts\/2141","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/users\/172"}],"replies":[{"embeddable":true,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/comments?post=2141"}],"version-history":[{"count":1,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/posts\/2141\/revisions"}],"predecessor-version":[{"id":2142,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/posts\/2141\/revisions\/2142"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/media\/1979"}],"wp:attachment":[{"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/media?parent=2141"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/categories?post=2141"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/catedramasmovil.uc3m.es\/en\/wp-json\/wp\/v2\/tags?post=2141"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}