I would like also to be able to deploy a pharo app as a dll juts time and money.
S. > On 7 Sep 2020, at 17:28, Esteban Maringolo <emaring...@gmail.com> wrote: > > Hi Davide, > > Thanks for the thorough response, but I think you're over > dimensioning, and to some extent missing, my initial purpose and > intention. > > I don't want to protect from somebody attempting to reverse engineer > my application, that's impossible (more so given your references). > I simply want to disable the option to open the IDE, even with all > tool menus disabled. > > In Java if I deliver a .jar or .war anybody could reverse engineer it, > but launching it won't open the development environment. > > For comparison with other Smalltalks I've used: > * VisualWorks enables the distribution of a "headless" IMAGE (and > parcels) without sources, if you revert that image to be headful all > source code will be decompiled using meaningless variables. > * Dolphin has the concept of SessionManager that is the entry point to > the image startup, if you save your image with a Headless Session > manager, then no GUI loop will start, same thing if you deploy as a > COM component. > * VAST produces its own ICX file where you can choose what to include > in it, it's not simply saving the image but building a new one from > within the development image, it's one step further. > * VSE had the SLL (similar to DLLs), if you don't bind the IDE's SLLs > then there is no way to start the IDE (I never built a headless VSE > app though). > > So what I'd like is an always Pharo headless image or Pharo headless > vm, instead of being controlled by a parameter in the VM. > > Regards, > > Esteban A. Maringolo > > On Mon, Sep 7, 2020 at 12:04 PM Davide Grandi <davide.gra...@email.it> wrote: >> >> Ok, I'll give you a result, meanwhile fixing some imprecisions. >> >> The "class" is CogVmSimulator but it's use is very far from my knowlegde, >> I recalled having seen a picture of Pharo-in-Pharo (or Squeak-in-Squeak) >> running under this simulator. >> It lives near the Cog side (or the OpenVM side) of Squeak/Pharo >> (If I'm not wrong Squeak ran into an emulator, before walking on his >> legs-his VM). >> >> There are many of these simulator, for other Smalltalk : >> - Hobbes and others for Xerox (thanks to files of Mario Molczko and/or >> Bitsavers >> - Dan Ingalls Apda Smalltalk + old Smalltalk -72 /-76 >> and maybe others I don't yet know about >> >> The reason is quite simple : the object memory is written to disk >> and the spec of executing Smalltalk are known either from the books >> or by the source. >> >> The root is Xerox's SystemTracer, a class that wrote a running image >> to disk, optionally changing object format (see the Green Book). >> >> So : >> - if you can read the image >> - you can run into a simulator >> - or decode it without to much effort (5 emulators for Xerox V2 image, >> so far). >> (try to open an image with a text editor : intriguing !) >> >> I don't know how Cincom or Instantiations protect the released st code, >> but for Pharo and Squeak this is not a point : they are all open. >> >> So, as if you wanna "protect" names and methods of a running image ... >> ... you have to (IMHO) : >> - encrypt executable and image (and modify the VM) >> - or obfuscate your classes and methods renaming it to >> C1, C2, ..., m1:p1:p2: and so on (keeping a map for debugging) >> >> Sorry to be imprecise about names and locations >> apart from suggest to see 4 emulators 4 running in a squeak image >> running ... in javascript in your browser (so total is 5) at : >> https://smalltalkzoo.thechm.org/HOPL-Squeak.html?earlyst80 >> (thanks to Vanessa Freudemberg & Dan Ingalls). >> >> Sorry again & best regards, >> >> Davide Grandi >> >> On 06/09/2020 23:51, Esteban Maringolo wrote: >>> If somebody gets to open the image and loads it with an Smalltalk >>> Emulator to execute it I'll ask him/her to start working together, and >>> even teach me how to do it. >>> >>> I don't want to shield the image from being accessed, just want to >>> make it harder than simply removing the '--headless' parameter to the >>> VM executable. >>> Of course removing sources is a plus (I do for a VW deployed image), >>> but even for this particular piece of software that I'm asking for, I >>> don't need it. >>> >>> If I wanted to make the source public, I'll publish it in >>> Github/Gitlab, otherwise I'd rather keep the code private. >>> >>> Regards, >>> >>> Esteban A. Maringolo >>> >>> On Sun, Sep 6, 2020 at 6:29 PM Davide Grandi <davide.gra...@email.it> wrote: >>>> I mean that with SmalltalkEmulator, the Smalltalk interpreter >>>> written in Smalltalk, one can execute an image looking at >>>> classes, methods and maybe executing code at will. >>>> >>>> And the only practical form of protection I see in Squeak/Pharo >>>> is to obfuscate code. >>>> >>>> Maybe I'm wrong. >>>> >>>> Davide Grandi >>>> >>>> On 06/09/2020 22:27, Esteban Maringolo wrote: >>>>> On Sun, Sep 6, 2020 at 12:52 PM Davide Grandi <davide.gra...@email.it> >>>>> wrote: >>>>>> Does "competition" has SmalltalkEmulator ? >>>>>> A Smalltalk-written VM will defeat any simple obfuscation scheme. >>>>> Sorry, but I don't understand what you mean. >>>>> >>>>> Best regards, >>>> -- >>>> Ing. Davide Grandi >>>> email : davide.gra...@email.it >>>> mobile : +39 339 7468 778 >>>> linkedin : http://linkedin.com/in/davidegrandi >> >> -- >> Ing. Davide Grandi >> email : davide.gra...@email.it >> mobile : +39 339 7468 778 >> linkedin : http://linkedin.com/in/davidegrandi >> >> > -------------------------------------------- Stéphane Ducasse http://stephane.ducasse.free.fr / http://www.pharo.org 03 59 35 87 52 Assistant: Aurore Dalle FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France