2. Re: un-binding and exe...
--=====================_863656513==_
>I just had a major catastrophe and I need one of you guruses to help me
>out. My current source code was just corrupted in the worst way (I
>accidentally downloaded an old version of it on top of it - I count gross
>stupidity as the "worst way" to corrupt something) but I have a bound exe
>from a minute or two before the hollocaust. Does anyone know of a way to
>un-bind the source code from the exe and get it back in a usable format?
>Once I get there I suppose I can replace the variable and procedure names
>one by one... =( ish and double ish. Anyone who can help me out on this
>can freely kick me for being an idiot.
>
>Michael Packard
>Lord Generic Productions
>lgp at exo.com http://exo.com/~lgp
>A Crash Course in Game Design and Production
>http://exo.com/~lgp/euphoria
Sorry it took so long to respond (4 days) but I have been busy.
Anyways, as to your post, I have the solution and have attached it here for
everyone who wants it.
----- WARNING, DISCLAIMER FOLLOWS!!!!!-------
However, be aware that the use of this program may violate copyright laws if
used improperly or illegally. (The program itself is not illegal, just
certain uses,
ie. if you RIP'ed one of LGP's games you could find yourself in a very tangled
situation. However, since the code is sitting right at the end of the exe
in open
view to any good hex editor/viewer, it's debatable whether LGP would have any
specific legal grounds to sue.)
------ END DISCLAIMER ---------
RIP is a nice little program and if you like it, watch for UnShroud, the
next little
proggy that I'll be releasing. UnShroud will decode the output of RIP and
Shroud
(included with Euphoria). (However, refering the the disclaimer, the use of
UnShroud on one of LGP's games would most definately be illegal).
--=====================_863656513==_
Content-Transfer-Encoding: quoted-printable
=97warning
=8CB=3D19,
C=3D20,
D=3D22,
E=3D23,
F=3D42,
G=3D43
=8BH(=ADI)
=87I>=3D0
=82=8B
=8BI(=ADJ)
=87J>=3D-1
=82=8B
=8BJ(=ADK)
=87K=3D0=8FK=3D1
=82=8B
=91K(H L,I M)
=87=CF(B,{L,M})
=82=91
=91L(H M)
=87=CF(C,M)
=82=91
=8C
M=3D1,
N=3D2,
O=3D3,
P=3D4,
Q=3D5,
R=3D6,
S=3D7,
T=3D8,
U=3D9
=91V(=AEW)
=87=CF(D,W)
=82=91
=91W()
=87=CF(E,0)
=82=91
=84X(J Y)
=D0(F,Y)
=82=84
=91Y()
=87=CF(G,0)
=82=91
=8CZ=3D26
=8Ca=3D{
48,49,50,51,52,53,54,55,56,57},
b=3Da&{
65,66,67,68,69,70},
c=3Da&{
45,43,46,35}
=91d()
=87=CF(Z,0)
=82=91
=8Ce=3D0,
f=3D-1,
g=3D1
=8Ch=3D-2
=8Ci=3D1
=8Bj(=ADk)
=87k>=3D0
=82=8B
=8Bk(=ADl)
=87l>=3Dh=8El<=3D255
=82=8B
j l=20
=B0m=20
j n
k o=20
=91p()
k q
=81o=3Dh=83
=81=AE(m)=83
=81n<=3D=AB(m)=83
q=3Dm[n]
n=3Dn+1
=87q
=85
=87f
=82=81
=85
=87=B7(l)
=82=81
=85
q=3Do
o=3Dh
=87q
=82=81
=82=91
=84q(k r)
o=3Dr
=82=84
=84r()
k s
=8Ai=88
s=3Dp()
=81=94=BE(s,{
32,9,10})=83
=90
=82=81
=82=8A
q(s)
=82=84
=8Cs=3D{
110,116,39,34,92,114},
t=3D{
10,9,39,34,92,13}
=91u(k v)
j w
w=3D=BE(v,s)
=81w=3D0=83
=87g
=85
=87t[w]
=82=81
=82=91
=91v()
k w
w=3Dp()
=81w=3D92=83
w=3Du(p())
=81w=3Dg=83
=87{g,0}
=82=81
=82=81
=81p()!=3D39=83
=87{g,0}
=85
=87{e,w}
=82=81
=82=91
=91w()
=AEx
k y
x=3D{}
=8Ai=88
y=3Dp()
=81y=3Df=8Fy=3D10=83
=87{g,0}
=82=81
=81y=3D34=83
=90
=89y=3D92=83
y=3Du(p())
=81y=3Dg=83
=87{g,0}
=82=81
=82=81
x=3Dx&y
=82=8A
=87{e,x}
=82=91
=8Bx(=ADy)
=87y=3D-1=8Fy=3D+1
=82=8B
=91y()
k z
x BA,BB
j BC
=ADBD
=BCBE,BF,BG,BH
BA=3D+1
BE=3D0
BB=3D+1
BG=3D0
BC=3D0
z=3Dp()
=81z=3D45=83
BA=3D-1
=89z !=3D43=83
q(z)
=82=81
z=3Dp()
=81z=3D35=83
=8Ai=88
z=3Dp()
BD=3D=BE(z,b)-1
=81BD>=3D0=83
BC=3DBC+1
BE=3DBE*16+BD
=85
q(z)
=81BC>0=83
=87{e,BA*BE}
=85
=87{g,0}
=82=81
=82=81
=82=8A
=82=81
=8Az>=3D48=8Ez<=3D57=88
BC=3DBC+1
BE=3DBE*10+(z-48)
z=3Dp()
=82=8A
=81z=3D46=83
z=3Dp()
BF=3D10
=8Az>=3D48=8Ez<=3D57=88
BC=3DBC+1
BE=3DBE+(z-48)/BF
BF=3DBF*10
z=3Dp()
=82=8A
=82=81
=81BC=3D0=83
=87{g,0}
=82=81
=81z=3D101=8Fz=3D69=83
z=3Dp()
=81z=3D45=83
BB=3D-1
=89z !=3D43=83
q(z)
=82=81
z=3Dp()
=81z>=3D48=8Ez<=3D57=83
BG=3Dz-48
z=3Dp()
=8Az>=3D48=8Ez<=3D57=88
BG=3DBG*10+z-48
z=3Dp()
=82=8A
q(z)
=85
=87{g,0}
=82=81
=85
q(z)
=82=81
BH=3D1
=81BB>=3D0=83
=86BI=3D1=8DBG=88
BH=3DBH*10
=82=86
=85
=86BI=3D1=8DBG=88
BH=3DBH*0.1
=82=86
=82=81
=87{e,BA*BE*BH}
=82=91
=91z()
k BA
=AEBB,BC
r()
BA=3Dp()
=81=BE(BA,c)=83
q(BA)
=87y()
=89BA=3D123=83
BB=3D{}
=8Ai=88
r()
BA=3Dp()
=81BA=3D125=83
=87{e,BB}
=85
q(BA)
=82=81
BC=3Dz()
=81BC[1]!=3De=83
=87BC
=82=81
BB=3D=B1(BB,BC[2])
r()
BA=3Dp()
=81BA=3D125=83
=87{e,BB}
=89BA !=3D44=83
=87{g,0}
=82=81
=82=8A
=89BA=3D34=83
=87w()
=89BA=3D39=83
=87v()
=89BA=3D-1=83
=87{f,0}
=85
=87{g,0}
=82=81
=82=91
=91BD(=ADBE)
l=3DBE
m=3D0
o=3Dh
=87z()
=82=91
=91BF(=AEBG)
m=3DBG
n=3D1
o=3Dh
=87z()
=82=91
=8CBH=3D97-65=20
=91BI(=B0BA)
=87BA+(BA>=3D65=8EBA<=3D90)*BH
=82=91
=91BB(=B0BC)
=87BC-(BC>=3D97=8EBC<=3D122)*BH
=82=91
=91BE(=AEBG,=AEBA)
=ADBC
=81=94=BE(63,BG)=83
=87=BF(BG,BA)
=82=81
=86BJ=3D1=8D=AB(BA)-=AB(BG)+1=88
BC=3DBJ
=86BK=3D1=8D=AB(BG)=88
=81BG[BK]!=3DBA[BC]=8EBG[BK]!=3D63=83
BC=3D0
=90
=82=81
BC=3DBC+1
=82=86
=81BC !=3D0=83
=87BJ
=82=81
=82=86
=870
=82=91
=8CBG=3D-1
=91BA(=AEBC,=AEBJ)
=ADBK,BL,BM=20
=AEBN
BC=3DBC&BG
BJ=3DBJ&BG
BK=3D1
BL=3D1
=8ABL<=3D=AB(BJ)=88
=81=94=BE(BC[BK],{BJ[BL],63})=83
=81BC[BK]=3D42=83
=8ABC[BK]=3D42=88
BK=3DBK+1
=82=8A
=81BC[BK]=3DBG=83
=871
=82=81
BN=3D{}
=8ABC[BK]!=3D42=88
BN=3DBN&BC[BK]
=81BC[BK]=3DBG=83
=90
=82=81
BK=3DBK+1
=82=8A
=81BC[BK]=3D42=83
BK=3DBK-1
=82=81
BM=3DBE(BN,BJ[BL..=AB(BJ)])
=81BM=3D0=83
=870
=85
BL=3DBL+BM+=AB(BN)-2
=82=81
=85
=870
=82=81
=82=81
BK=3DBK+1
BL=3DBL+1
=81BK>=AB(BC)=83
=87BL>=AB(BJ)
=82=81
=82=8A
=870
=82=91
=91BC(=AEBJ,=AEBK)
BJ=3DBB(BJ)
BK=3DBB(BK)
=81=94=BE(46,BJ)=83
BJ=3DBJ&46
=82=81
=81=94=BE(46,BK)=83
BK=3DBK&46
=82=81
=87BA(BJ,BK)
=82=91
=8CBL=3D1
=8CBM=3D2
=84BN(=AEBJ,=AEBK)
=BCBO,BP
=B0BQ
BO=3D=C2(BJ,{
114,98})
BP=3D=C2(BK,{
119,98})
=81BO=3D-1=83
=B4(BM,{
=D1(1)
=89BP=3D-1=83
=B4(BM,{
=D1(1)
=82=81
=81K(BO,171549)=83
=B4(BM,{
=D1(1)
=82=81
=81=BF({
66,73,78,79},=B8(BO))=83
=AC(BP,{
10})
=8A1=88
BQ=3D=B8(BO)
=81=BC(BQ)=83
=90
=82=81
=B4(BP,{
37,115},{BQ})
=82=8A
=85
=AC(BM,{
66,111,117,110,100,32,80,114,111,103,114,97,109,33,10})
=D1(1)
=82=81
=C3(BO)
=C3(BP)
=82=84
=AEBJ,BK,BO
BJ=3D=C1()
=81=AB(BJ)>3=83
BO=3DBB(BJ[4])
BK=3DBB(BJ[3])
=89=AB(BJ)>2=83
BK=3DBB(BJ[3])
BO=3D{-1}
=85
=AC(BL,{
=AC(BL,{
119,105,122,97,114,100,64,100,106,111,46,99,111,109,62,10})
=AC(BL,{
=AC(BL,{
=AC(BL,{
105,108,101,32,40,114,101,113,117,105,114,101,100,41,46,10})
=AC(BL,{
=AC(BL,{
=AC(BL,{
116,104,32,116,104,101,32,115,97,109,101,32,110,97,109,101,32,97,115,32,
105,70,105,108,101,78,97,109,101,44,32,98,117,116,32,119,105,116,104,10})
=AC(BL,{
88,69,10})
=AC(BL,{
=AC(BL,{
=D1(1)
=82=81
=81=94(=BF({
46},BK))=83
=81BO[1]=3D-1=83
BO=3DBK&{
46,82,73,80}
=82=81
BK=3DBK&{
46,69,88,69}
=85
=81BO[1]=3D-1=83
BO=3DBK[1..=BF({
46},BK)-1]&{
46,82,73,80}
=82=81
=82=81
=81=94(=BF({
46},BO))=83
BO=3DBO&{
46,82,73,80}
=82=81
=81(=AB(BK)>11)=8F(=AB(BO)>11)=83
=B4(BL,{
37,115,10,37,115,10},{BK,BO})
=AC(BM,{
10})
=D1(1)
=82=81
BN(BK,BO)
=B4(BL,{
32,37,115,46,10},{BK})
=AC(BL,{
110,115,32,110,101,120,116,10})
=AC(BL,{
32,116,104,101,10})
=AC(BL,{
=AC(BL,{
111,107,32,97,116,41,10})
=AC(BL,{
69,88,33,32,32,41,10})
--=====================_863656513==_
--=====================_863656513==_--
4. Re: un-binding and exe...
James Powell writes:
> ie. if you RIP'ed one of LGP's games you could find yourself in a very =
tangled
> situation. However, since the code is sitting right at the end of the =
exe
> in open
> view to any good hex editor/viewer, it's debatable whether LGP would ha=
ve any
> specific legal grounds to sue.)
They would have very clear grounds to sue.
Does the fact that a book is written in clear text
give you the right to copy and distribute it?
Do you have the right to use pictures from a magazine or Web page
just because they aren't encrypted well enough?
Ask Bill Gates if you can modify and distribute Windows 95, since,
after all, the executables and .DLLs are in clear, non-encrypted =
machine code?
It's my understanding that everyone who creates something
like a program, a book, or a work of art, has an implied
copyright on it. You don't even have to say:
"(c) 1997 James Powell"
In the specific case of LGP, Michael has repeatedly asked for =
a feature that would let him bind the full, clear source to his =
games, so if a bug happens he can get a more understandable =
ex.err file.
As it stands now, no one can recover the full source =
to a (non-trivial) program that has been shrouded or bound.
The necessary information just isn't there.
Regards,
Rob Craig
Rapid Deployment Software