Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Identify the Killers (Decoding Question)

Posted on 2005-05-15
45
Medium Priority
?
413 Views
Last Modified: 2008-03-04
Ok people, here's the newest encoded text-blocks.  The first one is the same as the first image I've posted in this question http://www.experts-exchange.com/Miscellaneous/Puzzles_Riddles/Q_21314301.html:

qg{jqsg%{qO\_e{|Pft{qt***_{#qt5{q__kz8{a{q^+99W#Y4WWW00+3y+W6RR*4E47)e*E%e*tt~{b
q@lq~xq!'q^q^;zb>q`lMMMq5Vxq`:/VXxq2:qkqzq8a{q6===6R*$^^&{<q`qWnj32j<{qOn_W+8{"{
q^`&-{"{qt736Et-k{g%{q80^^R)j6j-j8j^R7=$Y9W)=3Rk{g%q8g8{qet7-55r0=44uu88-{Q{qR7=
^utQw`~{\q#q7h8q3?wq%<gzgZgWq)/Ig6qvq0fqzqJq@?()g"{q$t_9=7y2{v.Bml"mVq!Xq2LoSTJ[
F]|Fua[Jokt$)1e^+7*+@9^e$E~{gSL]XF"GJ']KGxaC]Hr8pwy6r&it0O8e=E0o@{qBg~qxg$qMg@q,
q>g2qxq?q,g4qvg%{qx.dpksGi;IkA\kIFs;P"IdsXtw-^Ej9j*j6j_6r&w4y(r0_#sXt{gp{q3^r*+$
$E0W4uu8-%{6{q8-%Etw4`~ew{GhqW35qrM<gzq4q%ugdg_g6qvq=X;Sq|qu()qnq3q^:Bq|,{qH9=7y
!{V?bNq@Zn:MCYK}DRAyhs}Ki\yAp2r&_`(!w0&r#8!(%{g|'Gl[x]'FS"|kFXSc[0E&O=TwE6&Rwp(W
&r_{qCg2q,g`qZg4qxg2qMqBg@qCq/qMg$qBg5{qZ]fo'aHSfUoGS"[doF|kZ8y5R8+WEt_{/{qt;Yuo
{gZ^cqlq?g8q^gHBq.3q0gTEgzgTCqOqzwq*vgRg:7_giqzTqUq]g;&gQg[qha*g"q>qO]Xq$g8q5cqK
gZgz-q^fZn'q0q-gJz9Xg)gfq}.qLgJqTgGqfqpgLq|X|grqDgflgEqAq4gUqbq1q1g^qCqb-qQ\{gd6
rX{}gP_gTgrgJVg#wqOq$PgJg'gQPq.qoqvg6(q9gKq<XGgcgpq>6oqCgPq_qVg5quqKg-gQmq?gFMg=
qWgZq[fg=gog0~q^geg7gHqeOlkgspoquq`"qZgIqVquqpCg]g\q<7qvg}qoR<gyq\"gkXgT?qwq]gEq
.gE]q3qu_kq$q(qwgSgigs\qr{gC\:ua{qLg#gRq[,qU"grzg1[g^q8q-gLsgcqcqhqGgF>gXqKqiDg|
q3AqxSg"qaq0gtgXgaqfqBoq7Z}qzgaqfq]5qig`)[gaqf;:g!gUg2stq)g@PzvK]g_idg:g;Wq-q1&5
g2@gFqCgu,glG4qeD[uqz&g'qp&3-q$AgQq)6oqbqlq\g^r{g8@1l{^Pq!g1qH$qLq5;q"qmq))mqdgL
qYqaVgLq3(qF6qzTgWqC'qcg}qXYDq=Dg60g#q_gHq5q~g*qWq@g4g-OUq0g(go|q|}q(>g%gDmgSbq3
gug(w{q8W^RmQ{5Sg*cgEg[q"dgcgkqBg+q`HugsPg~'qlq]q2g0gZvIg;g1qHWqHg'g$q;qJgk{qUO8
z{5Y/$@g1g~g!qKq5G\g]bq#iSqhA{g\}#l={0g#qXV0Yiq}gRqp]q;0{qpNIktI{g(g0gPqHlC%9g7R
g[!q^q@{gYRHz{qVq|uq3qug'kURFGgkqVqKlgL5g(qR=tgLudDgPoqUgcvg:TgS:q%<LqWgUq5q?cgC
g*g\aghgCO}q%q6qWg!gonqM+qNhgoqf.gdgugZ:tq'%gK<;qWq*qIg4qBq0q3gLgHB/qHqa]qK<gP/[
NRqX\qYg)qJHgaqQgsg^TqIqN([qTq#q'Vgi-@)ZgXgLsbg]q?g[gosq+q@g'g&qT-{ge^*J{:g"qkqx

This one however, is a bit longer and is a different image:

aiexea:>KJ#re}Jo}ea%rrr#e$a%=a#a#aHi5aETea&(YY6)3-66633(=(y7q88%T8=6_%twt%tQQe'a
1Bb'a`Vcararn.KXZnea!!!R@e/,a!ca!z.vMaHi5aETea7999q8%yQQr~e:a5Keax32x~Kei2ea#E(E
e<a&:ata3Cea%R-76&3HzEY&&5yx6x3x8x&5R4(3Y6#9=8HzEeiRear%R388^T499##EE3e0ea5R4&#&
5te:XRa)awO`a0z$aQa~i\idi6a#"Giwaba-pa.aklC!Qisea_*u=3E+eKa2"lvm<a1MB?na@hu[ykOR
}PdHs}g\kQ@6!r$`&%)w(&+8reiz|F}Cd[hDJXHGLjZ]&-^O(q+W_IT=RPE6YreaVi#aCamaXi%eaB"<
n/ei$a.a,i1a>i4eaZU|[LpdoD]OG\F;DSHfLo:M%^3&6x9xrx6x#7^t%9$u&3)+:M%ei+ea-&^r$((6
T69##E3*e9eaE3*6&%9e:Xa^atYOa640a*;a~i\a-aQPiKiuiwaba9a~mhaha(!Qi`a=aWVNak:eaJ=3
E+e;a@XKBV>a2a!la~ptjI]{|PG|{fJjth5~W#7^*%q*^_EW~QeifAZ\h]HS};flZkh'HCU7+6p9^=Er
UW+ypO^IeaNavi4eac<Z.bXei!aNi~i4a?a<i@a.i%eaKosU:[IAFgKfsj:;IlHei%eaE(85E$E6&#e.
a%aja@ba;i&saka\aS0iPiL&aQa`abi9oisa"&a*?a=icaBa&i;acaoafW:ata}2aUiAa\EicSiDdiGH
i#ltpNaM]1iFi@G`o?waIkiDi5]eaDYh2ocezah^eiHk^`eMidaUaZi:|LaK9u'hy[irirea91u%e2aN
aG&mi}$agi5iHl}*i]a6#iza]aLQKIa9a=iIipaji4i;aKaEi8dp&i7a.gaCIiYi@d7aQi;iUiga9_iY
ij.araMiIeaChL?eda;Qoi;saC'iCdi&iy/i;oa+1Pi*OiEi^i!a@yabiXaQFOki")Ra]>iqa{<Fa1]l
aAata(,eaX~BGreiZ1QigKaEa-aS|k.ikiPa'6hqi(a.a?i+i=ZigaEaOa8i@eapmJJueioaAiABi%i)
i8a1a]/fdi$aEiGi#a#a#4ikiYi[5igda6fi`a6iq?iS/i9awaba'vasaZi!iR3ioi#amw_vi`aC\zil
$a_LawijWa8?ea,5$0eQ4M1i9ayPiFa1Ai+iyLipi9eacG`v|e\LaQCi@a0iQa/i2Ui#ahan7iWisaEa
)aZi%i`acPiuacW$i]lif?a7a-a7@iU*eaE3"Ae[aIaJi7iX&i(ziQiQaDziSvagiW{alihaj;r!+a%a
rirR?qiwa[N<rYeat\?]i*9yze;<%alaLitna8i[aYYa&~i'aHisi3iPzi=eah<ZH%q]@eilYiGa5i$h
ri#aJiRitiPasa\RZ'i:i=iCa0iQa#4a*abIIa`ji1CzamaDqiW&i-i0R}$$wiKi-aU$wafOYRioaLEi
Oa~iEi!Da8itasCioiL.iTiYHikaRiE6iwX1Ka6ila4a&@iAd;aIaham+w=i&9>i5ag5=Esei-*@Ieab
_iril[aIak)Fa\DEa<va}7ik[T{)saX*i]i#a}i[ijavViQaoiXaSa1a@i]ifa@a&iXi@a4sa%aki2ya
c=5,9oBauihti$ciIi:ilgayarTli0li(i:a*li(i:a*a}afisi|a?a*i'aOa4aE(IiEa>iRB2i0aliT
i:'ida%E}iYa$6fiZea+B7"Veti@Zi$i2RaE-iXSja#aySja#-aKaz

If you can show some source-code that would decode both of these text-blocks back into their correct images, you'd get the points :)
0
Comment
Question by:doronb
  • 24
  • 7
  • 5
  • +3
44 Comments
 
LVL 31

Expert Comment

by:qwaletee
ID: 14020722
This may as well have been titled "For Synque"

Well, I suppose I could use Synque's code as a starting point, assimilate the info you gave on why you change dthings, and have a crack at it.  But the kids are crying and the migration project is behind, so...

Lehitraot
0
 
LVL 9

Author Comment

by:doronb
ID: 14021177
Ok qwaletee, lehitraot, ve'be'hatz'la'kha ;)

Actually, to give a hint, synque's code is missing just one small part really :)
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14021344
Shouldn't that be u'be'hatz... or maybe u've'hatz... well, I'll try reisntalling the encoder for the dikduk algorithm.  ;)
0
Evaluating UTMs? Here's what you need to know!

Evaluating a UTM appliance and vendor can prove to be an overwhelming exercise.  How can you make sure that you're getting the security that your organization needs without breaking the bank? Check out our UTM Buyer's Guide for more information on what you should be looking for!

 
LVL 9

Author Comment

by:doronb
ID: 14021565
LOL :)

Where are you now anyway, in Israel?
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14023831
New York. You?
0
 
LVL 9

Author Comment

by:doronb
ID: 14026706
North Bay, Ontario.  Ani Po Biglal Ishti, remember that play? ;)
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14030639
Ken, mai'vin.

Now, how would that decoder change for an Israeli keyboard?  Answer: I don't thin you could, not enough non-Roman charcaters.
0
 
LVL 9

Author Comment

by:doronb
ID: 14030857
Actually, the decoder doesn't care about Hebrew or English or any other language since if there was a message to encode which would go beyond the English characters, I'd simply encode it as a byte-stream.

The idea behind this encoder is to be able to take any byte-stream -- basically, any value between 0 and 255 -- and encode it as printable characters in the normal ASCII/Keyboard range.

I know encoders like that exist, Base64 for instance, however, I wanted to:

1) Write one myself.
2) Write one that produced more compact results.
3) Write one that produced different results each time you encoded the same data.

I think I got all three "wants", the question of who needs this, now that's a different issue ;)
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14031376
Understood... you just have an index of 256 characters that "happens" to be somewhat aligned with a standard keyboard (NA English).  If it was a Hebrew keyboard, your algorithm does not change, and you MIGHT have used a different set of characters and ordering in your table.  Put another way, if your table now begins ~1!, nothing prevents you from deciding that the order should be !1~ instead, or dropping the one in favor of some other chavater you don't currently use.  That's all I'm saying.
0
 
LVL 9

Author Comment

by:doronb
ID: 14033207
Yes, however, the idea was to encode a binary byte-stream as an all-ascii text-block, so I had to stick to conventional English characters...
0
 
LVL 5

Expert Comment

by:synque
ID: 14046209
Okay lemme try to decrypt it this weekend. It looks somewhat more random now. What I know so far is that you still use the same header and the repetitions are handled the same way. Groups of identical characters are also identical in the cipher text, and every plain text character seems to have at most 4 different encodings in the cipher text. My first guess would be that you stopped using the header characters only as a marker and began using their values as well. There's something about a factor of 4 as well ... dunno.
0
 
LVL 9

Author Comment

by:doronb
ID: 14049476
/me keeps his mouth shut this time!!!! >;)
0
 
LVL 5

Expert Comment

by:synque
ID: 14051556
Then you might have to wait more than 3 months this time, cause I have no idea at this moment (no one else seems to be interested). There are a lot of funny symmetries in the encrypted text. For example, if I look at every plain text characters and its encoding I get this:

(plain text character: positions of the encoded characters in your qwerty charset)  

0: 13 16 23 33
1: 12 17 22 32
2: 11 14 25 31
3: 10 15 24 30
4: 9 20 27 37
5: 8 21 26 36
6: 7 18 29 35
...

Weird, weird. Btw, you should think of it as a riddle. If you just want to encrypt data in a way _I_ couldn't decrypt anymore just XOR it by the output of a pseudo random number generator and store the seed somewhere in the encrypted text. If you keep posting small encoded blocks and hide the encoder on your harddisk no one here would get it, I think.
0
 
LVL 9

Author Comment

by:doronb
ID: 14052246
Waiting more than 3 months is fine by me >;)

The idea after all IS to make this encoding a little more than a simple substitute-algo...
0
 
LVL 5

Expert Comment

by:synque
ID: 14052310
I still think it's not enough data. Maybe you should at least post another encrypted version of the "old" jpeg.
0
 
LVL 9

Author Comment

by:doronb
ID: 14052890
Ok, here it is, the same JPEG image as the first one:

{`|m{O`@|{ost_|DpAU|{T(((t|~{T7|{tt'v0|F|{#Q99T^r6TTT88Q7eQ=4__(6u&-&_4u$_4TT!|x
<z{!b>;{#{#'CxB{2X,,,{5XL{2:{3zVb?x{'{v{0F|{4www4_(%##5|N{2{={~m32mN|{oMt=Q0|b|{
#2)R|L|{T-*4uTR'|`@|{0%##y&m6mRm8m#y-E%r9T&w7_'|`@{0`Q|{_T-R55Y8E66EE00R|e|{y-E#
ETY+2!|G{^{-HQ{7{@W{-N`x`Z`U{&{3}`_{z{8k{B{D/{@q(`X|{%=W9w$R|?c{!Z<zb<X{~;?"]kuG
OsoDJ}dOGygU&r3Q%05_E8-%Q2q#|`Gca"DkdLcSKdzF:a;u8Y)o0R*eEwuQT=t&U%|{,`6{c`#{B{?{
b`!`6{V`~{b`4{N`@{c`2|{KI'}:PlpF\s']G}lAJpjOXT+R#um9m(m6mt4Y)u6R*q8W^OXT|`Y|{*#Y
(r%%u8T6EE0R$|6|{0R$uTu62!y+|jH{T17{Y?N`x{6{-T`g`+`_{z{wVZA{A{Eq({M{7{0:Z|{A@f9w
$R~|XMx./v>:,lyFIjiSYasIF[fYSt2+$e4)@90$+7=@)1|`]cdXAzaJDGXhlD"}'AwY*u=I)t0-r)Yq
y*R7|{Z`6{b`%{C`4|{c/B,|`%{<`1{B`#{x`3|{CdJOkaL]h[}g]JsjOGi'C0e5y0r=uTt3TlQEO|`Z
4v{;`~`Q{#`;Z`#1{8`e)`x`eC{S{vW{("`r`H5e`I{vu{\{d`j$`*`A{Fdw`X`!{oYV{%`8{)v{:`Z`
H9{#kv>;{8{R`Ll-;`Q`f{S{!{L`L{t`\{h{I`J{iVD`R{l`fz`t{[{6`o{<..`({Z{<W{qf|`g_R"|I
`D*`e`R`zX`$W{S{%p`L`J`-p`2{}{z`0){^`K{VV\`'`Y`!#]{Z`s{t{"`3{E{g`q`-<`3`D,`={T`Z
{Uk`(`U`w#{0`T`9`;{y[zg`]P]{EBL{C`i{M{E{IC`S`}{V5{N`\{Oi{3`W{sL`:V`e{@{u{d`t`2`Y
o{7{Eeg{%{*{u`G`I`hG{Y|`:}xO[|{L{>`r{UM{\L`Rl`$O`({0{R`Js`'{,{F{g`D{2`"{:{Pj`]{7
S{VA`X{a{%`E`"`[{J{,]{-vI{v`[{J{d7{P`%(O`[{J':{.`W`6sU{6`%pl"Fo`+[a`H`j_{e{1$~`6
!`D{<`OM`k\8{_\iT{v$`J{I$1W{%S`-{66]{<{D{s`(+`Q`%{>`k4p{~{>{L&{L{5Z{J{n{&r<{j`J{
Q{aX`J{*){G6{Bu`y{ZV{x`\{X]\{w\`_0`${W`"{5{!`&{T/`4`qRt{8`^`yD{AI{7B`@`F/`Gx{7`r
`^W|{0T#ynY|7A`&K`t`A{JH`'`l{,`0{2hT`]p{/;{D{d?`w`jc}`j`${fw{f`J`#{l{D`:|{[o0B|7
y{32!{>{/`5{:{5jG`ax{^[A{FS|`G\$k(|0`${Xz0yR{o`r{Io{H0|{IN]'Tp|`q`w`s{fXC^-`)i`A
@{0/|`pr"x|{"{A}{7{E`cStiJ\`l{"{:X`J7`^{_rU`J}a\`sy{[`'c`xu`G:{-N"{=`W{5`~v`l`&`
}d`a`:[I|{-4=.|`y>{BE{zH`U{h{!`g`O`ZxU{k^`'N'{={4{p`4{,{%{7`J`;'{3{f{aY{:N`sNO.i
{bf{r`Q{;h`[{q`]`(u{p{z)O{t{9{kX`IW!(K`;`Jsx|`S~AU|J{Q/`c`-{t9|`T=&L|:`k{'{c

And another text-block, again, same image:

aj_h_a'/z{#R_){IP_a@&&&#_5a@4_a##GO7_Ta8>_a0069`3666$$_>a4a(aYm_a5886_zaRa+a%Caw
atawL_awtWWu_vBVaucVX::l.:aq/na2a2a2lB/>a^a`a!'a9a1MaGaOa7Ta*...a5a8a6Za%a%ar/aY
aQlh32h/_azb#t_>a7<_a8Y*3_x_a@8-*1r3GL7Y882(h6h3h8h82840`064_._a48GL7_jR_aR@83&&
!94))~~773_=_a2848~r5EY_?Ra9vF`a(ayqaw/jOj"j6a4aTOjWaNcg_a.lt~_!+joa#a*aTx_a-E-R
_bz;aW;<a@a&a@?Ma%pu]q]oy)GSK$KFA@%@&F&$!Sw)rorq(u_jD\GuGS]tzkc-c;k9k&)Zq(q:^=Yf
IRIsWYWa:NC<K<BXG_j3a/j5a}j5j1_a/P/U{_j4a|aOa|j2_aU{U,lf'n'Hfvf',@e381h9h&h6h#*!
*%)_?a)a&a$<_a$',@_jo_a-8!&$00196)~~737_I_a7371r%)Y_?a^aEEFa6%{at:/jOa3awIjQj)jW
aN.Cmfa<ay!+asa4aeba*a]'aLx_a-E-r_BX:awa!>a!a^Na~ow[i[=tpF%JDJ#\G$G^#^D~%qpe=ei*
w_jsIf}fYPsPqZLC)C"K*-7QzQ97;7ruDoyoAeiab;mcmkzbzA_j#j~j%a]j%j@_a?p}Is_j3asaPaIj
1_aIFKN:J:VDLGp7(&27$t1r#_<_a@'0+V_j"eZj5a>jRa8jRVaz%cjR7j:jkXagaMKa&a1jujr6#jTa
ORadapjE^jOjfa>}~jlaGaPk'Zj9aQZj$j"jdw:g>_a!393_jxa48?j8j0a\zaHjtaYjca"aZj:aL')j
eaij[a5jWa:a)jcanvvj+aian3ar0_jsWOu_[jHQjkjej[la"qaga04jKjsj&4a/aFaNj}*aTjca\COj
KjZa?WYaij{_a#nly]_j(jdnaXjPaejQa6j;aXgjIjWjf!aejIj|jka^ia5Hj'U^aycxapjOj!a+aZXj
kjSa\6j1jgaVT"jUa,Zj{'jka~a%apj;a/j7y'ay#AZa)a%j}jCjdRaQ_ji|AR7_aKaNjuaX.adxj:'a
vRj\a7a3j'8jxj`aka.jGZjHj$aoijs'\a/fjoasaYjYjuj}aIac^a8>TaOj}aIap{aoac+$j}aIBa^j
~j-j~8yauj`4'a1|5j)DGjrjl6ayaE^Qj~tjGj~jRa-j;O@MSJIaO^jsa{p23a0=j+au~^ana}a[j\ej
Rj`afj;etarj`aP2j%a6mafa{a(@a@j`j:a0aia&j:a-Ej!7a.]jlaV,aBj(aZsg.SjWqa"aqjPa&auj
(a6makj0gpcj*jqHa<[aya`aLjS;j}a8a4j)j-K_a7682,5_#*j(a`jpj*a:UjKjTaNjo>+ij'taDza}
apaRj-jDL6jlavaLfagjsa.j2aGj{_aAz7._#`a`q4afj!aVaglfRjGa8a$Dfa>\jljga"j;jIqa"aZa
!q`uaKjuaZPa|q_aZBfG@U_jyj*j8agnz]8jE[j*~aem_jxTP:_aoa]Sa(a~jz{p2GOjCaoaLnj'{j*a
8)@j:SG(j{FaAjUbjA]jqLaw/a%aQj-a&aJxjGj0j6}jCjk7[awa*mj~jqa!a]wj#dj"adzjAjXj"MPj
3$j]/_a6QtSkNY(_jejka@<a/askaga=j{xRawTa?Ja`j=a[\j7aWj'j+3aUj#E$_aY=F&_ju34\"jFj
'8v_jk5*p_YaYatjzjra=|_jre0t_LjSaGaP
0
 
LVL 9

Author Comment

by:doronb
ID: 14052945
Also, just to have some fun, here's the text "QwertyEncoding is better than Base64 any day!!", without the "" of course, repeated 10 times:

mfp$H9-.qrSX&5)v!~BvE"(lqq!12q&9XvY9>4B:2^4525#5@@

`cma\)$0)QI82^5$&@v$0L8@))#rK)6^8kt^(3<?K17)K@!)kk

lxe'h&`<=~RX&_~b1r:br/#K==W_#=82XvF2,$bN#^-w#4+w33

k`vug=04rqAw$8(W34.W+K)*rr3@<r$=wcT=#&.L<%&8<818,,

ynawo+2@^_u+q~@E_$lE5V!9^^%(>^3`+?[`2W/<>=`=>e&=..

pgtqT8*!2Ear(48=E`,=!Z-02213N2&)rnU)1)NlN*$^N03^nn

sfaxt*25#Ey-8$@*W~l*`"!W##!(/#7`-My`%-n</94=/_#=??

exv"A&(n*~aC3_9c%r.c-/0'**W21*8_C;F_N`bK12-&1~+&!!

rv`eu13=#8i69q@^W9K^1.!~##0('#R16mS1_=K,'0+q'_=q::

qor"t=_n@-fv9`-CR4mC1B8Z@@5`1@#(vN](N0?z18~%1)7%!!

Each line is its own text block.
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14062439
Doron, is this an intellectual exercise?  Or does this have some real-world purpose?
0
 
LVL 9

Author Comment

by:doronb
ID: 14062470
Bit of both really.
0
 
LVL 31

Expert Comment

by:qwaletee
ID: 14063766
That is the answer of a cipher.
0
 
LVL 9

Author Comment

by:doronb
ID: 14063805
LOL :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14134821
So... any progress, or should I just close this question?
0
 
LVL 5

Expert Comment

by:synque
ID: 14147939
Well, I still want to work on it, but right now I can't.
0
 
LVL 9

Author Comment

by:doronb
ID: 14148567
Whenever you can is alright, just help me keep the question open :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14337465
I would actually like to keep the question open so that synque or qwaletee can decrypt the text-blocks.
0
 
LVL 5

Expert Comment

by:synque
ID: 14350005
Yep, I'm still here as well. I think I'll try it again this weekend. Just didn't want to do the second challenge right after spending a couple of hours on the 'old' question. Can't promise a solution though :P
0
 
LVL 9

Author Comment

by:doronb
ID: 14351761
That's alright.. I just thought I'd stop "nagging" ;)
0
 
LVL 20

Expert Comment

by:Mark Brady
ID: 14448655
Keep it open I'll have a go over the next few days !


Mark
0
 
LVL 9

Author Comment

by:doronb
ID: 14449067
Basically, any comment posted will keep the question open until an answer's given :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14449077
By the way, elvin66/Mark, I suggest you read through the previous question at [ http://www.experts-exchange.com/Miscellaneous/Puzzles_Riddles/Q_21314301.html ] to catch up on what's been going on... :)
0
 
LVL 20

Expert Comment

by:Venabili
ID: 14449097
>>Basically, any comment posted will keep the question open until an answer's given :)
Not exactly.. if there is no new information for a while and just "Keep it open", the Cleanup Admin takes an action and just start the closings. This way ensuring that noone is just trying to keep a question too long and thus missusing the point ssystem.
0
 
LVL 9

Author Comment

by:doronb
ID: 14450420
I trust you understand, Venabili, that I'm not keeping this question open to spite anyone, or missuse the point system.
0
 
LVL 20

Expert Comment

by:Venabili
ID: 14450646
Noone said anything on this question - I was explaining practices :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14450658
Ah... :o :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14478787
So... have we lost all hope?
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 14614995
I just want confirmation for something ... I can decode the three versions of the first image, and the 10 versions of the text string, but when i decode the second image, i get a partly corrupted image : the top 1/3 of the image is fine, but after that, the colors get weird ... can you confirm this, or should i look for a bug in my decoder ?
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 14615021
My mistake ... it decodes fine :) Was a copy-paste problem lol
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 14615060
So, here's my code that breaks your encoding :) It's not very clean code, as it's the result of a lot of tweaking and changing along the way, and i can't be bothered to clean it up atm lol.

---- code block start ----

#include "stdio.h"

char enc[2048] = { 0 };
unsigned char dec[2048] = { 0 };

char alphabet[94 + 1] = "`~1!2@3#4$5%6^7&8*9(0)-_=+qQwWeErRtTyYuUiIoOpP[{]}\\|aAsSdDfFgGhHjJkKlL;:\'\"zZxXcCvVbBnNmM,<.>/?";

char alf[90 + 1];

int find_in_alf(char c) {
  int i;
  for (i = 0; i < 90; i++) {
    if (alf[i] == c)
      return i;
  }
  return -1;
}

int decode(int length) {
  int i = 0, j = 0, k = 0;
  char prev = '\0';
  int prev_base = 0;
 
  int base = 0;
  unsigned char block = 0;
 
  j = 0;
  for (i = 0; i < 94; i++) {
    if ((alphabet[i] != enc[0])&&(alphabet[i] != enc[1])&&(alphabet[i] != enc[2])&&(alphabet[i] != enc[3])) {
      alf[j++] = alphabet[i];
    }
  }
  alf[i] = '\0';

  j = 0;
  k = 0;
  prev = '\0';
  prev_base = 0;
  base = 0;
  block = 0;
  for (i = 4; i < length; i++) {
    if (enc[i] == enc[0]) {
      base = 90;
    }
    else if (enc[i] == enc[1]) {
      base = 180;
    }
    else if (enc[i] == enc[2]) {
      base = 0;
      block ^= 1;
      prev = '\0';
    }
    else if (enc[i] == enc[3]) {
      char number[16];
      int count;
      int l = 0;
      while (enc[++i] != enc[3])
        number[l++] = enc[i];
      number[l] = '\0';
      sscanf(number, "%x", &count);
      dec[k++] = (unsigned char) ((unsigned char) find_in_alf(enc[++i]) + base)^((unsigned char) enc[j]);
      j = (j + 1) % 4;
      prev = enc[i];
      //prev_base = base;
      for (; count > 1; count--, k++) {
        dec[k] = dec[k - 1];
      }
      if (!block) {
        base = 0;
      }
    }
    else {
      if ((enc[i] == prev) && (base == prev_base)) {
        dec[k] = dec[k - 1];
      }
      else {
        dec[k] = (unsigned char) ((unsigned char) find_in_alf(enc[i]) + base)^((unsigned char) enc[j]);
        j = (j + 1) % 4;
        prev = enc[i];
        prev_base = base;
      }
      if (!block) {
        base = 0;
      }
      k++;
    }
  }

  return k;
}

int main(int argc, char **argv) {
  FILE *in;
  FILE *out;
  int length = 0;

  if (argc != 3) {
    fprintf(stdout, "provide input and output files :\n  %s <inputfile> <outputfile>\n", argv[0]);
    return 1;
  }
  in = fopen(argv[1], "rb");
  length = fread(enc, 1, 2047, in);
  if (length <= 0) {
    fprintf(stderr, "ERROR : could not read from file\n");
    return 1;
  }
  fclose(in);
 
  length = decode(length);
  fprintf(stdout, "decoded %d bytes !\n", length);
 
  out = fopen(argv[2], "wb");
  if (fwrite(dec, 1, length, out) <= 0) {
    fprintf(stderr, "ERROR : could not write to file\n");
    return 1;
  }
  fclose(out);
  return 0;
}

---- code block end ----

It took me a few hours to break ... but that was largely because the original image (of the first text block) was available. That way i could easily work my way back to reverse-engineer your encryption scheme.

Anyway : if you have any further questions, just let me know :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14615405
I wonder how long it'd've taken you if you had to start from scratch.  Anyway... I'm gonna close this question soon, after I ask someone to check your C code (I don't even have a C compiler on my machine.. sorry).
0
 
LVL 53

Accepted Solution

by:
Infinity08 earned 2000 total points
ID: 14615435
Without the original image, i wouldn't even have started with it heh.

Here's the second image btw :

http://www.imagecabin.com/images/GlD61374.jpg
0
 
LVL 9

Author Comment

by:doronb
ID: 14615460
The image is the right one... but I can only get back to this after the 16th of August as I'm currently away from my computer and codebase and other dev-tools.
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 14615492
Take your time :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14687308
I'm back in Canada now and will try to find the time to split the points fairly. :)
0
 
LVL 9

Author Comment

by:doronb
ID: 14797740
Thanks to everyone who participated and helped.  I gave full points to Infinity08 since the riddle was completely solved.

Qwaletee and Synque, sorry about not giving you guys anything this time.
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Dropbox has a relatively new feature called Smart Sync.  This feature allows Dropbox Professional (not plus) and Dropbox Business (if enabled) users to store information in Dropbox WITHOUT storing any files on their computer.
Welcome to 2018! Exciting things lie ahead in the world of tech. To start things off, we compiled great member articles on how to stay safe, ways to learn, and much more! Read on to start your new year right.
Kernel Data Recovery is a renowned Data Recovery solution provider which offers wide range of softwares for both enterprise and home users with its cost-effective solutions. Let's have a quick overview of the journey and data recovery tools range he…
How can you see what you are working on when you want to see it while you to save a copy? Add a "Save As" icon to the Quick Access Toolbar, or QAT. That way, when you save a copy of a query, form, report, or other object you are modifying, you…

578 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question