{"id":74083,"date":"2017-05-15T15:31:31","date_gmt":"2017-05-15T22:31:31","guid":{"rendered":"https:\/\/securingtomorrow.mcafee.com\/?p=74083"},"modified":"2025-05-27T20:16:32","modified_gmt":"2025-05-28T03:16:32","slug":"analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code","status":"publish","type":"post","link":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/","title":{"rendered":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code"},"content":{"rendered":"<p>Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting vulnerabilities. Mobile malware often uses persistence mechanisms to hide and monitor the victim\u2019s behavior. Unlike personal computers, mobile devices are used more often by their owners, and carry sensitive information such as phone numbers, personal images, SMS messages, and other data that can be used to socially engineer more victims. Furthermore, mobile devices have cameras, microphones, and GPS that can be used to spy on the targets. Infected mobile devices expose users to greater risks than infected computers.<\/p>\n<p>Recently <a href=\"https:\/\/android-developers.googleblog.com\/2017\/04\/an-investigation-of-chrysaor-malware-on.html\">Google<\/a> and <a href=\"https:\/\/blog.lookout.com\/blog\/2017\/04\/03\/pegasus-android\/?utm_source=tw&amp;utm_medium=sm&amp;utm_article=bl&amp;utm_region=us&amp;utm_segment=ent&amp;utm_campaign=pegasus-for-android\">Lookout<\/a> published information about the Android version of surveillance malware Pegasus (also known as Chrysaor, the brother of Pegasus in Greek myth). Pegasus infections were a big story last year. This year\u2019s attacks are called Chrysaor (by Google) or Pegasus (by Lookout). When Chrysaor is installed, it leaks data of popular apps and remotely controls the device. The Lookout report covers all the features of the Chrysaor malware, but only briefly explains how the malware injects code and installs a hook for keylogging. We decided to analyze the Chrysaor sample in more detail to understand how its keylogging works. We analyzed the sample with the SHA-256 hash <a href=\"https:\/\/virustotal.com\/en\/file\/ade8bef0ac29fa363fc9afd958af0074478aef650adeb0318517b48bd996d5d5\/analysis\/\">ade8bef0ac29fa363fc9afd958af0074478aef650adeb0318517b48bd996d5d5<\/a>.<\/p>\n<h2>Overview<\/h2>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74085 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\" alt=\"\" width=\"603\" height=\"301\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png 603w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1-300x150.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/a><\/p>\n<p><em>The basic keylogging process.<\/em><\/p>\n<p>The sample has two main binaries related to keylogging: addk.so and libk.so. When the sample executes, the former is copied to \/data\/local\/tmp\/inulmn and the latter to \/data\/local\/tmp\/libuml.so. The addk.so file injects shellcode into the memory space of the keyboard process (Step 1 in the preceding graphic). When the shellcode runs, it loads libk.so and calls the function init() (Step 2). This function installs a hook to capture user keystrokes to a file (Step 3).<\/p>\n<p>To log keystrokes, a superuser binary, which manages access to root privileges, must be positioned at \/system\/csk or the keylogging code will not execute.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74086 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-2.png\" alt=\"\" width=\"591\" height=\"97\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-2.png 591w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-2-300x49.png 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/p>\n<p><em>Checking for the superuser binary.<\/em><\/p>\n<p>The following code shows part of a system command string for injecting \/data\/local\/tmp\/libuml.so to the keyboard process using the binary \/data\/local\/tmp\/inulmn.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74087 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-3.png\" alt=\"\" width=\"770\" height=\"164\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-3.png 770w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-3-300x64.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-3-768x164.png 768w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/a><\/p>\n<p><em>Code for constructing the command string.<\/em><\/p>\n<p>The fully constructed string:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"601\">\n<p style=\"padding-left: 30px;\">chown 0.0 \/data\/local\/tmp\/inulmn ;<\/p>\n<p style=\"padding-left: 30px;\">chown 0.0 \/data\/local\/tmp\/libuml.so ;<\/p>\n<p style=\"padding-left: 30px;\">chmod 0777 \/data\/local\/tmp\/inulmn ;<\/p>\n<p style=\"padding-left: 30px;\">chmod 0777 \/data\/local\/tmp\/libuml.so ;<\/p>\n<p style=\"padding-left: 30px;\">\/data\/local\/tmp\/inulmn &lt;pid of keyboard process&gt; \/data\/local\/tmp\/libuml.so init;<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>We can see that \/data\/local\/tmp\/inulmn executes, passing the process ID of the target process (the keyboard), the name of the binary to inject (\/data\/local\/tmp\/libuml.so), and the function to execute (init) as command-line parameters.<\/p>\n<h2>Finding the current input method process<\/h2>\n<p>To log user keystrokes, Chrysaor first queries the value of DEFAULT_INPUT_METHOD in secure system settings. This records the input method used by default and gets the method\u2019s ID.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74088 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-4.png\" alt=\"\" width=\"708\" height=\"99\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-4.png 708w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-4-300x42.png 300w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><\/a><\/p>\n<p><em>Gathering the ID of the system&#8217;s default input method (keyboard).<\/em><\/p>\n<p>The malware then searches for the input method (keyboard) process in the list of running processes using the ID. When found, the malware extracts the ID of the process so that it can inject the code.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74089 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-5.png\" alt=\"\" width=\"792\" height=\"176\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-5.png 792w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-5-300x67.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-5-768x171.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/a><\/p>\n<p><em>Code searching for ID of the keyboard process.<\/em><\/p>\n<h2>Injecting code<\/h2>\n<p>Once Chrysaor has found the ID of the keyboard process, it tries to inject its code and hook the function to log keystrokes. The native library addk.so allows the injecting of code into the keyboard process and executing certain functions using the ptrace API. Addk.so gains the target process\u2019 PID, the path of the .so file to inject, and the function to execute as parameters. With this information, the malware finds the function addresses of APIs such as dlsym(), dlopen(), and mmap() in the target process\u2019 memory space using the proc filesystem.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74090 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-6.png\" alt=\"\" width=\"590\" height=\"418\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-6.png 590w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-6-300x213.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/a><\/p>\n<p><em>Dynamically finding the addresses of APIs.<\/em><\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74091 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-7.png\" alt=\"\" width=\"758\" height=\"483\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-7.png 758w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-7-300x191.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><\/p>\n<p><em>Using the \/proc file system to search the memory space of the keyboard process.<\/em><\/p>\n<p>The function address information is saved in the data segment adjacent to the shellcode, which executes the functions injected into the target process. The following image shows the shellcode that is copied to the target process\u2019 memory space. The memory addresses in red boxes are resolved at runtime.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74092 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-8.png\" alt=\"\" width=\"938\" height=\"398\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-8.png 938w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-8-300x127.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-8-768x326.png 768w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><\/a><\/p>\n<p><em>Shellcode for executing the injected functions.<\/em><\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-9.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74093 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-9.png\" alt=\"\" width=\"603\" height=\"406\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-9.png 603w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-9-300x202.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/a><\/p>\n<p><em>Memory layout of shellcode and data.<\/em><\/p>\n<p>The shellcode and related data such as API addresses, strings passed as function parameters, saved registers, and so on are all close together so they can be copied with one operation.<\/p>\n<p>After addk.so attaches to the keyboard process and copies the shellcode and related API addresses to the mmaped area using PTRACE_POKETEXT, the shellcode is executed by setting a return frame to the shellcode address with PTRACE_SETREGS. The shellcode calls dlopen(), using the copied remote address, to load the binary and call the injected function. Libk.so calls the init() function, which installs a hook for keylogging. Addk.so passes the string \u201ctest\u201d as a parameter of the injected function.<\/p>\n<h2>Logging keystrokes<\/h2>\n<p>The init() function installs an inline hook at the beginning of the IPCThreadState transact() function and logs the keystrokes.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-10.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74094 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-10.png\" alt=\"\" width=\"811\" height=\"206\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-10.png 811w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-10-300x76.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-10-768x195.png 768w\" sizes=\"auto, (max-width: 811px) 100vw, 811px\" \/><\/a><\/p>\n<p><em>Hooking the function IPCThreadState transact().<\/em><\/p>\n<p>The following diagram shows the execution flow when the inline hook is installed on the transact() function:<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74095 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-11.png\" alt=\"\" width=\"603\" height=\"365\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-11.png 603w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-11-300x182.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><\/a><\/p>\n<p><em>Execution flow after hooking.<\/em><\/p>\n<p>The Init() function overwrites the first 8 bytes of transact() with an 8-byte hook code that jumps to the keylogger. The original 8 bytes are copied to a separate memory space that has stub code for jumping back to the transact() function.<\/p>\n<p>When the transact() function is called (Step 1), the installed keylogger executes first due to the hook code. The keylogger checks the function code to see whether it is 0x6 (setComposingText) or 0x8 (commitText). If true, the function calls android::Parcel::enforceInterface(\u201ccom.android.internal.view.IInputContext\u201d) and reads the keystroke data from the parcel and logs it to a file. After the keylogging is complete (Step 2), the function executes the 8 bytes of instructions that were copied from the start of the transact() function. Finally the stub code runs (Step 3), which jumps back to transact() at offset +8.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74096 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12.png\" alt=\"\" width=\"866\" height=\"522\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12.png 866w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12-300x181.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12-768x463.png 768w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-12-830x500.png 830w\" sizes=\"auto, (max-width: 866px) 100vw, 866px\" \/><\/a><\/p>\n<p><em>Code to check the function code for keylogging.<\/em><\/p>\n<p>The data passed to the transact() function when the function code is 0x6 or 0x8 is the character sequence of the user\u2019s input. This value is encoded and written to \/data\/local\/tmp\/ktmu\/ulmndd.tmp. After some time passes, this file is renamed to \/data\/local\/tmp\/ktmu\/finidk.&lt;timestamp&gt;.<\/p>\n<p><a href=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-13.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-74097 size-full\" src=\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-13.png\" alt=\"\" width=\"695\" height=\"552\" srcset=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-13.png 695w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-13-300x238.png 300w, https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-13-630x500.png 630w\" sizes=\"auto, (max-width: 695px) 100vw, 695px\" \/><\/a><\/p>\n<p><em>Logging keystrokes to a file.<\/em><\/p>\n<h2>Conclusion<\/h2>\n<p>We have looked at how simple code can log user keystrokes in mobile devices. If the infected mobile device is an executive\u2019s company phone, the situation is worse. An executive\u2019s phone may contain corporate or business secrets, plus contacts of other executives, which can have a huge negative business impact if leaked. The mobility of phones requires they be treated differently than desktop computers from an incident-response perspective: It is more difficult to trace data leaks because of the characteristics of mobile devices. Thus organizations must create incident-response and other security policies for mobile devices. If corporations cannot secure their mobile devices, they are exposing a huge attack surface to cybercriminals.<\/p>\n<p>Never install Android applications from unknown sources and always keep your device\u2019s operating system up to date to help protect against attacks. These simple steps will significantly lower the chances of infection. If your device quickly loses battery power or generates an abnormal amount of network traffic, it may have been compromised\u2014requiring a factory reset or a security solution to delete malware.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges&#8230;<\/p>\n","protected":false},"author":674,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[442],"tags":[76,180,214],"coauthors":[3973],"class_list":["post-74083","post","type-post","status-publish","format-standard","hentry","category-mcafee-labs","tag-cybercrime","tag-malware","tag-mobile-security1"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog<\/title>\n<meta name=\"description\" content=\"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog\" \/>\n<meta property=\"og:description\" content=\"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\" \/>\n<meta property=\"og:site_name\" content=\"McAfee Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/McAfee\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/McAfee\/\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-15T22:31:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-28T03:16:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"603\" \/>\n\t<meta property=\"og:image:height\" content=\"301\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"McAfee\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@McAfee\" \/>\n<meta name=\"twitter:site\" content=\"@McAfee\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"McAfee\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\"},\"author\":{\"name\":\"McAfee\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/47851fdb92fad9456152405839c92efa\"},\"headline\":\"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code\",\"datePublished\":\"2017-05-15T22:31:31+00:00\",\"dateModified\":\"2025-05-28T03:16:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\"},\"wordCount\":1279,\"publisher\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\",\"keywords\":[\"cybercrime\",\"malware\",\"mobile security\"],\"articleSection\":[\"McAfee Labs\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\",\"url\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\",\"name\":\"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\",\"datePublished\":\"2017-05-15T22:31:31+00:00\",\"dateModified\":\"2025-05-28T03:16:32+00:00\",\"description\":\"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting\",\"breadcrumb\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage\",\"url\":\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\",\"contentUrl\":\"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\/\/www.mcafee.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Other Blogs\",\"item\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"McAfee Labs\",\"item\":\"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#website\",\"url\":\"https:\/\/www.mcafee.com\/blogs\/\",\"name\":\"McAfee Blog\",\"description\":\"Internet Security News\",\"publisher\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.mcafee.com\/blogs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#organization\",\"name\":\"McAfee\",\"url\":\"https:\/\/www.mcafee.com\/blogs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2023\/02\/mcafee-logo.png\",\"contentUrl\":\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2023\/02\/mcafee-logo.png\",\"width\":1286,\"height\":336,\"caption\":\"McAfee\"},\"image\":{\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/McAfee\/\",\"https:\/\/x.com\/McAfee\",\"https:\/\/www.linkedin.com\/company\/mcafee\/\",\"https:\/\/www.youtube.com\/McAfee\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/47851fdb92fad9456152405839c92efa\",\"name\":\"McAfee\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/image\/1ffadfeeda1f4f9e7891a81f27a9ecf4\",\"url\":\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2020\/08\/Original-Logo-96x96.png\",\"contentUrl\":\"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2020\/08\/Original-Logo-96x96.png\",\"caption\":\"McAfee\"},\"description\":\"We're here to make life online safe and enjoyable for everyone.\",\"sameAs\":[\"https:\/\/www.facebook.com\/McAfee\/\",\"https:\/\/www.linkedin.com\/company\/mcafee\/\",\"https:\/\/x.com\/McAfee\"],\"url\":\"https:\/\/www.mcafee.com\/blogs\/author\/mcafee\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog","description":"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog","og_description":"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting","og_url":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/","og_site_name":"McAfee Blog","article_publisher":"https:\/\/www.facebook.com\/McAfee\/","article_author":"https:\/\/www.facebook.com\/McAfee\/","article_published_time":"2017-05-15T22:31:31+00:00","article_modified_time":"2025-05-28T03:16:32+00:00","og_image":[{"width":603,"height":301,"url":"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png","type":"image\/png"}],"author":"McAfee","twitter_card":"summary_large_image","twitter_creator":"@McAfee","twitter_site":"@McAfee","twitter_misc":{"Written by":"McAfee","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#article","isPartOf":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/"},"author":{"name":"McAfee","@id":"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/47851fdb92fad9456152405839c92efa"},"headline":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code","datePublished":"2017-05-15T22:31:31+00:00","dateModified":"2025-05-28T03:16:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/"},"wordCount":1279,"publisher":{"@id":"https:\/\/www.mcafee.com\/blogs\/#organization"},"image":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage"},"thumbnailUrl":"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png","keywords":["cybercrime","malware","mobile security"],"articleSection":["McAfee Labs"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/","url":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/","name":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code | McAfee Blog","isPartOf":{"@id":"https:\/\/www.mcafee.com\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage"},"image":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage"},"thumbnailUrl":"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png","datePublished":"2017-05-15T22:31:31+00:00","dateModified":"2025-05-28T03:16:32+00:00","description":"Many attacks on mobile devices use social engineering to initially infect a victim\u2019s system. They download malware and elevate privileges by exploiting","breadcrumb":{"@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#primaryimage","url":"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png","contentUrl":"https:\/\/securingtomorrow.mcafee.com\/wp-content\/uploads\/2017\/05\/20170515-Chrysaor-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/analysis-chrysaor-keylogging-mechanism-shows-power-simple-malicious-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.mcafee.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Other Blogs","item":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/"},{"@type":"ListItem","position":3,"name":"McAfee Labs","item":"https:\/\/www.mcafee.com\/blogs\/other-blogs\/mcafee-labs\/"},{"@type":"ListItem","position":4,"name":"Analysis of Chrysaor Keylogging Mechanism Shows Power of Simple Malicious Code"}]},{"@type":"WebSite","@id":"https:\/\/www.mcafee.com\/blogs\/#website","url":"https:\/\/www.mcafee.com\/blogs\/","name":"McAfee Blog","description":"Internet Security News","publisher":{"@id":"https:\/\/www.mcafee.com\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mcafee.com\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mcafee.com\/blogs\/#organization","name":"McAfee","url":"https:\/\/www.mcafee.com\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mcafee.com\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2023\/02\/mcafee-logo.png","contentUrl":"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2023\/02\/mcafee-logo.png","width":1286,"height":336,"caption":"McAfee"},"image":{"@id":"https:\/\/www.mcafee.com\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/McAfee\/","https:\/\/x.com\/McAfee","https:\/\/www.linkedin.com\/company\/mcafee\/","https:\/\/www.youtube.com\/McAfee"]},{"@type":"Person","@id":"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/47851fdb92fad9456152405839c92efa","name":"McAfee","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mcafee.com\/blogs\/#\/schema\/person\/image\/1ffadfeeda1f4f9e7891a81f27a9ecf4","url":"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2020\/08\/Original-Logo-96x96.png","contentUrl":"https:\/\/www.mcafee.com\/blogs\/wp-content\/uploads\/2020\/08\/Original-Logo-96x96.png","caption":"McAfee"},"description":"We're here to make life online safe and enjoyable for everyone.","sameAs":["https:\/\/www.facebook.com\/McAfee\/","https:\/\/www.linkedin.com\/company\/mcafee\/","https:\/\/x.com\/McAfee"],"url":"https:\/\/www.mcafee.com\/blogs\/author\/mcafee\/"}]}},"_links":{"self":[{"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/posts\/74083","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/users\/674"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/comments?post=74083"}],"version-history":[{"count":2,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/posts\/74083\/revisions"}],"predecessor-version":[{"id":214496,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/posts\/74083\/revisions\/214496"}],"wp:attachment":[{"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/media?parent=74083"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/categories?post=74083"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/tags?post=74083"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.mcafee.com\/blogs\/wp-json\/wp\/v2\/coauthors?post=74083"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}