Slashdot Mirror


Avast Launches Open-Source Decompiler For Machine Code (techspot.com)

Greg Synek reports via TechSpot: To help with the reverse engineering of malware, Avast has released an open-source version of its machine-code decompiler, RetDec, that has been under development for over seven years. RetDec supports a variety of architectures aside from those used on traditional desktops including ARM, PIC32, PowerPC and MIPS. As Internet of Things devices proliferate throughout our homes and inside private businesses, being able to effectively analyze the code running on all of these new devices becomes a necessity to ensure security. In addition to the open-source version found on GitHub, RetDec is also being provided as a web service.

Simply upload a supported executable or machine code and get a reasonably rebuilt version of the source code. It is not possible to retrieve the exact original code of any executable compiled to machine code but obtaining a working or almost working copy of equivalent code can greatly expedite the reverse engineering of software. For any curious developers out there, a REST API is also provided to allow third-party applications to use the decompilation service. A plugin for IDA disassembler is also available for those experienced with decompiling software.

113 comments

  1. Wow! So many architectures! by viperidaenz · · Score: 0, Offtopic

    PIC32 and MIPS!

    It's like a PIC32 isn't actually a MIPS based MCU.... oh wait, it is.

    1. Re: Wow! So many architectures! by Anonymous Coward · · Score: 5, Insightful

      Get over yourself and stop complaining about things being given away to you for free. It's a shame that people complain about open source software when it's being given to them for free. The decompiler could have never been released to the public or released as a closed source program. Your complaint about the architectures it supports or doesn't support totally rings hollow.

    2. Re:Wow! So many architectures! by J053 · · Score: 4, Informative

      ...but no x86_64.

    3. Re:Wow! So many architectures! by bws111 · · Score: 2

      Or any other 64 bit arch.

    4. Re:Wow! So many architectures! by Anonymous Coward · · Score: 0

      x86_64 is (more or less) a superset of x86. If RetDec doesn't support x86_64 directly, it won't be able to decompile executable files that use it.

    5. Re:Wow! So many architectures! by viperidaenz · · Score: 2

      It's accurate. According to retdec.com, RetDec only supports 32bit architectures.

    6. Re:Wow! So many architectures! by hcs_$reboot · · Score: 1

      ...but no x86_64.

      yet.

      --
      Slashdot, fix the reply notifications... You won't get away with it...
    7. Re:Wow! So many architectures! by jonwil · · Score: 3, Insightful

      The thing is open source, if you really want x86-64, grab the code and write something :)

    8. Re:Wow! So many architectures! by ShanghaiBill · · Score: 2

      The thing is open source, if you really want x86-64, grab the code and write something :)

      x86 is hard to decompile. It doesn't have fixed length instructions, so it is difficult to figure out where opcodes begin and end. It is even possible to write code that can execute two different sequences of instructions by offsetting the instruction pointer by a byte. I don't think any decompiler could deobfusticate that.

    9. Re: Wow! So many architectures! by sad_ · · Score: 1

      Get over yourself and stop complaining about things being given away to you for free. It's a shame that people complain about open source software when it's being given to them for free.

      isn't that true. what i find even more amazing is that those same people mostly never complain about shortcomings of commercial software.

      --
      On a long enough timeline, the survival rate for everyone drops to zero.
    10. Re:Wow! So many architectures! by Hal_Porter · · Score: 1

      PIC32 binaries are pronounced with more of a guttural accent than MIPS ones.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    11. Re:Wow! So many architectures! by Anonymous Coward · · Score: 0

      That is true for almost every architecture. Even if you ignore the few 32-bit instructions in thumb it is still common to interleave data with the code.
      The way disassemblers solve that is the keep track of the code entry point and disassemble from there while collecting where to jumps/function calls happen.
      The tricky part is when function pointers are used.
      Usually this is solved by letting the disassembler be an environment you work in rather than a standalone tool.
      It disassembles the machine codes and assigns temporary labels. The user figures out what the code does and changes the labels and adds new entrypoints manually whenever he/she finds jump tables and similar constructs.

    12. Re: Wow! So many architectures! by Anonymous Coward · · Score: 0

      Wow, what an original comment from an open source fanboy. Totally havenâ(TM)t heard this arrogant response every single time someone has the nerve to mention something they wish existed in or was different about OSS.

    13. Re:Wow! So many architectures! by ShanghaiBill · · Score: 1

      Even if you ignore the few 32-bit instructions in thumb it is still common to interleave data with the code.

      The difference is that with x86 you can interleave code with code.
      You can't do that with RISC.

  2. A debugger does this by Snotnose · · Score: 2, Interesting

    Back in the late 70's I loaded TRS-80 games into my debugger, it also let me dump the results into a text file. Finding things like "jump to label_foo" helped, but was not the be-all end-all.

    The killer was when I debugged my TRS-80 BASIC interpreter in ROM. You'd have some 3 byte instruction, "jump here", then somewhere else you'd have a 3 byte instruction "jump into the middle of this 3 byte instruction to do something completely different". My understanding is Bill did those, but for all the evil he did I have major respect for his coding abilities.

    I beat a lot of games running my debugger on them. 90% sure it was called TRS-MON, but wouldn't bet my retirement on it.

    1. Re:A debugger does this by Anonymous Coward · · Score: 0

      That was probably a disassembler for Z-80 machine code. This is aiming to produce a higher-level C++ source representation.

    2. Re:A debugger does this by Snotnose · · Score: 1

      What part of "TRS-80" and "late 70's" would lead you to think anything else?

      I'm guessing the reverse engineered C++ code is gonna cost a hella amount of time to reverse engineer the reverse engineered code the tool generates.

      I've reversed engineered C. C++? Not seeing how a tool is gonna be a lot of help. Basing this on going from C to ASM is pretty straightforward. Going from C++ to C is problematic, especially as you are going C++ -> ASMas opposed to C++ -> C.

    3. Re:A debugger does this by suburbanmediocrity · · Score: 1

      Wow, I just came to the comment section to talk about using a disassembler on the trs-80 to beat games. Is that you capn K?

    4. Re:A debugger does this by Tony+Isaac · · Score: 3, Insightful

      One problem with a lot of those old debuggers and disassemblers was that they weren't that smart about what they were looking at. You often had to tell them a range of memory to disassemble, and they would blindly treat everything they saw as code, even if it was actually data. This was partly a problem because in those days, code and data weren't so neatly divided from one another, everything could live anywhere in memory. It was actually common for software to "poke" data into memory and then execute it. Ah, the good old days.

    5. Re:A debugger does this by Anonymous Coward · · Score: 0

      What a piece of garbage you've written there.

      A binary is a binary, a decompiler won't care whether you compiled a C++, assembler, C or whatever language the program being reversed was compiled on.
        This specific decompiler will just spew out the nearest C code equivalent of any binary blob.

    6. Re:A debugger does this by AmiMoJo · · Score: 4, Interesting

      Indeed, poking code is often the fastest way to do stuff on those older systems where memory bandwidth and CPU clocks are very limited.

      We called it speedcode back in the day. Say you wanted to calculate and plot a load of points on the screen. Normally you would calculate the coordinates, store them and then later pass a reference to some plotting function. To do it faster you could turn calls to the plot function into an unrolled series of instructions, and instead of reading the coordinates every time just poke them directly into the immediate instruction op-codes.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:A debugger does this by bobintetley · · Score: 2

      We called it self-modifying code. It was really useful for handling interrupts on low end chips like the 6502. In the same sort of way you described, you could STA/STX/STY the register values in the bytes after the LDA/LDY/LDX opcodes at the end of the interrupt handler to save intermediate storage.

    8. Re:A debugger does this by Anonymous Coward · · Score: 0

      A binary is a binary, a decompiler won't care whether you compiled a C++, assembler, C or whatever language the program being reversed was compiled on.

      Huh? A disassembler won't care, but a decompiler by definition has to know what it's trying to decompile.

      The goal isn't to get "any old high-level source," it's to get something resembling the original structure.

  3. Should crossref with github. by shess · · Score: 4, Interesting

    Perhaps if you built a fingerprint based on the structure of calls across functions, you could map it back to source code from github. Not that malware is generally posted to github, but I'd be surprised if they didn't use a TON of third_party libraries, and factoring all of those out would make what's left easier to understand and also let you focus better.

  4. doesnt work by musikit · · Score: 0

    i uploaded a file containing several c files into a lib. everything seems to work as i would expect. i selected the c file i wanted but then it failed saying file wasnt found.

    1. Re:doesnt work by hcs_$reboot · · Score: 1

      Try
      gcc --reverse prog -o prog.c

      --
      Slashdot, fix the reply notifications... You won't get away with it...
  5. Re:This is why I use ExePacking... apk by 110010001000 · · Score: 1

    Why wouldn't you just release it as open source? Is it because APK Hosts File Engine 10++ 32/64-bit contains MALWARE and VIRUSES?

  6. combine with neural network by Gravis+Zero · · Score: 1

    One of the big issues with decompilers is that compilers do not generate the same output for the same input. In addition, multiple versions of a compiler and different flags yield different results as well. After some thought, I've come to the conclusion that the only viable solution is to build a neural network that can detect and compensate for all the idiosyncrasy using many different test cases (and their binaries) as training data. Ultimately be able to return not only the most likely version of the source code but also the compiler name, version and flags used to compile it.

    We have the technology to solve this seemingly impossible problem.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:combine with neural network by Anonymous Coward · · Score: 0

      Ultimately be able to return not only the most likely version of the source code but also the compiler name, version and flags used to compile it.

      Ultimately be able to return not only the most likely version of the source code

      How the FUCK are you going to recover the variable names, the preprocessor directives, and the comments?

      And what if the original program had inline assembler? What are you going to do with that?

      We have the technology to solve this seemingly impossible problem.

      bull-shit

    2. Re:combine with neural network by Anonymous Coward · · Score: 0

      How the FUCK are you going to recover the variable names, the preprocessor directives, and the comments?

      I think the best we can get is generic variable names based on heuristics like "in these other projects that have the same execution flow, the variables are named like this. Therefore we name them similarly.". But preprocessor directives and comments, that's another issue.

    3. Re:combine with neural network by Anonymous Coward · · Score: 0

      OTOH it is probably possible to detect what compiler and flags were used to compile a program just by looking at the resulting binary.
      A first step would probably be to scan the binary for known library functions and unlink those. If you can detect the version of libc that have been used it probably narrows down the compiler somewhat.
      Still, some parts could be inline assembly so there is no guarantee that everything will be decompilable in a reversible way.

    4. Re:combine with neural network by arth1 · · Score: 1

      How the FUCK are you going to recover the variable names, the preprocessor directives, and the comments?

      You don't need them. Really.

      And what if the original program had inline assembler? What are you going to do with that?

      It will will generate code that does the same - it does not have to look the same, as long as what it does is the same.

  7. double-edged? by 4wdloop · · Score: 1

    Probably also helpful when searching for vulnerabilities?

    --
    4wdloop
    1. Re:double-edged? by Anonymous Coward · · Score: 0

      Looking at source code doesn't really help much if you want to find vulnerabilities. You can find a flaw in the code, but that's only a first step, then you have to figure out how to exploit it. Most of the time it's easier to work on the binary and find exploits directly.

  8. Addendum (couldn't fit all this in too) by Anonymous Coward · · Score: 0

    Reason AV companies don't like exe packing is it alters a WinPE program loader & "encrypts" (compresses) prog interior so they cannot just do an ASM dump via a debugger/disassembler & trace it to see how a program operates (they try say "but, but, but... VIRUSES use that" well, so do good programs).

    * THAT is NOT as easy for them to do when an executable is a 'packed' one...

    APK

    P.S.=> Anyhow - there tis, rest of my post I couldn't fit into the parent of this one (us AC posters have short post lengths & it forces me to EDIT & RE-EDIT constantly, often omitting detail (& sometimes it makes me make mistakes doing so - I wish it wasn't thus but I suppose it stops MILES LONG troll posts etc.))... apk

    1. Re:Addendum (couldn't fit all this in too) by 110010001000 · · Score: 0

      So basically you are saying that APK Hosts File Engine 10++ 32/64-bit does what VIRUSES do, and pack the exe and encrypts it so Antivirus programs can't dump it? It sounds like APK Hosts File Engine 10++ 32/64-bit is actually a virus. Why can't we see the code?

    2. Re:Addendum (couldn't fit all this in too) by tepples · · Score: 1

      Not every program packed with UPX is a virus.

    3. Re:Addendum (couldn't fit all this in too) by Anonymous Coward · · Score: 0

      No, good programs do NOT use exe packers.
      OSes were not designed to deal with them well.
      Fundamental problems that they will ALWAYS have:
      - Under memory pressure, pages will have to be written to swap space instead of being discarded and re-read from the on-disk binary (there are other ways to break this though, e.g. using a crappy linker not aligning the sections).
      - When multiple instances of the program are run, they are not able to share code pages (at least no exe packers I know of try to fix that, and if they did I wouldn't trust them to not open a huge security hole).
      Apart from that, the more basic issues because few packers are written by people actually competent enough to do them well.
      Does the exe packer you use work properly with ASLR?
      Does it ensure to use W^X when unpacking and does it ensure to leave no writable mappings afterwards to avoid leaving an easy attack surface?
      Probably a few more issues around this.

    4. Re:Addendum (couldn't fit all this in too) by Anonymous Coward · · Score: 0

      You're an idiot with a keyboard.

  9. other CPUs/archs are missing by 4wdloop · · Score: 1

    AVR, MSP and L106 (Tensilica/ESP8266) missing...

    Especially for MSP, there seem to be a lot of products using it (Honeywell thermostats, Ikea lighting)...

    --
    4wdloop
  10. Re:I've said why a million times here... apk by 110010001000 · · Score: 1

    What would stop someone from creating a malicious software and naming it APK Hosts File Engine 10++ 32/64-bit? I mean, different malicious software, because I am assuming your version of APK Hosts File Engine 10++ 32/64-bit is MALWARE. So why not just open source it, so we can see what it does?

  11. You need to learn to read... apk by Anonymous Coward · · Score: 0

    See subject: My program's false positive was overturned by "yours truly" & malwarebytes + here's proof https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ that it is SAFE & that 9 antiviruses made a HUGE mistake also (self checking vs. infection of it built-in as I said also WHICH WOULD BE BETTER if I could STILL PACK THE .EXE FILE!)

    APK

    P.S.=> Happy now? apk

    1. Re:You need to learn to read... apk by 110010001000 · · Score: 1

      I have no idea who "virustotal.com" is. Why not just show us the source code? Then we can find out if APK Hosts File Engine 10++ 32/64-bit is MALWARE or isn't MALWARE. I am assuming it is MALWARE since you are keeping the code hidden and obfuscate the exe just like a virus does.

    2. Re:You need to learn to read... apk by 110010001000 · · Score: 1

      According to virustotal.com it says:

      ClamAV Possibly Unwanted Application. While not necessarily malicious, the scanned file presents certain characteristics which depending on the user policies and environment may or may not represent a threat. For full details see: https://www.clamav.net/documen... . Symantec reputation Suspicious.Insight

      Sounds like malware to me.

  12. eFast by tepples · · Score: 1

    I am assuming your version of APK Hosts File Engine 10++ 32/64-bit is MALWARE.

    I'm guessing others have tested it in a sandbox for malicious behavior. Do you assume Intel and AMD CPUs contain malware? And if you do, do you use them despite said assumption?

    So why not just open source it

    If this post is to be believed, APK doesn't want people adding malware, building it, and distributing it, like eFast did with Chromium.

    The other option is for some Slashdot user to make a free replacement. Does the functionality described in this specification appear useful?

    1. Re:eFast by fisted · · Score: 1

      If this post is to be believed [slashdot.org], APK doesn't want people adding malware, building it, and distributing it

      Since you seem to have a little reading comprehension issue, let me copypaste the question again:

      What would stop someone from creating a malicious software and naming it APK Hosts File Engine 10++ 32/64-bit?

  13. Then why do YOU use my program? by Anonymous Coward · · Score: 0

    See my subject + "I personally use a HOSTS file blocker produced from a genius called APK" by 110010001000 (697113) on Friday October 27, 2017 @09:35PM (#55448365) , hmmm?

    (Additionally - if you don't KNOW who VirusTotal is? You don't know much ClamAV CLEARS ME THERE as SAFE & IF ClamAV said that? I'll have to 'rip them a new one' via attorney if need be, directly - no problem!)

    APK

    P.S.=> Stop being a pest - & I take NO PLEASURE in making you look like a LIAR either (you're doing it to yourself)... apk

    1. Re:Then why do YOU use my program? by Anonymous Coward · · Score: 0

      Lol, I remember last time you "ripped someone a new one" via attorney!

      http://www.thorschrock.com/2008/05/19/how-to-respond-when-people-threaten-to-sue-you-on-the-web/

      I'm sure you'll totally kick Cisco's ass though!

  14. encryption by bugs2squash · · Score: 4, Funny

    unfortunately it de-compiles the machine code to perl.

    --
    Nullius in verba
    1. Re: encryption by Anonymous Coward · · Score: 0

      Ha ha ha! Thanks for that!

  15. Interesting to watch this develop by tzanger · · Score: 1

    I ran some of my own ARM code through this. While I did build with -Os, I did not strip the .elf. The source it produced was a reasonable approximation of what I wrote, but it was far from legible. Little things like using hexadecimal for memory addresses are a minor nitpick, but I found it had trouble even with basic interrupt handlers. I would have expected something aimed at targeting embedded systems would do a better job of of this, but still... very interesting (and very fast)!

  16. Sub-architectures have value by OrangeTide · · Score: 1

    If it does PIC32 specific functionality like decode that chip's MMIOs, that's a nice feature of simply decoding MIPS object files.

    --
    “Common sense is not so common.” — Voltaire
  17. More apk lies by Anonymous Coward · · Score: 0

    Every unsigned binary from APK is a potential threat. The guy is a loose cannon and will substitute so-called "audited" code with malicious files on a per host basis.

    Don't let this smarmy fool trick you.

    ZIP

    1. Re:More apk lies by Anonymous Coward · · Score: 0

      Even if his code is completely innocent, why would anyone want to run code written by a programmer too incompetent to implement a progress bar while his program grinds away for an eternity sorting a hosts file. Now maybe version 10++ has fixed this issue, but I don't have much faith when he couldn't get it figured out by version 9++. But hey, it's a FULLY NATIVE 32/64BIT MULTITHREADED EXECUTABLE USING WHAT U HAVE IN KERNEL MODE TO KEEP U SAFE. I always get a laugh at the multithreaded part because I saw a user suggest he sort the list in a background thread to keep the program from being labelled (Not Responding) and APK responded, "WAH WAH I CAN'T CUZ VCL AIN'T THREADSAFE". Why not just write a decent fucking sort? This process should take seconds.

  18. Addendum (couldn't fit all this in too) by Anonymous Coward · · Score: 0

    Reason AV companies don't like exe packing is it alters a WinPE program loader & "encrypts" (compresses) prog interior so they can't just do an ASM dump via a debugger/disassembler & trace it to see how a program operates (they try say "but, but, but... VIRUSES use that" well, so do good programs).

    * THAT is NOT as easy for them to do when an executable is a 'packed' one...

    APK

    P.S.=> Anyhow - there tis, rest of my post I couldn't fit into the parent of this one (us AC posters have short post lengths & it forces me to EDIT & RE-EDIT constantly, often omitting detail (& sometimes it makes me make mistakes doing so - I wish it wasn't thus but I suppose it stops MILES LONG troll posts etc.))... apk

  19. 60 antiviruses say differently...apk by Anonymous Coward · · Score: 0

    60 antiviruses say differently so EAT YOUR WORDS https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ (self check vs. infection of it built-into it too no less)

    APK

    P.S.=> Trolls - you never learn (I've been thru all this before & came out victorious via concrete, undeniable + verifiable facts I use vs. your "ilogic-forums-logic" - & I would take credit for the win but it's really you TROLLS defeating YOURSELVES, lol, so I can't fully @ least - RoTfLmAo!)... apk

  20. decompiles INTO WHAT ? by thygate · · Score: 1

    no mention in the article of what the decompiler actually decompiles to ..

    1. Re:decompiles INTO WHAT ? by Anonymous Coward · · Score: 3, Informative

      "no mention in the article of what the decompiler actually decompiles to .."

      According to https://github.com/avast-tl/retdec:
      Output in two high-level languages: C and a Python-like language.

  21. Re:This is why I use ExePacking... apk by Anonymous Coward · · Score: 0

    * Packing exes protect vs. hexedit & viruses attaching to .exe tail & altering function jmp tables

    Any exe malware can attach to a binary whether packed or unpacked. You can pack any binary all you want, even pack it multiple times, any malware like CIH can still attach to your packed binary. You are talking rubbish.

  22. No I'm not (it helps hide how I detect it) by obfu by Anonymous Coward · · Score: 0

    No I'm not (it helps hide how I detect it) by obfuscation hiding functions/methods where I summon an .exe size for even 1 BYTE in sizecheck (no virus is that small) & CRC32 check (multiple times from creation to hWnd Destroy) on the program itself on disk (for permanency by malware on reuse + to spread/multiply - I detect for it & tell users to reinstall from fresh copy & shutdown disallowing run - reinstall, instant clean again).

    APK

    P.S. => This is why malware makers etc. use it too (it works as a protectant but I make it work for me beyond it detecting changes in my .exe itself - it works great & compacting helps hide it's done to an extent)... apk

  23. I'll let /.ers speak for me... apk by Anonymous Coward · · Score: 0

    "I'm going to continue using the Host File Engine. Your software is well written, functional. The Host File Engine performs exactly as promised" - by mmell on Thursday February 16, 2017

    "I've never tried to belittle (APK's work), I've flat out said it's good" - by BronsCon on Thursday February 11, 2016

    "his hosts program is actually pretty good" - by xenotransplant on Monday August 10, 2015

    "his hosts tool is actually useful for those cases in which one does indeed want to locally block stuff outright while consuming minimum system resources" by alexgieg on Friday September 25, 2015

    "I like your host file system." - by Karmashock on Wednesday September 09, 2015 (#50489401)

    "I do use APK's host file on all my systems at home" by OrangeTide on Friday December 01, 2017

    "I personally use a HOSTS file blocker produced from a genius called APK." by 110010001000 on Friday October 27, 2017

    * Want more? Ask

    APK

    P.S.=> Sort's fast on THREAD of its own + dedups & fp filters too... apk

    1. Re:I'll let /.ers speak for me... apk by fisted · · Score: 1

      "I personally use a HOSTS file blocker produced from a genius called APK." by 110010001000 on Friday October 27, 2017

      The irony in this is brilliant -- you're actually too stupid to realize that 110010001000 is the guy you're "arguing" with.

      You' probably even think that he genuinely thinks you're a genius rather then openly mocking you. Oh boy.

      Now, why don't you stop with your obnoxious ads? Wasn't one of your marketing points that your shitware removes ads? Does it remove your spammed ads on /.?

  24. UltraEdit is my file "detector" by Trax3001BBS · · Score: 1

    UltraEdit (Text editor) will show all text in a file, one can fairly call a files function with just that.

    Long ago there was a program called "Peek" that showed all text in a file none of the hex/high Ascii that UltraEdit also shows; W2K broke it and I've missed it every since.

    I'll be giving this program a try.

  25. Re:I juat let him look like a lying SCHMUCK by sa666_666 · · Score: 1

    This is probably a waste of time, but ... When you're typing a message and say "see the p.s. below", it means you _know_ at that point that you will be having a p.s. But in that case you could just place the text where you are, and not _need_ a p.s.

  26. Does care by DrYak · · Score: 1

    a decompiler won't care whether you compiled a C++, assembler, C or whatever language the program being reversed was compiled on.

    It will care, because some language (e.g.: C++) have specific data structures and ways (vtables) to handle some language specific features (object virtual member inheritance) which could be detected by the specific plugin (i.e.: instead of spewing a weird mess of nested "struct" and pointer-to-pointers, it can recognize that his is just a call to a virtual method)
    (for the few hipsters outthere : think the difference between vala and the corresponding GObject pure-C code).

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  27. Decompiler are not simple debugger/dumper by DrYak · · Score: 3, Informative

    x86 is hard to decompile. It doesn't have fixed length instructions, so it is difficult to figure out where opcodes begin and end. It is even possible to write code that can execute two different sequences of instructions by offsetting the instruction pointer by a byte. I don't think any decompiler could deobfusticate that.

    The simple code dumper that comes with garden variety debugger won't easily deobfuscate that. (You need to manually ask the debugger to start dumping from the 2 overlapping point).

    That why, the best decompilers available in the 90s used some sort of virtual machine to follow through the execution flow, and be able to distinguish such kind of "frame shifts" (that's actually a biology term, I've forgotten what the proper CS term is), and also be able to understand a bit of self-modifying code.
    (Basically, the decompiler will notice that various part of the code make calls into the same region but at an odd offset, and will automatically try dumping with from each overlapping point)

    Makes it also possible to put actually-useful label/names into variable. (call something "sound_frequency" instead of "var184" because by following the data flow, the decompiler release that this is the parameter the is output to the PC-Speaker tone generator).

    Sourcer by V-Com was one such good decompiler.
    (I managed to learn quite a ton of tricks like PCM play on the PC Speaker, tweaked graphical modes, etc. simply by using sr to inspect interesting executables.
    I even manage to desinfect a cracked game that was saddly being distributed infected with some virus)

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  28. Old technique, actually by DrYak · · Score: 1

    the structure of calls across functions

    Recognizing some code flow was a staple of the best decompiler back in the 90s :
    e.g. being able to recognize a certain code pattern (a sequence of ports smashing) as a high-level abstraction (initializing sound hardware).

    Your idea would certainly be the 2010s-era equivalent. (= This portion looks like code reuse from "Zstd" decompressor)

    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  29. ASM? These kids don't need no stinking ASM! by Seven+Spirals · · Score: 1

    Of course, this only helps the 5 of us left who still code in ASM. "Kids these days" seem to think that ASM "sucks" because "it's old". If the language doesn't have trait based generics, zero cost abstractions, and a partridge in a pear tree then again it's "old" and it "sucks". It's entertaining to watch your average 20-something java/python/PHP coder try to take on ASM. Their efforts generally don't last more than about five minutes when they find out they have to build their own control structures, and mama's not gonna wipe their butts with Visual Studio tooltip hints. If this wizzbang tool decompiled code into Rust, then maybe the cool kids would want it. As it is, they will do what they always do with ASM based tools: hand-wave like they know exactly how it works and then promptly ignore it. Anyhow, back to my ASM-One environment on my 68k Amiga. If anyone needs me I'll be here squatting on this temporal nexus to the 1990s. :-)

  30. It's my UNIQUE posting style by Anonymous Coward · · Score: 0

    See subject. Now see p.s. below.

    P.S. => I really don't know why I'm doing this.

  31. Code signing with trust on first use by tepples · · Score: 1

    What would stop someone from creating a malicious software and naming it APK Hosts File Engine 10++ 32/64-bit?

    The fact that its hash wouldn't match that of the existing APK Hosts File Engine 10++ 32/64-bit posted all over forums.

    Now if you replace "10" with "11" in your question, you have a more interesting problem: how to distinguish subsequent versions of the same publisher's application from an impostor's malware. The publisher of the authentic application could generate a self-signed code signing certificate and sign each version of all of its programs. Then each user would configure his devices to "Trust other programs from publisher APK". In my opinion, Microsoft screwed up Authenticode for hobbyist programmers by requiring paid organizational validation of all certificates from a commercial certificate authority rather than allowing reputation to accumulate on self-signed publisher certificates.

  32. Other machine code decompilers by abacus1 · · Score: 2

    How does this project compare to the existing machine code compilers, namely Valgrind's VEX library and Qemu's tiny code generator (https://wiki.qemu.org/Documentation/TCG)?

  33. Re:No I'm not (it helps hide how I detect it) by o by arth1 · · Score: 1

    No I'm not (it helps hide how I detect it) by obfuscation hiding functions/methods where I summon an .exe size for even 1 BYTE in sizecheck (no virus is that small)

    You don't know much about writing viruses; that much is clear, because checking the size is a waste.
    One popular approach for viruses is to put the original file elsewhere (where elsewhere can either be elsewhere on a file system, or for file systems that support it, in a resource fork or attribute list of the same file), and then pad the virus to the desired file length.
    For weak CRCs, even change the padding to return the same CRC.

    But worse, you also then prevent the binary from running on systems where the binaries are always modified before being run, for example by rebase/prelink, or by adding library paths to the executable, or systems which depend on setting contexts on files, or requires nx bit set, or ...
    Making assumptions about the runtime environment is so 1990s.

    Security through obscurity is what you're attempting here, and you require people to lower their security if it's too high.

  34. Re:You definitely need to learn to read... apk by arth1 · · Score: 1

    Good programs use exe packers too as I said

    Name one that's from this decade.

  35. Computer Associates AV went under by Anonymous Coward · · Score: 0

    CA antivirus went under & before that my works were proven clean/no threat in the end as CA admitted & so also did Thor "ScMuCk"!

    (LMAO, like that? I do, makes me LAUGH!!!)

    Both had to EAT THEIR WORDS too on their false accusation/false postive on a ware of mine no less!

    ALMOST same as I noted on my latest creation's being falsely accused by 9 antivirus companies for the WRONG REASONS & then exhonorated/cleared on facts I listed here, undeniable/concrete/verifiable ones too.

    I never needed an attorney vs. those 2 (they did themselves in).

    * All antivirus are the ones showing their ass now (full of bugs/exploits & SLOWING YOU DOWN - I give users warp drive & a deflector shield too that does more for less vs. any other "so-called 'solution'" bar-none natively for free)

    APK

    P.S.=> You never answered my question of WHY you still use my ware... apk

  36. Funny he won't answer my question... apk by Anonymous Coward · · Score: 0

    It's an honest one quoting him using my work (& many downmod hidings of it when I ask such as) https://news.slashdot.org/comments.pl?sid=11478805&cid=55736143/ but no straight answer from him...

    * FUNNY he SHUT UP QUICKLY afterwards & ran too (not).

    APK

    P.S.=> It's fun using others' words against them & very easy to shoot them down when THEY SUPPLY THE AMMO FOR ME TO DO SO, lol... apk

  37. PROOF you're wrong by Anonymous Coward · · Score: 0

    It's known protectionvs. reverse engineering: PROOF: "Packing an executable file is a way of compressing executable code firstly to minimize filesizes, but often it is also used to complicate the reverse engineering process" from http://yaisb.blogspot.com/2006/07/packed-executables.html/

    (WHICH AGAIN IS WHY I USED IT (& to speed up loads of its from disk or across a LAN due to smaller filesize for pickup from disk)).

    As far as sizecheck?

    You change 1 byte in my work it won't run telling you to reinstall it to CLEAN it stupid. It detects infection that way!

    APK

    P.S.=> Exe Compression obfuscates strings & even dll exported function call names when you .exe pack so they can't be seen easily! Reverse engineering is aided by KNOWING those (I had to use it in the early days of cross platform programming to the AS/400's OS/400 with IBM ClientAccess to use its functions & see their names to use them in fact)... apk

    1. Re:PROOF you're wrong by arth1 · · Score: 1

      It's known protectionvs. reverse engineering: PROOF: "Packing an executable file is a way of compressing executable code firstly to minimize filesizes, but often it is also used to complicate the reverse engineering process"

      Also known as "security through obscurity", as I said in my post.

  38. Does it matter? Others prove you wrong by Anonymous Coward · · Score: 0

    See subject & answer: It doesn't - Others prove you wrong https://news.slashdot.org/comments.pl?sid=11478805&cid=55739687/ exepacking helps secure programs vs. disassembly as I always stated (w/ myself doing it easily to you beforehand)!

    * You fail as always (you obviously don't have anything to show YOU'VE done that's any good but I can, even our /. peers saying so quoted).

    APK

    P.S.=> Lastly - "big talk" from you - you produce nothing that others like & use as I have provably https://news.slashdot.org/comments.pl?sid=11478805&cid=55736689/ talker - PROVE OTHERWISE & prove me wrong "arth1"... apk

    1. Re:Does it matter? Others prove you wrong by arth1 · · Score: 1

      I don't have to prove a negative. That's like saying "prove that god doesn't exist". The onus is on those who make claims to back them up, not on others to disprove them.

      All it would take was one example to prove your claim. How hard would that be, if what you claimed were true?

      Hint: Instead of posting URLs to posts that nobody will bother to follow, try to actually back up your wild claims with some actual meaningful text. Without bolding random words, without changing the subject and referring to it, and without a P.S. at the end.
      If you looked less like a kook, perhaps some would take you more seriously. As it is, your postings elude that you probably have some mental problems, and are incapable of engaging in normal discussions like others here do. I can't help you with the former, but am willing to help you with the latter. But you have to be willing to learn posting etiquette.

  39. Still yet again: Then why do YOU use my work? by Anonymous Coward · · Score: 0

    See my subject + "I personally use a HOSTS file blocker produced from a genius called APK" by 110010001000 (697113) on Friday October 27, 2017 @09:35PM (#55448365) , hmmm?

    (Additionally - if you don't KNOW who VirusTotal is? You don't know much ClamAV CLEARS ME THERE as SAFE https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ (self checking vs. infection of my program's also built-into it)) ... & IF ClamAV says otherwise on their websites? I'll have to 'rip them a new one' via attorney if need be, directly - no problem!

    APK

    P.S.=> Stop being a pest - & I take NO PLEASURE in making you look like a LIAR either (you're doing it to yourself ESPECIALLY YOU DOWNMOD HIDING MY REPLIES https://news.slashdot.org/comments.pl?sid=11478805&cid=55736143/ & YOU RUNNING FROM ANSWERING A SIMPLE QUESTION)... apk

  40. Again - then why do YOU use my program? by Anonymous Coward · · Score: 0

    See my subject + "I personally use a HOSTS file blocker produced from a genius called APK" by 110010001000 (697113) on Friday October 27, 2017 @09:35PM (#55448365) , hmmm?

    (Additionally - if you don't KNOW who VirusTotal is? You don't know much ClamAV CLEARS ME THERE as SAFE https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ ) ... & IF ClamAV says otherwise on their websites? I'll have to 'rip them a new one' via attorney if need be, directly - no problem!

    Additionally (in THIS post @ least, not my other one saying the same thing to you asking the same question):

    WHY SHOULD I GIVE AWAY MY RELATIVELY HARD WORK?

    (Least of all to have it duplicated for malicious purposes are YOU are SAYING too & that I've told you I was threatened idiots would use the code to create a malicious Google EFAST Chrome out of it too!)

    APK

    P.S.=> Stop being a pest - & I take NO PLEASURE in making you look like a LIAR either (you're doing it to yourself ESPECIALLY DOWNMOD HIDING IT & REFUSING TO ANSWER A SIMPLE QUESTION https://news.slashdot.org/comments.pl?sid=11478805&cid=55735917/ )... apk

  41. Yet again: Then why do you use my work? by Anonymous Coward · · Score: 0

    See my subject + "I personally use a HOSTS file blocker produced from a genius called APK" by 110010001000 (697113) on Friday October 27, 2017 @09:35PM (#55448365) , hmmm?

    (Additionally - if you don't KNOW who VirusTotal is? ClamAV CLEARS ME THERE as SAFE https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ (self checking vs. infection of my program's also built-into it) ... & IF ClamAV says otherwise on their websites? I'll have to 'rip them a new one' via attorney if need be, directly - no problem!

    APK

    P.S.=> Stop being a pest - & I take NO PLEASURE in making you look like a LIAR either (you're doing it to yourself as YOU TRY "DOWNMOD HIDE" LAST TIME I ASKED YOU A SIMPLE QUESTION YOU RUN FROM https://news.slashdot.org/comments.pl?sid=11478805&cid=55735965/ )... apk

  42. I've said why a million times here... apk by Anonymous Coward · · Score: 0

    See subject: I was actually threatened a few times by trolls here that IF I did? They'd create an EFast Google Chrome malicious one of it.

    * Not even a 'nice try' in 'downmod hiding' last time I posted to you on this https://news.slashdot.org/comments.pl?sid=11478805&cid=55735735/ & even tepples told you my VERY VALID REASONS for not doing so.

    Above ALL else though?

    1.) I don't owe my HARD WORK IN CODE @ all to have it possibly stolen & misused

    2.) my program is proven safe by every antivirus @ VirusTotal https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/

    3.) The fact that Malwarebytes' S. Burn code audited its code for safety & passed it w/ FLYING COLORS both hosting & RECOMMENDING it @ malwarebytes' hpHosts too!

    (.. & WHY DO YOU USE MY WARE THEN CALLING ME A GENIUS FOR ALSO https://news.slashdot.org/comments.pl?sid=11478805&cid=55740655/ ?

    APK

    P.S.=> There you go & THAT DID HAPPEN TO GOOGLE doing "OpenSORES" by the way (look it up)... apk

  43. Others prove you wrong easily for me by Anonymous Coward · · Score: 0

    See subject: That exepacking helps secure programs vs. disassembly https://news.slashdot.org/comments.pl?sid=11478805&cid=55739687/ as I always stated myself before THAT proof!

    * You fail as always!

    Plus you obviously don't have anything to show YOU'VE done that's any good YOURSELF!

    (YET I can, even our /. peers saying so quoted)

    Thanks for YOU defeating yourself FOR ME, lol!

    APK

    P.S.=> Lastly - "big talk" from you - you produce nothing that others like & use as I have provably https://news.slashdot.org/comments.pl?sid=11478805&cid=55736689/ talker - PROVE OTHERWISE & prove me wrong "arth1"... apk

    1. Re:Others prove you wrong easily for me by arth1 · · Score: 1

      that proof's SO RIGHT you had to try "downmod hide it"

      Um, no. I only have one account, and don't post as an anonymous coward, so I don't get to downmod anyone in this thread. It's others that downmodded your post, likely because of your incoherent ramblings being, well, "so wrong".

      YOU DEFINITELY CAN'T, troll!

      Think about it: Are everybody who disagrees with you trolls, or could it be that you are a smidgeon paranoid?

  44. You definitely need to learn to read... apk by Anonymous Coward · · Score: 0

    See subject: Good programs use exe packers too as I said & so did tepples in his replies as it protects vs. hexedit alters, viral infestation & disassembly.

    * All this is in my replies to you but YOU SEEM TO BE UNABLE TO READ & COMPREHEND ENGLISH!

    (What my program DOES is NATIVELY (using what you already have) stop viruses for less resources consumption with less complexity & vulnerablities AV programs HAVE RAMPANTLY & it speeds you up - AV's slow you down!)

    See subject: WHAT I AM DEFINITELY SAYING NOW ALSO, however, IS THAT YOU NEED "HOOKED ON PHONICS" (no, you don't - you're just being a useless troll imo!).

    Above ALL else? WHY TRY "downmod hide" this then IF I am wrong https://news.slashdot.org/comments.pl?sid=11478805&cid=55735829/ hmmm ?

    (You do it because YOU FAIL & you KNOW it!)

    APK

    P.S.=> More proof of that from you here also https://news.slashdot.org/comments.pl?sid=11478805&cid=55735775/ where I PROVE MY WORK IS SAFE & PROVEN BY NEARLY 60++ ANTIVIRUS PROGRAMS @ GOOGLE'S VIRUSTOTAL...apk

  45. By the way BIG talker (all talk & DUMB = you) by Anonymous Coward · · Score: 0

    See subject: Animating progressbars in that stage SLOWS IT DOWN (your dumb way). D slow the slower longer parts of a program - instead CONCENTRATE ON SPEEDING THOSE UP (it's called optimizing dumbo) + PUTTING VCL ON THREADS != guaranteed threadsafe!

    The cursor changing to an hourglass & panels on the page say "please wait, processing" type messages (this is enough & DOES NOT SLOW IT UP LIKE PROGRESSBAR ADVANCES CAN).

    * You are ONE STUPID FOOL...

    APK

    P.S.=> ... & you're ALL TALK, no action (nothing to show you've done better weasel)... apk

  46. 4 ways I know I blow you trolls away... apk by Anonymous Coward · · Score: 0

    1.) When you troll by unidentifiable ac 2.) When you downmod & run 3.) When you reply out of downmodpoints 4.) When you attempt to impersonate me.

    * GROW UP!

    APK

    P.S.=> Poor job of impersonating me

    1. Re:4 ways I know I blow you trolls away... apk by Anonymous Coward · · Score: 0

      * GROW UP!
      APK

      OMG, this should be the Slashdot irony footer quote of the week...

  47. Small wonder you replied unidentifiable ac by Anonymous Coward · · Score: 0

    See subject: Especially after all that utter total bullshit "OS were not designed to deal w/ them well" - HORSESHIT lie. Paging has nothing to do w/ packing (all programs do it under Virtual Memory using OS stupid). I see you read on the multiple instances things ONLY SOME PACKERS HAVE AN ISSUE WITH (funny you don't note that, eh? NOT). Yes programs that use Packers can run under ASLR! I do it myself easily. I wonder if YOU EVEN UNDERSTAND WHAT YOU WROTE (after YOU COPIED IT ONLINE, lol).

    APK

    P.S.=> "By Rote" copy & paste TROLLS have no ability of their own & you PROVE it... apk

  48. "... said the unidentifiable anonymous troll" by Anonymous Coward · · Score: 0

    "OMG, this should be the Slashdot irony footer quote of the week..." by UNIDENTIFIABLE anonymous worm on Friday December 15, 2017 @10:10PM (#55749741)

    See subject, that quote & "... said the unidentifiable anonymous troll worm"

    * What else can I say?

    APK

    P.S.=> It's just "too, Too, TOO EASY vs. UNIDENTIFIABLE anonymous trolling worms ... apk

  49. Others prove you wrong easily for me by Anonymous Coward · · Score: 0

    See subject: Try SECURITY vs. DISASSEMBLY (you fail) via PROOF THEREOF https://news.slashdot.org/comments.pl?sid=11478805&cid=55739687/ as I always stated myself before THAT proof + that proof's SO RIGHT you had to try "downmod hide it" https://news.slashdot.org/comments.pl?sid=11478805&cid=55741281/ last time I posted this!

    * You fail!

    Plus you don't have a thing to show YOU'VE done that's any good YOURSELF!

    (YET I can, even our /. peers saying so quoted https://news.slashdot.org/comments.pl?sid=11478805&cid=55736689/ & YOU DEFINITELY CAN'T, troll!

    APK

    P.S.=> Lastly - Thanks for YOU defeating yourself FOR ME "arth1"... apk

  50. Explain why it's been upmodded then by Anonymous Coward · · Score: 0

    See subject & my CODING FOR DEFCON packed exe + sizecheck http://it.slashdot.org/comments.pl?sid=158231&cid=13257227/ from 12++ yrs. ago per our peers vs. your bs!

    * See subject - you can't & you FAIL!

    APK

    P.S.=> Proof of your utter fail is your PUNY attempt to EFFETELY 'downmod hide' this last time I posted this proof https://news.slashdot.org/comments.pl?sid=11478805&cid=55742391/ ... apk

  51. This is why I use ExePacking... apk by Anonymous Coward · · Score: 0

    I used ExePacking to protect vs. tools like this in APK Hosts File Engine 10++ 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/

    9 AV companies accused it of being a 'malware' (overturned w/ Malwarebytes' code audit & me proving a PACKED .EXE != MALICIOUS).

    * Packed exes protect vs. hexedit & viruses attaching to .exe tail & altering function jmp tables (inserting malcode + adding the callname to jmp table) after a sizecheck if they attempt to UNPACK it & it makes .exe files load faster into RAM + across LAN (smaller .exe file loadsize).

    Packing removal stops me from protecting my code as well as I know how vs. attack OR doppleganger creation (doesn't matter - my prog checks itself vs. it).

    APK

    P.S.=> AV companies = INFLEXIBLE - I had to remove packing OR be falsely accused (yet I protect & speedup users - a BETTER NGAV (Next-Gen AntiVirus))

  52. Addendum (couldn't fit all this in too) by Anonymous Coward · · Score: 0

    Reason AV companies don't like exe packing is it alters a WinPE program loader & "encrypts" (compresses) prog interior so they can't just do an ASM dump via a debugger/disassembler & trace it to see how a program operates (they try say "but, but, but... VIRUSES use that" well, so do good programs)

    * THAT is NOT as easy for them to do when an executable is a 'packed' one...

    APK

    P.S.=>Making you faster, safer, more reliably connected & more anonymous for less doing FAR more AAPK Hosts File Engine 10++ 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/ instead of slowing you down & being full of bugs like traditional AV are... apk

  53. BS behind your FAKE NAME... apk by Anonymous Coward · · Score: 0

    See subject: 1 of many FAKE NAMES you have for a FAKE LIFE & you're proven wrong https://news.slashdot.org/comments.pl?sid=11478805&cid=55750983/ by me + OTHERS that ExePacking = a protectant vs. disassembly - period!

    * NOT "Security By Obscurity" (as YOU said) but SECURITY vs. DISASSEMBLY as I & others said!

    (Coming in days later thinking I wouldn't see you trying to "get the last word" = weak too on your part)

    APK

    P.S.=> I don't give a shit about anything you say now other than me SHOWING YOU ARE WRONG as wrong gets (& that's along w/ others in that link doing so with & FOR me)... apk