Using Detect It Easy to… detect it easy

I love Detect It Easy. It’s my go-to tool when it comes to triaging malicious samples and it continuously exceeds my expectations… Except the times when I forget to use it EARLY in my triage process !!!

A random person from the internet contacted me today asking to help them with unpacking of some unknown linux malware. They thought it might have been protected by SHC, and since they have read my post about it, they assumed I can help…

Now, I have dealt with many *nix malware samples in the past, but I would lie saying that they make me comfortable. I am still primarily Windows-centric malware analyst and anytime I have to look at anything else (meaning: non-Windowsish) I… panic 🙂 Cuz I know that I am always behind, that it won’t stop me, and that I will want to prove to myself that ‘I still can crack the unknown’, despite it being very uncomfortable waters for me…

So…

I opened this sample in IDA, I also opened the sample in edb. Kinda in parallel. I could immediately see it’s protected, so after some back and forth I managed to oversee the unpacking, and then dump the memory regions showing all the unprotected code and data. But. I felt really strongly that it was not enough. It felt “dirty”. That’s because I suspected it may be some well-known protector at work, and me not even knowing about it had a very dramatic implication – I just suck at ELF reversing!

After the fruitful dynamic analysis with edb, my next tool of choice was upx –fileinfo <file>. It’s not a command line argument supported on Windows, but it is on Linux. It’s awesome when it works f.ex. the compressed login program I talk about later gives the following output when treated as input to upx –fileinfo <file>:

./login [amd64-linux.elf, linux/amd64]
23204 bytes, compressed by UPX 13, method 2, level 8, filter 0x49/0x02

Yup. The UPX tool tries to tell you if the file is compressed with … well.. UPX, plus all the gore technical compression type details.

The result of running –fileinfo over our sample is this tho:

upx: sample: NotPackedException: not packed by UPX

Hmm but it does really look quite familiar. Yes, I have seen UPXed ELF files before: not enough to feel comfy recognizing them all on the spot, but still enough to kinda get a ‘feel’ that ‘they might have been UPXed’ about them.

Hard to explain. When you know, you just know…

So, then I decided to compress a random ELF binary to see how the output file looks like, for science. I compressed /bin/login and there was no surprises… The way the compressed file looked in a binary editor resembled the way sample I was dealing with was looking like… very closely… (and yes, that’s the compressed login sample I referred to above).

So…

At this stage I knew that while UPX tool didn’t recognize it, it was most likely a modified UPXed sample…

Before we continue, a digression: there is a fantastic blog post written by Akamai researchers about modified UPX and ‘unpackable’ ELF binaries – sadly, I only found it during my ‘lessons learned’ stage. If you deal with ELF file analysis, I highly recommend reading that post asap.

Back to my mundane analysis — this is when DetectItEasy enters the scene.

Yes, I was wrong. I should have used it from the start, as I usually do for all the PE files, but I fooled myself thinking that ‘I probably don’t need it’ as ELF files are really not that popular and I can crack any of them in no time. Stupid, stupid me.

Loading the sample into DetectItEasy produced this result immediately:

You seeing what I see?

DetecftItEasy not only recognizes the protector (UPX), but also that it is modified, and… then… lo and behold, it gives us a hint WHAT has been modified. That ‘45564F4C’ string included in a ‘Modified’ packer section refers to the string inside the modified UPXed sample where standard UPX’s signature ‘UPX!’ has been replaced with ‘45564F4C’. Once you see it, the only thing you need to do is to edit the sample and replace all occurrences of ‘45564F4C’ with ‘UPX!’, and then save it as <patched_sample>. Then you just run ‘upx-d <patched_sample>‘ and if lucky, you will get a properly unpacked sample! If you read the Akamai post you know it won’t be that easy all the time, but Linux world is way behind Windows when it comes to code protection and we can still win many of these reversing battles pretty easily.

I have sent two versions of the findings to the ransom internet person. One was memory dumps of decompressed (and decrypted) malware taken directly from memory of the process, and then the fully unpacked version of the malware. I probably spent 45 minutes on the first part, and 5 minutes on the second. It’s a very humbling experience, because it confirmed that I truly suck at ELF file reversing!

The words that go adapataadadapata

Long time ago (when I used to make my own cross-words), one of my favorite targets was building them in a way that made them either have some special properties, or follow some special rules… For example, if I could build one that was composed of as many 5-letter words that start with ‘A’, have the third letter ‘A’, and the last one ‘A’ as well, then I was pretty happy. This is because there is a very limited number of words that meet these requirements and it was loooong time before the internet, so finding new words that met these requirements was NOT easy.

Yes, back in a day I used to literally brute-force many dictionaries and encyclopedias. Please don’t judge me 🙂

To make things worse, I was aware of many longer words that were ‘AxAxA…xA’-centric f.ex. Alabama, or Atacama. I didn’t have enough of these 7-worders though to built a proper cross-word ever…

It’s time to fix that.

Let’s start with the title of this post. After combing through many dictionaries I was able to find (I believe) the longest word that contains the longest number of letters ‘A’ in it. I am not the only one pursuing this weird objective – see this post and this page. I’d like to believe I did better, but while it is a good conversation starter for this blog post, it also demonstrates my ignorance when it comes to languages… And yes, the fact you can google “it” and find “it” doesn’t mean it’s real… So, while I found two meanings of this word ‘adapataadadapata’:

I would appreciate a feedback – if you know any of these languages and can correct/confirm, please let me know….

Now, back to 7-letter words. These are easy… or not. I am in awe how many I was able to find! Yes, some of them are probably portmanteaus, blends, contractions, onomatopeias, or represent some other, most likely unknown to me, linguistical phenomenon… plus, you will find lots of words here from many languages… not just English… but this makes it even more attractive – this is a crossword-maker word set I probably have dreamt of when I was 12… So if you make cool crosswords based on this word set, you do need to send me a copy… deal? 🙂

So, here it is… the (hopefully) ultimate 7-letter long, multilingual ‘a.a.a.a’ set:

  • abababa
  • ababaca
  • ababada
  • ababaha
  • ababaia
  • ababaka
  • ababala
  • ababaya
  • abacaba
  • abacaca
  • abacada
  • abacama
  • abacana
  • abacara
  • abacata
  • abadaba
  • abadala
  • abadana
  • abadara
  • abadava
  • abafada
  • abafala
  • abafana
  • abafara
  • abafava
  • abagaba
  • abagada
  • abagava
  • abaiana
  • abajaba
  • abajada
  • abajara
  • abakada
  • abakaka
  • abakala
  • abakama
  • abakana
  • abakata
  • abakaya
  • abalaba
  • abalada
  • abalaia
  • abalaka
  • abalala
  • abalama
  • abalara
  • abalasa
  • abalata
  • abalava
  • abamada
  • abanaba
  • abanaca
  • abanada
  • abanafa
  • abanaka
  • abanala
  • abanana
  • abanara
  • abanaua
  • abanava
  • abaraba
  • abaraga
  • abaraha
  • abaraja
  • abaraka
  • abarana
  • abarata
  • abaraya
  • abasaga
  • abasala
  • abasara
  • abatada
  • abatala
  • abatana
  • abatara
  • abatata
  • abatava
  • abavana
  • abayada
  • abazaba
  • abazaca
  • abazama
  • abazana
  • abazaya
  • acababa
  • acabada
  • acabala
  • acabana
  • acabara
  • acabava
  • acacaca
  • acacaia
  • acadama
  • acadara
  • acadasa
  • acadava
  • acaeaxa
  • acafala
  • acafama
  • acagada
  • acahana
  • acahata
  • acaiaba
  • acaiaca
  • acajada
  • acalaca
  • acalada
  • acalana
  • acalara
  • acalata
  • acalava
  • acamaba
  • acamada
  • acamala
  • acamana
  • acamara
  • acamava
  • acamaya
  • acanaca
  • acanada
  • acanaha
  • acanala
  • acapala
  • acapana
  • acapara
  • acaraba
  • acarada
  • acarama
  • acarana
  • acarapa
  • acarara
  • acarata
  • acaraua
  • acarava
  • acasaca
  • acasada
  • acasaka
  • acasala
  • acataba
  • acatada
  • acataia
  • acatala
  • acatama
  • acatara
  • acatava
  • acavala
  • acawama
  • acayaba
  • adabaca
  • adabana
  • adabasa
  • adacaja
  • adacata
  • adadada
  • adadana
  • adafada
  • adafaga
  • adafaxa
  • adagada
  • adagama
  • adagapa
  • adahaka
  • adahala
  • adakala
  • adakasa
  • adalana
  • adalara
  • adalaxa
  • adamaba
  • adamada
  • adamafa
  • adamaga
  • adamala
  • adamama
  • adamana
  • adamara
  • adamasa
  • adamata
  • adamaua
  • adamava
  • adamawa
  • adamaya
  • adanaca
  • adanafa
  • adanaga
  • adanapa
  • adanara
  • adapaka
  • adapana
  • adapata
  • adaraga
  • adaraja
  • adaraka
  • adarama
  • adarana
  • adarava
  • adarawa
  • adasaca
  • adasama
  • adataba
  • adataca
  • adatada
  • adatama
  • adatara
  • adayana
  • aeaoara
  • aeatala
  • aeayala
  • afabaka
  • afacana
  • afafafa
  • afagada
  • afagara
  • afagava
  • afahaja
  • afakasa
  • afalaca
  • afalaga
  • afalara
  • afalava
  • afamaba
  • afamada
  • afamara
  • afamava
  • afanaba
  • afanada
  • afanala
  • afanara
  • afanata
  • afanava
  • afaqada
  • afarara
  • afarata
  • afarava
  • afatala
  • afatara
  • afatava
  • afavafa
  • afaxaza
  • agabasa
  • agadara
  • agafaba
  • agafada
  • agafala
  • agafara
  • agafava
  • agagaga
  • agagata
  • agahaja
  • agahaka
  • agaiata
  • agakama
  • agalafa
  • agalana
  • agamana
  • agamata
  • aganada
  • agapaga
  • agaraga
  • agarava
  • agasaja
  • agasata
  • agatada
  • agatata
  • agazala
  • agazapa
  • ahadada
  • ahadasa
  • ahagafa
  • ahahaha
  • ahahaka
  • ahajaka
  • ahajala
  • ahajara
  • ahakawa
  • ahalala
  • ahalara
  • ahalaya
  • ahamada
  • ahanana
  • ahanawa
  • ahapala
  • ahapaxa
  • aharaja
  • aharaka
  • aharana
  • aharata
  • ahatara
  • ahavada
  • ahavana
  • ahaxaha
  • aiaiaia
  • aiamaja
  • aiamara
  • aiapana
  • aiarada
  • ajabaja
  • ajacada
  • ajagara
  • ajagava
  • ajajana
  • ajakaja
  • ajakala
  • ajakara
  • ajakava
  • ajalaza
  • ajamana
  • ajamata
  • ajapada
  • ajaraca
  • ajarada
  • ajarala
  • ajarana
  • ajasama
  • ajataba
  • ajataja
  • ajatama
  • ajavaha
  • ajavala
  • ajavama
  • ajavana
  • ajazaja
  • akabafa
  • akabala
  • akabana
  • akadala
  • akadama
  • akadana
  • akagawa
  • akahada
  • akahama
  • akahana
  • akahara
  • akahasa
  • akahata
  • akajawa
  • akakaba
  • akakaha
  • akakana
  • akakata
  • akakaza
  • akalaha
  • akalaka
  • akalala
  • akalama
  • akalara
  • akalaya
  • akamala
  • akamata
  • akanaca
  • akanawa
  • akapana
  • akapata
  • akapaza
  • akaraja
  • akaraka
  • akarana
  • akarata
  • akarawa
  • akasaka
  • akasawa
  • akataha
  • akataka
  • akatama
  • akatara
  • akatata
  • akatawa
  • akataya
  • akawaka
  • akawama
  • akawapa
  • akawara
  • akawaza
  • akayama
  • akayaza
  • akazawa
  • alababa
  • alabada
  • alabala
  • alabama
  • alabana
  • alabara
  • alabata
  • alabava
  • alabawa
  • alabaza
  • alacaga
  • alacaia
  • alacala
  • alafaga
  • alafaia
  • alafaya
  • alagaba
  • alagada
  • alagala
  • alagara
  • alagata
  • alagava
  • alagaya
  • alaiana
  • alaiara
  • alakada
  • alakaha
  • alakama
  • alakana
  • alakaya
  • alalaka
  • alalala
  • alalama
  • alalawa
  • alamada
  • alamala
  • alamama
  • alamana
  • alamaqa
  • alamara
  • alamasa
  • alamawa
  • alamaya
  • alanaba
  • alanaca
  • alanaga
  • alanaka
  • alanara
  • alapaca
  • alapada
  • alapaha
  • alapala
  • alapama
  • alapana
  • alapara
  • alapava
  • alaraja
  • alarara
  • alaraua
  • alarava
  • alasaha
  • alasaka
  • alasala
  • alasana
  • alasapa
  • alasava
  • alatama
  • alatasa
  • alataua
  • alavala
  • alavara
  • alayaea
  • alazana
  • amabala
  • amabara
  • amacaba
  • amacaca
  • amacata
  • amadana
  • amadata
  • amagaba
  • amagaca
  • amagada
  • amagama
  • amagana
  • amagara
  • amagasa
  • amagata
  • amagava
  • amahara
  • amaiawa
  • amajara
  • amakara
  • amakawa
  • amalaia
  • amalaka
  • amalara
  • amalava
  • amalaya
  • amamada
  • amamama
  • amamana
  • amamara
  • amanaba
  • amanaca
  • amanada
  • amanaga
  • amanaja
  • amanaka
  • amanala
  • amanama
  • amanana
  • amanara
  • amanasa
  • amanata
  • amapala
  • amapama
  • amapara
  • amaraba
  • amaraca
  • amarada
  • amarala
  • amarara
  • amarata
  • amarava
  • amasaba
  • amasada
  • amasala
  • amasara
  • amatada
  • amataga
  • amatala
  • amatama
  • amatana
  • amatara
  • amatata
  • amatava
  • amauaca
  • amawaca
  • amawaka
  • amayaca
  • amayaka
  • amayana
  • amayasa
  • anababa
  • anabada
  • anabaka
  • anabara
  • anabasa
  • anabata
  • anabaza
  • anacala
  • anacapa
  • anacara
  • anadala
  • anadama
  • anadapa
  • anadara
  • anadava
  • anafada
  • anafaga
  • anafaia
  • anafara
  • anafava
  • anafaya
  • anafaza
  • anagama
  • anagana
  • anagara
  • anagata
  • anagawa
  • anagaza
  • anahama
  • anahana
  • anahata
  • anajana
  • anakana
  • anakara
  • anakata
  • analama
  • analana
  • analara
  • analasa
  • analaza
  • anamaja
  • anamala
  • anamara
  • anamasa
  • anamata
  • ananaha
  • ananaia
  • ananana
  • ananasa
  • anapada
  • anapaka
  • anapala
  • anapara
  • anapata
  • anapaya
  • anarafa
  • anaraha
  • anaraja
  • anaraka
  • anarana
  • anarava
  • anasaga
  • anasaia
  • anasana
  • anatada
  • anataga
  • anataka
  • anatama
  • anatana
  • anatara
  • anatasa
  • anatava
  • anataya
  • anataza
  • anauaga
  • anauawa
  • anavada
  • anavaja
  • anavata
  • anavaya
  • anawapa
  • anawara
  • anawaza
  • anayama
  • anayana
  • anayasa
  • anazama
  • anazasa
  • anazawa
  • aoapasa
  • apacara
  • apacaya
  • apadaca
  • apadaka
  • apadama
  • apadana
  • apagaba
  • apagada
  • apagala
  • apagama
  • apagara
  • apagata
  • apagava
  • apahala
  • apahara
  • apahata
  • apajaha
  • apajala
  • apakala
  • apakara
  • apakata
  • apalada
  • apalala
  • apalama
  • apalana
  • apalara
  • apalasa
  • apalaza
  • apamada
  • apamaea
  • apamama
  • apamara
  • apamava
  • apanaba
  • apanada
  • apanaga
  • apanama
  • apanara
  • apanata
  • apanava
  • apanaya
  • apanaza
  • apapaha
  • apaqaya
  • aparaba
  • aparaca
  • aparada
  • aparaka
  • aparana
  • aparara
  • aparata
  • aparava
  • apasada
  • apasara
  • apasata
  • apatana
  • apatara
  • apatata
  • apatava
  • apavada
  • apavaha
  • apavara
  • apayama
  • apayana
  • apayata
  • aqaqaba
  • aqaqaqa
  • aqaxaja
  • arabaca
  • arabada
  • arabaja
  • arabama
  • arabana
  • arabara
  • arabasa
  • arabata
  • arabaya
  • arabaza
  • aracama
  • aracana
  • aracata
  • aradada
  • aradara
  • aradava
  • arafata
  • aragana
  • arahama
  • arahasa
  • arahata
  • arahaza
  • arajaka
  • arajasa
  • arakama
  • arakata
  • arakawa
  • aralaka
  • aralama
  • aralara
  • aramaba
  • aramada
  • aramaea
  • aramaga
  • aramala
  • aramama
  • aramana
  • aramara
  • aramasa
  • aramata
  • aramava
  • aramaya
  • aranaba
  • aranaca
  • aranada
  • aranaja
  • aranala
  • aranara
  • aranata
  • aranawa
  • arapaca
  • arapaha
  • arapama
  • arapana
  • arapata
  • arapawa
  • araqara
  • araraca
  • araraka
  • ararama
  • ararata
  • araraua
  • ararawa
  • arasana
  • arasawa
  • arataba
  • arataca
  • arataia
  • arataka
  • aratama
  • aratata
  • aratava
  • aravaca
  • aravafa
  • aravala
  • arawana
  • arawata
  • arawawa
  • arawaza
  • araxana
  • arayaca
  • arayana
  • arazada
  • asabaha
  • asabala
  • asabasa
  • asadaca
  • asadaha
  • asadala
  • asadana
  • asagama
  • asagara
  • asagata
  • asagawa
  • asagaya
  • asahaka
  • asahana
  • asahara
  • asahata
  • asahaya
  • asakala
  • asakara
  • asakata
  • asakawa
  • asalaca
  • asalara
  • asalaya
  • asamana
  • asamaya
  • asanaba
  • asanapa
  • asanata
  • asanawa
  • asapala
  • asaqaya
  • asaraba
  • asaraca
  • asarara
  • asasama
  • asatada
  • asatana
  • asavala
  • asayama
  • atabaca
  • atabafa
  • atabaka
  • atabala
  • atabana
  • atacaba
  • atacada
  • atacala
  • atacama
  • atacana
  • atacara
  • atacata
  • atacava
  • atafaga
  • atafata
  • atafaza
  • atagama
  • atagara
  • atagasa
  • atagata
  • atagaya
  • atahada
  • atahaka
  • atahara
  • atajaba
  • atajada
  • atajala
  • atajara
  • atakama
  • atakapa
  • atakara
  • atakata
  • atakawa
  • atalaga
  • atalaia
  • atalana
  • atalara
  • atalaya
  • atamada
  • atamama
  • atamana
  • atamara
  • atamasa
  • atamaya
  • atanaca
  • atanaka
  • atanala
  • atanara
  • atanava
  • atanaza
  • atapala
  • atapata
  • ataqana
  • ataqata
  • atarapa
  • atarara
  • atarata
  • atarawa
  • atasaja
  • atasata
  • atataca
  • atataka
  • atatama
  • atatata
  • atauawa
  • atavaka
  • atavata
  • atawapa
  • ataxava
  • atayana
  • atazana
  • auaraxa
  • avabaca
  • avabawa
  • avacada
  • avacana
  • avacara
  • avacata
  • avacaya
  • avadana
  • avadata
  • avadawa
  • avafaja
  • avagada
  • avagaha
  • avagama
  • avagana
  • avagapa
  • avagata
  • avahaba
  • avahada
  • avahana
  • avahara
  • avahasa
  • avakara
  • avakaza
  • avalaba
  • avalada
  • avalala
  • avalara
  • avalava
  • avamama
  • avamana
  • avamata
  • avanata
  • avapaka
  • avapaza
  • avarada
  • avaraja
  • avaraka
  • avarala
  • avarama
  • avarana
  • avarata
  • avaraya
  • avasada
  • avasana
  • avasara
  • avataga
  • avatara
  • avatasa
  • avatata
  • avatava
  • avavada
  • avavata
  • avawaka
  • avawama
  • avawana
  • avawaxa
  • avayava
  • avazara
  • awabana
  • awafana
  • awagaka
  • awagana
  • awagasa
  • awahama
  • awaiama
  • awakama
  • awakara
  • awakasa
  • awakata
  • awamada
  • awanara
  • awanata
  • awaraba
  • awarada
  • awarara
  • awasaka
  • awasara
  • awatada
  • awatara
  • awawana
  • awazaka
  • awazana
  • axadala
  • axadawa
  • axamasa
  • axaraca
  • axaraga
  • axaxaxa
  • ayadana
  • ayagasa
  • ayagata
  • ayahasa
  • ayajata
  • ayakaka
  • ayakama
  • ayakawa
  • ayalaha
  • ayalara
  • ayalata
  • ayalava
  • ayamaha
  • ayamara
  • ayanaca
  • ayapana
  • ayaqaya
  • ayaraba
  • ayataka
  • ayatana
  • ayayana
  • ayazaga
  • azabara
  • azacana
  • azacaya
  • azadada
  • azafama
  • azafata
  • azagaha
  • azagaia
  • azagana
  • azagata
  • azagaya
  • azahara
  • azakaza
  • azalaca
  • azalana
  • azalara
  • azamawa
  • azapata
  • azaraba
  • azarada
  • azarara
  • azarava
  • azawara
  • azayaka
  • azazaca
  • azazaza