Email or username:

Password:

Forgot your password?
nixCraft 🐧

Here is a meme that was shared by a group of disassembler enthusiasts.

24 comments
Rob

@nixCraft how can I learn assembly? Is this still relevant today for reverse engineering?

Ron Bowes

@Feynman @nixCraft I learned it by writing stuff and disassembling it, then trying to understand what it's doing. And yes, absolutely still relevant, even though a lot of enterprise software is Java, almost all of it has a bit of compiled code and that's usually where bugs live

If you check out the various work I did on skullsecurity.org/cv you'll see a ton of reversing

Nuncio Bitis ✷ βœ… πŸ³οΈβ€πŸŒˆ

@Feynman @nixCraft
It's machine code. CPUs/GPUs don't run C, C++, python, java, etc. They only obey their own instruction set. High-level languages get compiled down to assembly code, then assembled to object files, then linked to executables for that particular processor.

Nuncio Bitis ✷ βœ… πŸ³οΈβ€πŸŒˆ

@Feynman @nixCraft
Oh, and Java and python don't get compiled. They get interpreted and run using an engine.

Walrus

@nixCraft
True, that...

I once helped in the dis-assembly of the Microsoft 8K Nascom ROM BASIC. Some of the code in that was so weird it must have been put there to detect copying.

Rob

@nixCraft I’ll learn assembly on ARM on Raspberry Pi Pico. Remembered I had a course in college on MIPS (that I never went to) in CS.

Hawkwinter

@didek @nixCraft

Its not the **original** sourcecode, but it can be decompiled to give you human readable sourcecode in a variety of languages of your choice.

Matunos

@Hawkwinter @didek @nixCraft you can choose any language you like, as long as it's assembly

Hawkwinter

@matunos @didek @nixCraft

You can decompiled assembly into messy C++/C#/C, and then clean it up.

IIRC thats what the Mario 64 fan PC port does.

And then for anything copyrighted, you need to privide it a backup of your mario 64 cart (a rom) from which it will extract those few things.

Dawid Rejowski

@Hawkwinter @nixCraft

Not how word source works.

1. Original code
2. Program compiled to machine code
3. Decompiled code based on guess how 1 could look like

1 is source of 2 and 3
2 is source of 3

Hawkwinter

@didek @nixCraft

And 3, if recompiled the same way, will give you 2 again.

But without being a copyrighted document you will lose a lawsuit over.

Hawkwinter

@didek @nixCraft

Is it the code that (original publishing company) compiled from?
No.

Does it give the same binary?
Yes.

So why would you want the one they have copyrights over rather than one that gives the same binary which they do not have copyrights over?

oldmanhero

@Hawkwinter @didek @nixCraft Reasonably certain this would be a derivative work by any reasonable interpretation. At least some of the legal casework and guidance around decompilation supports that assertion. You can't get past copyright just by mechanically transforming it. Which is probably a good lesson for AI proponents (including me).

Kadarus

@nixCraft Server-side code still isn't though :3

LEdoian

@nixCraft In a similar way, minified JavaScript can be considered to be open source…

Understanding and modifying it seems to be too much of a chore for me to even try. (Applies to both.)

gresakg

@nixCraft assembly is not machine language. Assembly still needs to be compiled/interpreted.

Ministerofimpediments

@nixCraft I had it in college and it was hands-down the best and most effective way to really screw something up…until I leaned C which allowed me to screw lots of things up at the same time.
It’ll teach you how a computer works though.

Robin Hartley

@nixCraft I feel the wording needs "eve-e-e-entually" somewhere in there. :blobfoxsmirk:​

nic hartley

@nixCraft *cracks open Ghidra* time to fork this proprietary kernel blob

Go Up