• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

What stops Source code rips?

Joined
Nov 8, 2008
Messages
779 (0.14/day)
Location
Sydney, Australia
System Name Gearbox || Server
Processor i5 3570K @ 4.0Ghz || E8400 @ Stock 3Ghz
Motherboard Gigabyte Z68XP-UD3 || Gigabyte EP41-UD3L
Cooling Stock || Stock
Memory 8GB G.Skill RipjawX DDR3 @ 1600mhz || 4GB Kingston Value DDR2 800Mhz
Video Card(s) ASUS R9 270X Direct CU II TOP @ 1120/1500 || N/A
Storage Samsung 840 EVO 250GB || 1TB WD Green, 2TB WD Green, 3TB WD Red
Display(s) HP x23 LED 23" Full HD Panel
Case Corsair 200R || Open-Air
Audio Device(s) Audioengine D1 + Logitech Z623/Audio Technica ATH-M50 || N/A
Power Supply Antec EarthWatts Platinum 650 W || Antec Neo Eco 450 W
Software Windows 8.1 Update 3 Pro 64 || Ubuntu Server 14.04 64
Since i started programming have always wondered what stops source being ripped from programs. I.e opening a .jar file displays random stuff (obviously not source) yet game crackers manage to crack games with out the source code. IS the gibber jabber when opening .exe files with notepad decryptable and if not what makes it so unique that it has never been cracked before?

In simple terms, what stops source code being extracted from already compiled programs?
 
Last edited:

streetfighter 2

New Member
Joined
Jul 26, 2010
Messages
1,655 (0.33/day)
Location
Philly
If you open a compiled executable (exe) with a hex editor it may appear to be gibberish (and some of it really is) but to advanced users there are some decipherable blocks, some of which can be understood and, occasionally, even converted into high level languages.

I want to point out though that "decompiling" is a bit of a contradiction and although technically possible, it's not likely to resemble the original source code unless the binary was compiled with debug options. There are tools like IDA Pro
and Dependency Walker along with memory tools and hex editors which can be used to reverse engineer software but it is a very laborious and difficult task even for skilled programmers.

I'm not sure about .jar files but I know that Java is a pseudo-compiled language which involves compiling it into a platform-unspecified "bytecode" which is interpreting by the Java program.

In simple terms, what stops source code being extracted from already compiled programs?
The short answer is pretty much everything.
 

W1zzard

Administrator
Staff member
Joined
May 14, 2004
Messages
27,089 (3.71/day)
Processor Ryzen 7 5700X
Memory 48 GB
Video Card(s) RTX 4080
Storage 2x HDD RAID 1, 3x M.2 NVMe
Display(s) 30" 2560x1600 + 19" 1280x1024
Software Windows 10 64-bit
when using .net, delphi or java your program can be easily decompiled into what is basically the original source code. there are some obfuscators that make it harder.

when using a compiled language like c or c++ your program is turned into assembly code and disassembly produces only assembly code, not native language code. there are very few decompilers for native that look at the assembly code and try to figure out what kind of statement it was that created that assembly code.

the bottom line is that you can not 100% protect your code from other people reading or modifying it. you can make it harder though

what makes it so unique that it has never been cracked before?
the only thing that has never been cracked before is something that's not interesting enough for the pro crackers
 
Joined
Nov 8, 2008
Messages
779 (0.14/day)
Location
Sydney, Australia
System Name Gearbox || Server
Processor i5 3570K @ 4.0Ghz || E8400 @ Stock 3Ghz
Motherboard Gigabyte Z68XP-UD3 || Gigabyte EP41-UD3L
Cooling Stock || Stock
Memory 8GB G.Skill RipjawX DDR3 @ 1600mhz || 4GB Kingston Value DDR2 800Mhz
Video Card(s) ASUS R9 270X Direct CU II TOP @ 1120/1500 || N/A
Storage Samsung 840 EVO 250GB || 1TB WD Green, 2TB WD Green, 3TB WD Red
Display(s) HP x23 LED 23" Full HD Panel
Case Corsair 200R || Open-Air
Audio Device(s) Audioengine D1 + Logitech Z623/Audio Technica ATH-M50 || N/A
Power Supply Antec EarthWatts Platinum 650 W || Antec Neo Eco 450 W
Software Windows 8.1 Update 3 Pro 64 || Ubuntu Server 14.04 64
Thanks, that answered my question perfectly! So basically what your saying, unless programs are encrypted with random, complex algorithms, all source can be ripped with enough time and patience?
 

W1zzard

Administrator
Staff member
Joined
May 14, 2004
Messages
27,089 (3.71/day)
Processor Ryzen 7 5700X
Memory 48 GB
Video Card(s) RTX 4080
Storage 2x HDD RAID 1, 3x M.2 NVMe
Display(s) 30" 2560x1600 + 19" 1280x1024
Software Windows 10 64-bit
unless programs are encrypted with random, complex algorithms,

all source can be ripped with enough time and patience. period.

you need to decrypt to execute, so just dump the decrypted code off the cpu
 

Arel3

New Member
Joined
Nov 7, 2010
Messages
39 (0.01/day)
Ya. I'm with the other posters that have answered. It's usually due to either some type of encryption, or it's compiled.

Both can be decrypted or compiled programs can be broken down into their individual files and those files can be opened and read. Usually in plain text. The trick is figuring out which compiler was used or decoding the encryption to get to the actual code in the form of simple text.

Then again some coding languages that are made of simple text that can be opened in windows notepad...the syntax of how it all comes together and works may look like gibberish.
 

Kreij

Senior Monkey Moderator
Joined
Feb 6, 2007
Messages
13,817 (2.19/day)
Location
Cheeseland (Wisconsin, USA)
I don't bother obfuscating my code.
Hell, I usually just give out the source code if someone asks for it. :laugh:
 

Arel3

New Member
Joined
Nov 7, 2010
Messages
39 (0.01/day)
I don't bother obfuscating my code.
Hell, I usually just give out the source code if someone asks for it. :laugh:

hehe...you're rare. Most coders I know of, even my self with some of the really cool things I've created as a 'first', guard their production files and source code like satans pit bulls that guard the gates of hell. LOL!!

I'm glad to share the result under GNU/GPL but the source and production files?
NAY NAY!!!
Figure it out. Maybe someone, if they do spend the time to bust it open and figure it out, can improve it.
 

qubit

Overclocked quantum bit
Joined
Dec 6, 2007
Messages
17,865 (2.98/day)
Location
Quantum Well UK
System Name Quantumville™
Processor Intel Core i7-2700K @ 4GHz
Motherboard Asus P8Z68-V PRO/GEN3
Cooling Noctua NH-D14
Memory 16GB (2 x 8GB Corsair Vengeance Black DDR3 PC3-12800 C9 1600MHz)
Video Card(s) MSI RTX 2080 SUPER Gaming X Trio
Storage Samsung 850 Pro 256GB | WD Black 4TB | WD Blue 6TB
Display(s) ASUS ROG Strix XG27UQR (4K, 144Hz, G-SYNC compatible) | Asus MG28UQ (4K, 60Hz, FreeSync compatible)
Case Cooler Master HAF 922
Audio Device(s) Creative Sound Blaster X-Fi Fatal1ty PCIe
Power Supply Corsair AX1600i
Mouse Microsoft Intellimouse Pro - Black Shadow
Keyboard Yes
Software Windows 10 Pro 64-bit
I've programmed early versions of the ARM processor in Assembler back in the early 90s on Acorn computers and it was a fantastic experience. Because it's a true RISC CPU, all instructions fit into a 32-bit word. This means that all the instructions get disassembled accurately every time, with no room for ambiguity.

Wondering what I mean? x86 instructions being CISC, vary in byte length from somthing like 1 byte all the way to 5 bytes (I don't know the exact figures, so don't pull me up on this detail). This means that when looking at object code, ambiguities arise over what blocks of bytes decode to what instructions. This doesn't happen with ARM instructions. :D Where there is actual data or empty space filled with random garbage, it will still be disassembled into apparent ARM instructions (where it fits valid op-codes). However, it's easy to separate real ones from fake ones by following the program flow by eye. And I'm sure they now have automated tools to spot these in a flash.

The ARM CPU is so elegantly designed. :respect: I wish it was at the heart of every desktop PC instead of x86.
 
Top