I’ll stop now, honest


I just had to do this one first:

Of course, now that I have a good source and tool for making O’Reilly-ish (technically Dover Pictorial Archive style) cover images, more could appear at any time.


The top script comes from here; the bottom one is my old minimized CipherSaber implementation.

[Final version of the new japh I came up with after making this cover; intermediate steps after the jump]

sub _'__'_{sub{map{pop.shift}@_}}sub{print+(map{pack$..h.2,$_}_ _::__->
(split$,,shift.pop.shift))[map{hex}split$\,pop]}->(map y{#-`}{+-]}r,qw&
...../. (aa(+f*(,-0+e)-cb ../// ////..*. e/-0d+,b0.*ad1*a)d.+c(*af&)&0_

Original, too-obvious japh:

&{sub{@!=split//,pack'h2'x0x10,grep$_,
split/(..)/,pop.shift;print$![hex]for#
split//,pop}}(qw/78657470727f63602a6a0
e758d34b862ad92a1d63c02af b6c65616e63/)

This obscures it a bit more…

&{sub{@!=split//,pack'h2'x0x10,grep$_,split/(..)/,join'',&{sub{push@!,
pop.shift while@_;@!}}(split//,pop.shift);print$![hex]for split//,pop}
}(qw/260aa03f204583e15cb bfd e758d34b862ad92a1d63c02af 6666676777766/)

Hmmm, hadn’t noticed that made some of the original code redundant. Best to remove it to make room for unique obfuscation (or at least come up with another distinct use for pop.shift…).

&{sub{@!=split//,pack'h2'x0x10,&{sub{push@!,pop.shift while@_
;@!}}(split//,pop.shift);print$![hex]for split//,pop}}(qw/5cb
bfd e758d34b862ad92a1d63c02af 6666676777766260aa03f204583e1/)

Getting ‘better’…

&{sub{@__=split//,pack'h2'x0x10,&{sub{map pop.shift,@_}}(
split//,pop.shift);print@__[map hex,split//,pop]}}(qw/5cb
e758d34b862ad92a1d63c02af 6666676777766260aa03f204583e1/)

Ahhh, that felt good. Got rid of all but one space character, because fuck Python:

&{sub{@!=map{pack'h*',$_}&{sub{map{pop.shift}@_}}(split
//,pop.shift);print@![map{hex}split//,pop]}}(qw/83e15cb
e758d34b862ad92a1d63c02af 6666676777766260aa03f2045/)&1

Three steps forward, two steps back. Net gain of 6 bytes, but it would have been eight if I hadn’t needed padding to make the lines come out the same length. At least the padding is obfuscatory…

sub{print+(map{pack$..h.2,$_}sub{map{pop.shift}@_}->(
split$,,pop.pop))[map{hex}split$\,pop]}->(qw&583e15cb
6666676777766260aa03f204 e758d34b862ad92a1d63c02af&),

Okay, I had to add two space characters to this version, but it was worth it. 😄

sub _'__'___{sub{map{pop.shift}@_}}sub{print+(map{pack$..h.2,
$_}___ _::__->(split$,,pop.pop))[map{hex}split$\,pop]}->(qw&b
6666676777766260aa03f204583e15c e758d34b862ad92a1d63c02af&),0

Comments via Isso

Markdown formatting and simple HTML accepted.

Sometimes you have to double-click to enter text in the form (interaction between Isso and Bootstrap?). Tab is more reliable.