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