<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Slexchange ATM Script Cracked?</title>
	<atom:link href="http://alphavilleherald.com/2008/05/slexchange-atm.html/feed" rel="self" type="application/rss+xml" />
	<link>http://alphavilleherald.com/2008/05/slexchange-atm.html</link>
	<description>Always Fairly Unbalanced</description>
	<lastBuildDate>Tue, 04 Oct 2016 13:18:56 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: ATM Sales</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13740</link>
		<dc:creator>ATM Sales</dc:creator>
		<pubDate>Fri, 13 Mar 2009 02:40:18 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13740</guid>
		<description>Interesting fact.The scripts above aren&#039;t ATM scripts. They are excerpts from the SLX Magic Box, something you can&#039;t use to steal things from SLX. Also to get script byte code from things, you have to own the stuff yourself. As the ATM aren&#039;t given out, the ATMs so far are safe.
</description>
		<content:encoded><![CDATA[<p>Interesting fact.The scripts above aren&#8217;t ATM scripts. They are excerpts from the SLX Magic Box, something you can&#8217;t use to steal things from SLX. Also to get script byte code from things, you have to own the stuff yourself. As the ATM aren&#8217;t given out, the ATMs so far are safe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anne Otoole</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13739</link>
		<dc:creator>Anne Otoole</dc:creator>
		<pubDate>Wed, 07 May 2008 00:40:57 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13739</guid>
		<description>You children are such sucks, I could d a better email spam than any of you knuckle heads put together. LL just don&#039;t have the experienced team to deal with this. They can&#039;t even sort out the DB issues , they should hire a real coder then all you script kiddies would have nothing to do.
Oh I think its time for my Meds.
</description>
		<content:encoded><![CDATA[<p>You children are such sucks, I could d a better email spam than any of you knuckle heads put together. LL just don&#8217;t have the experienced team to deal with this. They can&#8217;t even sort out the DB issues , they should hire a real coder then all you script kiddies would have nothing to do.<br />
Oh I think its time for my Meds.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: obi-wan</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13738</link>
		<dc:creator>obi-wan</dc:creator>
		<pubDate>Mon, 05 May 2008 00:53:55 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13738</guid>
		<description>@DiSSENT said:&quot;One can simply upload the bytecode as-is using an slproxy patch and then open it inworld with full perms to see the LSL code. &quot;

This is only speculation, once LSL is compiled to bytecode you cant open it again to see the LSL source code.

DISSENT its better you only say things you have actually done. Not quoting things you think maybe possible.



</description>
		<content:encoded><![CDATA[<p>@DiSSENT said:&#8221;One can simply upload the bytecode as-is using an slproxy patch and then open it inworld with full perms to see the LSL code. &#8221;</p>
<p>This is only speculation, once LSL is compiled to bytecode you cant open it again to see the LSL source code.</p>
<p>DISSENT its better you only say things you have actually done. Not quoting things you think maybe possible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: obi-wan</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13737</link>
		<dc:creator>obi-wan</dc:creator>
		<pubDate>Sun, 04 May 2008 23:00:47 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13737</guid>
		<description>My questions is this, how do you get the bytecode of a LSL script that is no mod and no copy?
</description>
		<content:encoded><![CDATA[<p>My questions is this, how do you get the bytecode of a LSL script that is no mod and no copy?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DiSSENT</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13736</link>
		<dc:creator>DiSSENT</dc:creator>
		<pubDate>Sun, 04 May 2008 21:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13736</guid>
		<description>You&#039;re right I am talking about disassembling LSO which does not turn back into LSL but does make it more readable.
One can simply upload the bytecode as-is using an slproxy patch and then open it inworld with full perms to see the LSL code. Why would this work? Because the client compiles scripts into .lso files in the cache and uploads those to the server. The server doesn&#039;t know the difference between that and any other .lso file your client uploads. There are no permissions settings stored inside the lso and there is no unique encryption key generated by the client to verify ownership or anything.

here is an example of disassembled lso:

======== LSOAssembly ========
==== HeaderBlock ====
TM: 16384
VN: 512
BP: 16383
SP: 16383
HR: 333
HP: 476
CS: 0
NS: 0
CE: 0
IE: 0
ER: 0
FR: 0
SLR: 0
GVR: 100
GFR: 168
PR: 0
ESR: 0
SR: 168
NCE: 1
NIE: 0
NER: 4

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: Integer
StringData:
--- Data ---
00-00-00-7B

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: List
StringData:
--- Data ---
00-00-00-01

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: String
StringData:
--- Data ---
00-00-00-6E

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: Float
StringData:
--- Data ---
3F-9D-70-A4

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: Vector
StringData:
--- Data ---
41-F0-00-00-41-A0-00-00-41-20-00-00

==== StaticBlock ====
--- StaticBlockHeader ---
Size of header: 6
Type of object: Key
StringData:
--- Data ---
00-00-00-81

==== StateFrameBlock ====
Number of states: 1
--- StatePointerBlock ---
Offset: 16
EventMask: 4

==== StateBlock ====
--- StateBlockHeader ---
Size of header: 5
StringData:
--- StateBlockHandler ---
Pointer to code chunk: 8
Call frame size: 4

==== EventHandlerCodeChunk ====
--- CodeChunkHeader ---
Size of header: 5
StringData:
--- Code ---
63-5B-60-42-75-7A-7A-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-5E-00-00-00-02-5E-00-00-00-01-75-11-92-01-00-00-00-23-63-5B-60-4E-6F-2E-20-46-41-49-4C-2E-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-90-00-00-00-1B-63-5B-60-57-6F-6D-62-61-74-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-63-5B-56-00-00-00-1A-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-01-95
PUSHE
PUSHBP
PUSHARGS &quot;Buzz&quot;
PUSHARGE 0
PUSHSP
PUSHARGI 4
ADD Integer, Integer
POPBP
CALLLIB_TWO_BYTE 292
PUSHARGI 2
PUSHARGI 1
EQ Integer, Integer
JUMPNIF Integer, 35
PUSHE
PUSHBP
PUSHARGS &quot;No. FAIL.&quot;
PUSHARGE 0
PUSHSP
PUSHARGI 4
ADD Integer, Integer
POPBP
CALLLIB_TWO_BYTE 292
JUMP 27
PUSHE
PUSHBP
PUSHARGS &quot;Wombat&quot;
PUSHARGE 0
PUSHSP
PUSHARGI 4
ADD Integer, Integer
POPBP
CALLLIB_TWO_BYTE 292
PUSHE
PUSHBP
PUSHGS 26
PUSHARGE 0
PUSHSP
PUSHARGI 4
ADD Integer, Integer
POPBP
CALLLIB_TWO_BYTE 292
POP
RETURN

==== HeapBlock ====
Size of data: 24
Type of object: List
Reference count: 1
Data: 00-00-00-05-00-00-00-20-00-00-00-2B-00-00-00-36-00-00-00-44-00-00-00-57

==== HeapBlock ====
Size of data: 4
Type of object: Integer
Reference count: 1
Data: 00-00-00-00

==== HeapBlock ====
Size of data: 4
Type of object: Float
Reference count: 1
Data: 3F-80-00-00

==== HeapBlock ====
Size of data: 7
Type of object: String
Reference count: 1
Data: 32-20-6D-75-63-68-00

==== HeapBlock ====
Size of data: 12
Type of object: Vector
Reference count: 1
Data: 41-50-00-00-41-40-00-00-41-30-00-00

==== HeapBlock ====
Size of data: 16
Type of object: Rotation
Reference count: 1
Data: 40-80-00-00-40-40-00-00-40-00-00-00-3F-80-00-00

==== HeapBlock ====
Size of data: 12
Type of object: String
Reference count: 1
Data: 61-62-72-61-63-61-64-61-62-72-61-00

==== HeapBlock ====
Size of data: 1
Type of object: String
Reference count: 1
Data: 00




lso is actually binary but the information given to the herald was disassembled lso so that people could more clearly see what it is that they are dealing with. It looks much better too.
</description>
		<content:encoded><![CDATA[<p>You&#8217;re right I am talking about disassembling LSO which does not turn back into LSL but does make it more readable.<br />
One can simply upload the bytecode as-is using an slproxy patch and then open it inworld with full perms to see the LSL code. Why would this work? Because the client compiles scripts into .lso files in the cache and uploads those to the server. The server doesn&#8217;t know the difference between that and any other .lso file your client uploads. There are no permissions settings stored inside the lso and there is no unique encryption key generated by the client to verify ownership or anything.</p>
<p>here is an example of disassembled lso:</p>
<p>======== LSOAssembly ========<br />
==== HeaderBlock ====<br />
TM: 16384<br />
VN: 512<br />
BP: 16383<br />
SP: 16383<br />
HR: 333<br />
HP: 476<br />
CS: 0<br />
NS: 0<br />
CE: 0<br />
IE: 0<br />
ER: 0<br />
FR: 0<br />
SLR: 0<br />
GVR: 100<br />
GFR: 168<br />
PR: 0<br />
ESR: 0<br />
SR: 168<br />
NCE: 1<br />
NIE: 0<br />
NER: 4</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: Integer<br />
StringData:<br />
&#8212; Data &#8212;<br />
00-00-00-7B</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: List<br />
StringData:<br />
&#8212; Data &#8212;<br />
00-00-00-01</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: String<br />
StringData:<br />
&#8212; Data &#8212;<br />
00-00-00-6E</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: Float<br />
StringData:<br />
&#8212; Data &#8212;<br />
3F-9D-70-A4</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: Vector<br />
StringData:<br />
&#8212; Data &#8212;<br />
41-F0-00-00-41-A0-00-00-41-20-00-00</p>
<p>==== StaticBlock ====<br />
&#8212; StaticBlockHeader &#8212;<br />
Size of header: 6<br />
Type of object: Key<br />
StringData:<br />
&#8212; Data &#8212;<br />
00-00-00-81</p>
<p>==== StateFrameBlock ====<br />
Number of states: 1<br />
&#8212; StatePointerBlock &#8212;<br />
Offset: 16<br />
EventMask: 4</p>
<p>==== StateBlock ====<br />
&#8212; StateBlockHeader &#8212;<br />
Size of header: 5<br />
StringData:<br />
&#8212; StateBlockHandler &#8212;<br />
Pointer to code chunk: 8<br />
Call frame size: 4</p>
<p>==== EventHandlerCodeChunk ====<br />
&#8212; CodeChunkHeader &#8212;<br />
Size of header: 5<br />
StringData:<br />
&#8212; Code &#8212;<br />
63-5B-60-42-75-7A-7A-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-5E-00-00-00-02-5E-00-00-00-01-75-11-92-01-00-00-00-23-63-5B-60-4E-6F-2E-20-46-41-49-4C-2E-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-90-00-00-00-1B-63-5B-60-57-6F-6D-62-61-74-00-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-63-5B-56-00-00-00-1A-66-00-00-00-00-5C-5E-00-00-00-04-70-11-08-D1-01-24-01-95<br />
PUSHE<br />
PUSHBP<br />
PUSHARGS &#8220;Buzz&#8221;<br />
PUSHARGE 0<br />
PUSHSP<br />
PUSHARGI 4<br />
ADD Integer, Integer<br />
POPBP<br />
CALLLIB_TWO_BYTE 292<br />
PUSHARGI 2<br />
PUSHARGI 1<br />
EQ Integer, Integer<br />
JUMPNIF Integer, 35<br />
PUSHE<br />
PUSHBP<br />
PUSHARGS &#8220;No. FAIL.&#8221;<br />
PUSHARGE 0<br />
PUSHSP<br />
PUSHARGI 4<br />
ADD Integer, Integer<br />
POPBP<br />
CALLLIB_TWO_BYTE 292<br />
JUMP 27<br />
PUSHE<br />
PUSHBP<br />
PUSHARGS &#8220;Wombat&#8221;<br />
PUSHARGE 0<br />
PUSHSP<br />
PUSHARGI 4<br />
ADD Integer, Integer<br />
POPBP<br />
CALLLIB_TWO_BYTE 292<br />
PUSHE<br />
PUSHBP<br />
PUSHGS 26<br />
PUSHARGE 0<br />
PUSHSP<br />
PUSHARGI 4<br />
ADD Integer, Integer<br />
POPBP<br />
CALLLIB_TWO_BYTE 292<br />
POP<br />
RETURN</p>
<p>==== HeapBlock ====<br />
Size of data: 24<br />
Type of object: List<br />
Reference count: 1<br />
Data: 00-00-00-05-00-00-00-20-00-00-00-2B-00-00-00-36-00-00-00-44-00-00-00-57</p>
<p>==== HeapBlock ====<br />
Size of data: 4<br />
Type of object: Integer<br />
Reference count: 1<br />
Data: 00-00-00-00</p>
<p>==== HeapBlock ====<br />
Size of data: 4<br />
Type of object: Float<br />
Reference count: 1<br />
Data: 3F-80-00-00</p>
<p>==== HeapBlock ====<br />
Size of data: 7<br />
Type of object: String<br />
Reference count: 1<br />
Data: 32-20-6D-75-63-68-00</p>
<p>==== HeapBlock ====<br />
Size of data: 12<br />
Type of object: Vector<br />
Reference count: 1<br />
Data: 41-50-00-00-41-40-00-00-41-30-00-00</p>
<p>==== HeapBlock ====<br />
Size of data: 16<br />
Type of object: Rotation<br />
Reference count: 1<br />
Data: 40-80-00-00-40-40-00-00-40-00-00-00-3F-80-00-00</p>
<p>==== HeapBlock ====<br />
Size of data: 12<br />
Type of object: String<br />
Reference count: 1<br />
Data: 61-62-72-61-63-61-64-61-62-72-61-00</p>
<p>==== HeapBlock ====<br />
Size of data: 1<br />
Type of object: String<br />
Reference count: 1<br />
Data: 00</p>
<p>lso is actually binary but the information given to the herald was disassembled lso so that people could more clearly see what it is that they are dealing with. It looks much better too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Day Oh</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13735</link>
		<dc:creator>Day Oh</dc:creator>
		<pubDate>Sun, 04 May 2008 19:54:32 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13735</guid>
		<description>lol omg
</description>
		<content:encoded><![CDATA[<p>lol omg</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aidan Thornton</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13734</link>
		<dc:creator>Aidan Thornton</dc:creator>
		<pubDate>Sun, 04 May 2008 17:51:42 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13734</guid>
		<description>whisper2u: I think you&#039;re getting slightly mixed up. The usual trick is to capture the bytecode for your script, then upload a dummy script together with the actual bytecode. That way, if anyone reads the script, they won&#039;t see the actual code. (I actually wrote some code to do this myself a while back, for other reasons.)

DiSSENT: I think you&#039;re getting your decompilers confused with your disassemblers. Disassemblers for LSL are out there (there&#039;s even one in the official client code, IIRC) and are probably enough for what you&#039;re doing, but they don&#039;t give you LSL source code back.

Melissa Yeuxdoux: having played around with LSL bytecode, the original variable names aren&#039;t available anyway for recent code. Also, while it&#039;s theoretically possible to decompile bytecode back to LSL (mainly because the compiler is really simple), I don&#039;t know of anyone who&#039;s done it. It&#039;s not exactly trivial to do even for something this simple.


</description>
		<content:encoded><![CDATA[<p>whisper2u: I think you&#8217;re getting slightly mixed up. The usual trick is to capture the bytecode for your script, then upload a dummy script together with the actual bytecode. That way, if anyone reads the script, they won&#8217;t see the actual code. (I actually wrote some code to do this myself a while back, for other reasons.)</p>
<p>DiSSENT: I think you&#8217;re getting your decompilers confused with your disassemblers. Disassemblers for LSL are out there (there&#8217;s even one in the official client code, IIRC) and are probably enough for what you&#8217;re doing, but they don&#8217;t give you LSL source code back.</p>
<p>Melissa Yeuxdoux: having played around with LSL bytecode, the original variable names aren&#8217;t available anyway for recent code. Also, while it&#8217;s theoretically possible to decompile bytecode back to LSL (mainly because the compiler is really simple), I don&#8217;t know of anyone who&#8217;s done it. It&#8217;s not exactly trivial to do even for something this simple.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Montana Corleone</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13733</link>
		<dc:creator>Montana Corleone</dc:creator>
		<pubDate>Sun, 04 May 2008 17:16:08 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13733</guid>
		<description>Hey guys I&#039;m like SUPER raged and posting under like OVER A THOUSAND alts but too stupid to hide it.
</description>
		<content:encoded><![CDATA[<p>Hey guys I&#8217;m like SUPER raged and posting under like OVER A THOUSAND alts but too stupid to hide it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Impressed By The Experts</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13732</link>
		<dc:creator>Impressed By The Experts</dc:creator>
		<pubDate>Sun, 04 May 2008 15:37:14 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13732</guid>
		<description>So, we left it to the experts, and they, er, spammed themselves lol.

Worse than a dodgy construction worker.

This surely will win LULZ of the year, for complete incompetence, at next year&#039;s LULZ conference. And the winner is: DiSSENT aka Adromor (I don&#039;t want my SL business to get involved) Wierwight aka whisper2u aka d3eadlyc0ckup
</description>
		<content:encoded><![CDATA[<p>So, we left it to the experts, and they, er, spammed themselves lol.</p>
<p>Worse than a dodgy construction worker.</p>
<p>This surely will win LULZ of the year, for complete incompetence, at next year&#8217;s LULZ conference. And the winner is: DiSSENT aka Adromor (I don&#8217;t want my SL business to get involved) Wierwight aka whisper2u aka d3eadlyc0ckup</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: whisper2u Can't Read</title>
		<link>http://alphavilleherald.com/2008/05/slexchange-atm.html/comment-page-1#comment-13731</link>
		<dc:creator>whisper2u Can't Read</dc:creator>
		<pubDate>Sun, 04 May 2008 15:20:57 +0000</pubDate>
		<guid isPermaLink="false">http://localhost/wp_2/?p=730#comment-13731</guid>
		<description>Clearly, like all the kiddies who post here, and the staff of this joke of a site, whisper2u can&#039;t read. Nowhere does it say anyone is mounting an army, twat.

Still, fact and truth never was exactly a strong point here was it? And calling an organisation after a wrestling competition is mature? lol. What are they going to do, wrestle prims to the ground? :-O

No wonder none of their campaigns work, it helps to be able to read before you can write.

Tell me, how is your spamming campaign coming on again boys? The apologies by DiSSENT *are* EPIC LULZ, lmfao.

</description>
		<content:encoded><![CDATA[<p>Clearly, like all the kiddies who post here, and the staff of this joke of a site, whisper2u can&#8217;t read. Nowhere does it say anyone is mounting an army, twat.</p>
<p>Still, fact and truth never was exactly a strong point here was it? And calling an organisation after a wrestling competition is mature? lol. What are they going to do, wrestle prims to the ground? :-O</p>
<p>No wonder none of their campaigns work, it helps to be able to read before you can write.</p>
<p>Tell me, how is your spamming campaign coming on again boys? The apologies by DiSSENT *are* EPIC LULZ, lmfao.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

