1. un-binding and exe...

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

new topic     » topic index » view message » categorize

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==_--

new topic     » goto parent     » topic index » view message » categorize

3. Re: un-binding and exe...

oops!  I forgot to run that through PKZIP before I sent it.
WARNING!  DO NOT CUT AND PASTE THE CODE IN MY LAST
MESSAGE!  EUPHORIA WILL CHOKE ON IT!!!!

You will need to run it through a MIME decoder first, just as you would any
zipped binary files sent through email.  I am truly sorry if this has caused
any problems for people.

James A. Powell

P.S.  RIP is currently at version .99b so if something weird happens while using
it, please send me reports.  I am currently adding a user interface that
will make
it work a little more like BIND.EX.  I have also thought about a RAR 2.0 type of
interface to allow selection of multiple bound programs for automatic RIP'ing.
Any other ideas anyone?  (Please don't mention decoding, that will be done by
a seperate program.  Eventually, they will be joined together, but not in
the near
future).

new topic     » goto parent     » topic index » view message » categorize

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

new topic     » goto parent     » topic index » view message » categorize

5. Re: un-binding and exe...

On Thu, 15 May 1997, Robert Craig wrote:
> 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"

And of course, all of our games have unencrypted copyright notices in the
bound executables, as well as in the data files and art in the games...

If you want license to use our game code you need to buy the book... =)

any open source we post here or on our euphoria web site is free game
though.  I DO plan on posting some usefull examples of what we do on the
site soon.

Any code you'd rip from an exe would be tough at least to use if you
didn't write it.

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu