<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
<br>
<div class="moz-cite-prefix">On 12/19/21 17:08, graham kelly via
Cuis-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:d1596ce9-b0fe-8c4e-f3d2-b25f44abe75a@gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p><br>
</p>
<div class="moz-cite-prefix">On 12/16/21 2:40 AM, Gerald Klix via
Cuis-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch"> <br>
<br>
On 12/16/21 12:07 AM, Nicola Mingotti via Cuis-dev wrote: <br>
<blockquote type="cite"> <br>
<br>
On 12/15/21 15:43, Gerald Klix wrote: <br>
<blockquote type="cite">Hi Nicola, <br>
<br>
On 12/15/21 12:34 PM, Nicola Mingotti via Cuis-dev wrote: <br>
<blockquote type="cite">Hi guys, <br>
<br>
I am considering the possibility of delivering an
application <br>
I am closing these days in the BeagleBone Black /
BeagleBone AI in Cuis-Smalltalk. <br>
<br>
The application is already written in Python + Node it
would <br>
be mostly a translation effort. <br>
<br>
It would be a major advantage If could hide the code from
unwelcome eyes (the competence). <br>
My classes, specific for the application, should be by
default visible only <br>
byte compiled. <br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
Couldn't you use a blocklist, where competitors aren't allowed to
see the code... but everyone else can?<br>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"> <br>
I discovered a few days ago the possibility of seeing the
bytecode <br>
of a method doing : "Inspect compiled method" so I started
to ask <br>
myself. Does Cuis need only the compiled method to run? Is
it <br>
necessary to have also the source code in place ? <br>
</blockquote>
Yes! You can switch of the warnings about missing changes
and <br>
source files and it will happily squeak along without source
code. <br>
<blockquote type="cite"> <br>
Ideally It would be great if I could keep also the classes
source code into <br>
the BBB, but encrypted. In such a way that, if the
customer needs <br>
a modification, I log in remotely, decrypt the source,
make the <br>
changes and leave there again only the byte code. <br>
</blockquote>
There should an easier way to do that. <br>
The only piece of information the decompiler can not
reproduce <br>
are the names of local variables and parameters. AFIR each
method <br>
has a pointer (a 32-bit offset) into the changes file (or
the source file). These can be replaced by a collection of
local variables names. <br>
This will enable you to make onsite modifications without
the source, <br>
by relying on the decompiler only. If you want to go <br>
that way, drop me a note and will look up the details. <br>
<blockquote type="cite"> <br>
Just guessing. It could be that my classes are subclasses
of EncrypedClass which <br>
by default shows only mangled sourcecode in the Browser,
unless the programmer <br>
provides a deciphering password. <br>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
...and makes sure the source code is believable, less a user
copies the "source code" and fuzzes until they get valid
Smalltalk. <br>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch">
<blockquote type="cite">
<blockquote type="cite">Your changes are rather dim. The
decompiler is much to good at decompiling. Of course you
might be able to remove the decompiler, <br>
but it would be easy to file it in again as long there is a
compiler <br>
available. Removing the Compiler will make it impossible to
<br>
make on-site changes and render every useful tool, browser,
debugger etc.pp. useless. I bet it will render the image
useless. <br>
Maybe you remember the changes you made to the startup-code,
<br>
even in this part there are references to the compiler. <br>
<br>
The only chance I see here, is to change the VM to make it <br>
load an encrypted image and password-protect access to <br>
the browser tools in your UI. Of course if someone gains
root <br>
access to your computer, he/she could easily read the
decrypted <br>
image from RAM. <br>
<br>
</blockquote>
</blockquote>
</blockquote>
Or not root, at least on Linux a process running as the same user
can sometimes read all of that memory.<br>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch">
<blockquote type="cite">
<blockquote type="cite">In a nutshell: It is not worth the
effort. <br>
<br>
I might be worthwhile to run your application with an
(overlay) <br>
file-system that supports encryption (encfs for example). <br>
Again you need to block access to the browsers in your UI. <br>
<br>
<br>
<blockquote type="cite"> <br>
Let me know what you think. If this is possible it would
be <br>
extremely interesting. If you think is very complex to
achieve I put it <br>
in the desiderata list, procrastinate, and keep it mind
for the future. <br>
</blockquote>
I would like to see app distribution with a single file for
Cuis <br>
applications. That is appending the image to the VM
executable <br>
maybe compressed an encrypted. The big problem here is that
<br>
some plugins can not be compiled as internal plugins <br>
and some drivers must be shared objects/DLLs. Of course <br>
the VM could be changed here, but that would mean <br>
Squeak/VMMaker programming. <br>
<br>
It is much easier to add modules to Python's <br>
module loader infrastructure that load encrypted <br>
modules. <br>
</blockquote>
</blockquote>
</blockquote>
+1. However, what about the Dynabook vision?<br>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch">
<blockquote type="cite">
<blockquote type="cite">
<blockquote type="cite"> <br>
<br>
Bye <br>
Nicola <br>
</blockquote>
<br>
<br>
HTH and Best Regards, <br>
<br>
Gerald <br>
</blockquote>
<br>
Thank you Gerald ! <br>
<br>
Now that you tell me "the compiler is smart" i remembered once
in the past you told me also: <br>
</blockquote>
Well -- forgive me some nitpicking here -- the compiler is
rather dumb, <br>
which makes it easy for the decompiler to look smart :=} <br>
<blockquote type="cite">"you lost the .sources file, I can't see
the variables". And i didn't even notice the difference ! <br>
</blockquote>
Oh yes, I remember that conversation. Now that you mention it, <br>
AFIR it was our first conversation. <br>
<blockquote type="cite">Therefore I guess our de-compiler is far
too smart, leaving only the bytecode gives back very readable
code <br>
as far as i remember. So obfuscation via removing source code
is not a viable option. <br>
</blockquote>
Yes it is so simple, that even script kiddies can do it. <br>
<blockquote type="cite"> <br>
Luckily the BBB has on board storage, it is not dependent on
the SDcard. I could sabotage <br>
the SDcard holder, that seems the fastest dumbest way to keep
the random techie out <br>
of my data. s/he/it <br>
</blockquote>
Some hot glue may help. Maybe the SD-Card-Slot can be disabled <br>
by some means of firmware-configuration. If you want to do <br>
this properly you should also disable any JTAG-interface. <br>
<blockquote type="cite"> <br>
Also, very few people know Smalltalk, this is a second level
deterrent. Even if <br>
they can fix the SDcard slot then they need to be able to read
the code, and <br>
this would require some time. For this application I don't
have a secret formula <br>
to hide, I just don't want others to copy/paste easily the
whole application, change 2 colors + 1 label <br>
and sell it as their own. <br>
</blockquote>
IC, deter the script kiddies is a sensible goal. <br>
It will also save time, because you don't need to support/fix <br>
devices that were hacked by some (not so) educated user. <br>
</blockquote>
For now, at least... What about the Dynabook vision? Cuis might
put a backdoor into the core system and allow Cuis to reinstate
the compiler, tools, etc. And <i>all</i> of that could plausibly
be for the Dynabook vision.<br>
<blockquote type="cite"
cite="mid:99c2f77f-42e4-0b32-b168-9cc0a8d06161@klix.ch">
<blockquote type="cite"> <br>
Appimage are cool. I personally don't use them but the concept
is good. <br>
In the and every time you install something in the Mac or
Windows a huge package <br>
comes down, in Linux and BSD we are too perfectionist, we try
to get dependencies <br>
first and then the program we want. That is maybe the right
thing to do, but not <br>
the practical thing to do, especially today that a 10Tera disk
cost 200euro. <br>
</blockquote>
AppImages are rather lean, when it comes to dependencies, but <br>
the dependency-hell starts when you want to build the
AppImage-builder <br>
by your self. <br>
I like Google's go-compiler, it produces statically linked
executables, <br>
that only need a syscall-interface. <br>
<blockquote type="cite"> <br>
In Linux i guess it is not a big problem to share a Cuis
program. E.g. I would just <br>
send you a .tar.gz of my cuis-project-xyz directory. But It
would be all in clear, and that <br>
often is not desirable. For the other systems i don't know. <br>
</blockquote>
If you stick to ZIP-files the result is fairly portable; <br>
disregarding the VM executable and the shared objects/DLLs it
needs. <br>
<br>
An app-store or any other sort of application -- in fact Cuis
image - <br>
repository would help, if we can find a portable <br>
and easy way to install the squeak vm and a simple local <br>
app-store. <br>
<blockquote type="cite"> <br>
<br>
bye <br>
Nicola <br>
<br>
</blockquote>
<br>
Best Regards, <br>
<br>
Gerald <br>
</blockquote>
<p>Love (for the Dynabook vision),</p>
<p>Graham<br>
</p>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
<br>
I found some more info, in the discussion there is Robert Nelson, so
what is there<br>
must be considered definitely reliable. And it is not too-too old
(2017).<br>
<a class="moz-txt-link-freetext" href="https://forum.beagleboard.org/t/how-to-protect-scripts-and-codes/26575">https://forum.beagleboard.org/t/how-to-protect-scripts-and-codes/26575</a><br>
<br>
It is not possible to protect source code in the BeagleBoard. <br>
Therefore all my Python, Node, Smalltalk code is available for
copy/paste.<br>
<br>
That is a pity and a problem. <br>
I will consider well what parts it makes sense to rewrite in C++,
bury<br>
into an Arduino or provide as Web services. <br>
<br>
bye<br>
Nicola<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>