Objects in the heap also have a very regular structure. They all have code 
pointers as their first word, which point to info tables that also have a 
regular structure [1]. GHC produced code is probably one of the easiest to 
identify out of all compiled languages...

http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects

Ben.


On 27/05/2010, at 1:15 PM, Daniel Peebles wrote:

> Next up, binary obfuscation! Apple already uses these extensively in their 
> Fairplay code. Surely it isn't against the rules (yet?) to apply them to your 
> program before submitting it to the store? :P
> 
> On Wed, May 26, 2010 at 11:01 PM, Ben Lippmeier <b...@ouroborus.net> wrote:
> 
> On 27/05/2010, at 9:01 AM, Edward Kmett wrote:
> > While we can all acknowledge the technical impossibility of identifying the 
> > original source language of a piece of code...
> 
> 
> Uh,
> 
> desire:tmp benl$ cat Hello.hs
> main = putStr "Hello"
> 
> desire:tmp benl$ ghc --make Hello.hs
> 
> desire:tmp benl$ strings Hello | head
> Hello
> base:GHC.Arr.STArray
> base:GHC.Arr.STArray
> base:GHC.Classes.D:Eq
> base:GHC.Classes.D:Eq
> failed to read siginfo_t
>  failed:
> Warning:
> select
> buildFdSets: file descriptor out of range
> 
> ...
> 
> 
> 
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to