SDX More...


/img/zipguy04.png

'


   More about SDX, what SDX actually can do!


<- Main page


 


  from chat 6/4/2014 20:37:03 AM


[20:37]    zipguy    I've got a question. Is there any way, in Tkchat to modify the 'Google selection' right-click option (on Windoze)?
[20:38]       * zipguy not to 'Bing'!
[20:42]    zipguy    Or is there anyway to change the menu that pops-up, and add command to it?
[20:42]    zipguy    er, commands

[21:13]    kbk    Of course there is. You have the source code..
[21:17]    zipguy    kbk All I have is tkchat.exe, not the source code, so I don't
[21:17]    kbk    It's a starpack. Unwrap it
[21:18]    zipguy    Ok I'll give it a try. Thanks kbk



 
  From the sdx page at http://wiki.tcl.tk/3411
"sdx unwrap yourstarkit
    Extract the contents of a starkit into a file system. Creates a directory with the name [file root starkit].vfs The directory must not already exist."
It does not make any mention of 'unwrap'ing a foobar.exe, of the type, starpack.




   So I did search http://wiki.tcl.tk, looking for 'unwrap' and did not find any mention, that you can unwrap a starpack! It did take me a while to do that. I did find out today, that there at least one that I missed namely sdx, in it's explanation of the mksplit command which says:
"sdx mksplit
Split starkits or starpacks into head and tail files"
I might have missed more. I'll look into that command.


   That got me into another couple of problems.
  
  • A few people may not aware of what SDX can do, unwrap a starpack.
  • Was it designed to do this? or was it unintentional?
  • Is it a secret that what SDX can do?
  • Would anyone get mad at me, if I bring this up, on wiki.tcl.tk, and let a few people know what SDX is capable of?
  • Should I add these features to EasySDX, and make it easy for everyone to use them?
Yes
Yes & No


Nope. Great for me!

Yes. Sound good to me!

  Some of them are unanswered... but most are solved!



   As far as 'unwrap'ing starpacks, would this be a problem for other foobar.exe's which are starpacks? In other words, what if the author did not want you to be able to 'unwrap' a .exe (starpack), and have a look at their code?

   Some author's don't want you having a look at their source code, which seems like a minority, except in commercial applications, which I do understand, is a majority.
I won't try to see the source code, if the author doesn't want me to see it.

   Most author's, of non-commercial applications, don't mind you having a look at their source code, some encourage that, like I do. :)

   I learn a lot from well written programs. They can teach you a whole bunch, how to do things better, by example.














../tcl/misc/EasySDX_unpack_on_itself_01_small.png

   To my surprise, I tried it (unpacking the ezsdx.exe), by using a modified version of EasySDX to unwrap itself (which would accept either .kit or .exe to unwrap) which it DID unwrap ezsdx.exe (which is a Windows starpack).

   When I tried unpacking the ezsdx.exe and it did work, but had a lot of 'extra' tcl folders in there.

   Hehe, the buttons on that looked awful, because the only button I had, in the modified version of EasySDX, was the 'Exit EasySDX' one (but that's my problem :)).

   Here's what it looks like when using the modified version of EasySDX to unpack itself (ezsdx.exe). Screenshot at http://www.geocities.ws/thezipguy//tcl/misc/EasySDX_unpack_on_itself_01.png, on Windows 7.

   Further, it may be extemely useful for .kit's that have been made into .exe's (as a starpack), if that's all you have, the .exe, which is old and useful, AND you do not have the source
code for it.

   You can get back the source code (with a lot of 'extra' tcl folders in there)!
Then you can delete the 'extra' folders, and with a little work, get it back to a .kit state.



   Then someone, whom I respect a lot in chat, mentioned about tkchat:
6/6/2014
14:24 am
 [14:24]               zipguy, you were looking at augmenting tkchat? You can put scripts in .tkchat_plugins and they will be sourced on startup.
 

  That remark got me thinking about lots if things....

   After reading that, I also thought more about SDX, and other SDX commands...

  Then, after thinking about my changes to EasySDX, I wondered what would happen if I tried the 'Lsk (List .kit Contents)' function which is in there? So it failed at first, until I changed the routine, just like I had to the unwrapit procedure.

  Then, Lo and Behold, it did work also!
  Have a look at it below.
 
   So I went back to the sdx page at http://wiki.tcl.tk/3411 and found, as expected,
"sdx lsk yourstarkit
    List the contents of a starkit"
Once again, it does not make any mention of 'List the contents' a foobar.exe, of the type, starpack.






After going back into chat to find what the chatters thought about this page..... 6/6/2014

[07:51]    kbk    zipguy - have you read http://equi4.com/papers/skpaper1.html ?
[07:52]    zipguy    nope, I'll have a look...
[07:56]    zipguy    kbk I like the questions/issues raised in http://equi4.com/papers/skpaper3.html... continuing reading
[08:04]    zipguy    From http://equi4.com/papers/skpaper4_6.html - "Note that the contents of Starpacks can be listed and extracted with the SDX utility, since they use the same packaging mechanism as Starkits. The main difference between a Starpack and a Starkit is that the "header" (i.e. the piece of code that is executed on start-up) is a large binary executable file (the Tcl/Tk interpreter) and the files stored inside its VFS include all the standard Tcl/Tk runtime support files."
[08:05]    zipguy    actually, it has a lot of extra tcl folders in there too!
[[08:05]    kbk    tkchat depends on a lot of libraries
[08:06]    zipguy    I haven't yet tried to SDX unwrap Tkchat.exe
[08:07]    zipguy    although it should work fine.
[08:07]    kbk    Oh, what were you unwrapping?
[08:08]    zipguy    If you look at the link I posted above, namely http://www.geocities.ws/thezipguy/freeware/SDX_more.html, you'll see what I did last night
[08:09]    zipguy    I ask questions in there too!
[08:10]    kbk    What do you think is 'extra' there?
[08:10]        <frerich> left
[08:10]    zipguy    from that page 'Screenshot at http://www.geocities.ws/thezipguy//tcl/misc/EasySDX_unpack_on_itself_01.png, on Windows 7.'
[08:11]    kbk    Anyway... it's common knowledge among Tclers that starpacks can be unwrapped. Starpacks are for convenience in deployment, not for code obfuscation.
[08:12]    zipguy    yuppers, I'd agree on the later point you just made.
[08:13]    kbk    Code obfuscation is more often done using the bytecode compiler in TDK, and the resulting .tbc files can also be wrapped.
[08:13]    zipguy    I was unaware of it. And I could not find it anywhere on wiki.tcl.tk
[08:17]    kbk    I guess it's kind of implied... Starkit and Starpack are really the same thing; it's just that one starts with a short Tcl script and needs a stand-alone Tcl interpreter to launch, while the other starts with a Tcl executable. The rest of the content is the same, and the tools deal equally with either.
[08:18]    kbk    (Plus a couple of 'gotcha's' like the fact that you can't write to a running executable on Windows, so Starkits can be self-updating, but Starpacks need to jump through hoops to change themselves.
[08:18]    kbk    But that's a platform issue, not fundamental to the format.)



   After reading that There does appear to be a very old paper in PDF, about Starkits called ''tclkit2.pdf', which was written in 2002,  by  Steve Landers, which does mention...

'Note that since Starpacks use the same packaging mechanism as Starkits, their content can be listed and extracted with the SDX utility. The main difference is that the "header" (i.e. the piece of code that is executed on startup) is a large binary executable file, and that the files stored inside include all the standard Tcl/Tk runtime support files.'

  That's the only reference I've found for 'unpack'ing a starpack.

  You can download it at http://www.digital-smarties.com/Tcl2002/tclkit.pdf
which is a great read, if you're going to try to make a starkit, all the way up to 'Advanced topics
'. I wish I had been aware of it earlier.  It is a well written paper, also available online, if you prefer that kind of site at http://equi4.com/papers/skpaper1.html.




06/06 03:20:26AM| --- List Contents ezsdx.exe
06/06 03:20:26AM| sdx::sdx lsk ezsdx.exe 

ezsdx.exe:
      5114  2010/07/16 08:44:15  boot.tcl
        37  2010/07/16 08:44:15  config.tcl
                            dir  lib/
        80  2012/02/24 16:37:17  main.tcl
     57022  20
06/06 03:20:26AM| --- List Contents ezsdx.exe
06/06 03:20:26AM| sdx::sdx lsk ezsdx.exe 

ezsdx.exe:
      5114  2010/07/16 08:44:15  boot.tcl
        37  2010/07/16 08:44:15  config.tcl
                            dir  lib/
        80  2012/02/24 16:37:17  main.tcl
     57022  2009/10/11 06:51:19  tclkit.ico

ezsdx.exe/lib:
                            dir  Itcl/
                            dir  Mk4tcl/
                            dir  app-ezsdx/
                            dir  dde/
                            dir  included/
                            dir  itcl3.4/
                            dir  poToolbar/
                            dir  progressbar/
                            dir  rechan/
                            dir  registry/
                            dir  reqfiles/
                            dir  tcl8/
                            dir  tcl8.6/
                            dir  thread2.6.5/
                            dir  tk8.6/
                            dir  vfs1.4/

ezsdx.exe/lib/Itcl:
        42  2012/12/20 19:37:58  pkgIndex.tcl

ezsdx.exe/lib/Mk4tcl:
        50  2012/12/20 19:37:58  pkgIndex.tcl

ezsdx.exe/lib/app-ezsdx:
      9630  2005/08/05 23:58:02  dlprogress.tcl
     57229  2014/05/22 23:41:45  ezsdx.tcl
     11590  2013/10/10 02:31:26  help.tcl
     33052  2014/05/17 15:08:01  icons.tcl
      5673  2014/01/28 15:26:37  makeToolbar.tcl
       250  2013/09/09 17:44:23  pkgIndex.tcl

ezsdx.exe/lib/dde:
        42  2012/12/20 19:37:58  pkgIndex.tcl

ezsdx.exe/lib/included:
      3403  2013/02/16 15:28:52  included.tcl
        75  2003/07/17 12:54:22  pkgIndex.tcl

ezsdx.exe/lib/itcl3.4:
      9130  2012/07/11 18:01:20  itcl.tcl

ezsdx.exe/lib/poToolbar:
       147  2012/03/13 21:04:50  pkgIndex.tcl
      2338  2012/03/21 02:34:27  poToolHelp.tcl
      3277  2013/03/05 13:32:08  poToolbar.tcl

ezsdx.exe/lib/progressbar:
        81  2003/07/13 15:56:30  pkgIndex.tcl
      1620  2003/07/13 15:57:26  progressbar.tcl

ezsdx.exe/lib/rechan:
        46  2012/12/20 19:37:58  pkgIndex.tcl

ezsdx.exe/lib/registry:
        52  2012/12/20 19:37:58  pkgIndex.tcl

ezsdx.exe/lib/reqfiles:
      1204  2013/09/07 12:52:31  ezsdx_license.txt
       200  2012/02/24 15:24:33  ezsdxc.dat
       539  2012/03/15 00:30:13  ezsdxh.dat
      3700  2013/03/04 13:59:32  get_from_console.tcl
    105528  2012/02/15 13:45:09  sdx.kit
   1451787  2013/07/08 16:30:56  tclkit-8.6.0-runwin32.upx.exe

ezsdx.exe/lib/tcl8:
                            dir  8.4/
                            dir  8.5/
                            dir  8.6/

ezsdx.exe/lib/tcl8.6:
     20488  2012/06/26 09:59:02  auto.tcl
    129704  2012/06/26 09:59:02  clock.tcl
                            dir  encoding/
      7328  2012/06/26 09:59:02  history.tcl
     25170  2012/11/13 16:30:38  init.tcl
                            dir  opt0.4/
     23141  2012/06/26 09:59:02  package.tcl
       803  2012/06/26 09:59:02  parray.tcl
     33447  2012/06/26 09:59:02  safe.tcl
      5415  2012/06/26 09:59:02  tclIndex
     11317  2012/06/26 09:59:02  tm.tcl
      4659  2012/06/26 09:59:02  word.tcl

ezsdx.exe/lib/thread2.6.5:
      1558  2012/12/20 19:24:44  pkgIndex.tcl
     30233  2010/07/16 08:44:13  thread.n
     75776  2012/12/20 19:24:45  thread26.dll
     15807  2010/07/16 08:44:13  tpool.n
     20380  2010/07/16 08:44:13  tsv.n
     14859  2010/07/16 08:44:13  ttrace.n
     29076  2010/07/16 08:44:14  ttrace.tcl

ezsdx.exe/lib/tk8.6:
      8259  2012/11/09 08:32:52  bgerror.tcl
     20029  2012/11/09 08:32:52  button.tcl
      9660  2012/11/09 08:32:52  choosedir.tcl
     21446  2012/11/09 08:32:52  clrpick.tcl
      8232  2012/11/09 08:32:52  comdlg.tcl
     32061  2012/11/09 08:32:52  console.tcl
      6050  2012/11/09 08:32:52  dialog.tcl
     16779  2012/11/09 08:32:52  entry.tcl
      4857  2012/11/09 08:32:52  focus.tcl
     15611  2012/11/09 08:32:52  fontchooser.tcl
     15978  2012/11/09 08:32:52  iconlist.tcl
     10883  2012/11/09 08:32:52  icons.tcl
                            dir  images/
     14301  2012/11/09 08:32:52  listbox.tcl
      3499  2012/11/09 08:32:52  megawidget.tcl
     37756  2012/11/09 08:32:52  menu.tcl
     29355  2012/11/09 08:32:52  mkpsenc.tcl
     16487  2012/11/09 08:32:52  msgbox.tcl
                            dir  msgs/
      5594  2012/11/09 08:32:52  obsolete.tcl
      1586  2012/11/09 08:32:52  optMenu.tcl
      7928  2012/11/09 08:32:52  palette.tcl
      5176  2012/11/09 08:32:52  panedwindow.tcl
        40  2012/12/20 19:37:59  pkgIndex.tcl
      7381  2012/11/09 08:32:52  safetk.tcl
      7639  2012/11/09 08:32:52  scale.tcl
     12434  2012/11/09 08:32:52  scrlbar.tcl
     14821  2012/11/09 08:32:52  spinbox.tcl
     20270  2012/11/09 08:32:52  tclIndex
      5143  2012/11/09 08:32:52  tearoff.tcl
     31573  2012/11/09 08:32:52  text.tcl
     22673  2012/11/09 08:32:52  tk.tcl
     38137  2012/11/09 08:32:52  tkfbox.tcl
                            dir  ttk/
     10253  2012/11/09 08:32:52  unsupported.tcl
     26045  2012/11/09 08:32:52  xmfbox.tcl

ezsdx.exe/lib/vfs1.4:
     16579  2011/06/14 19:25:50  mk4vfs.tcl
       457  2012/12/20 19:37:58  pkgIndex.tcl
      4809  2008/12/03 09:34:24  starkit.tcl
     12120  2008/11/04 06:49:59  tarvfs.tcl
     13154  2009/01/24 04:55:52  vfsUtils.tcl
      9263  2011/12/12 18:03:05  vfslib.tcl
     23473  2011/12/12 18:03:55  zipvfs.tcl

ezsdx.exe/lib/tcl8/8.4:
                            dir  platform/
      9855  2012/06/26 09:59:02  platform-1.0.10.tm

ezsdx.exe/lib/tcl8/8.5:
     16214  2012/10/03 11:30:43  msgcat-1.5.0.tm
    100762  2012/12/04 15:12:29  tcltest-2.3.5.tm

ezsdx.exe/lib/tcl8/8.6:
     41506  2012/11/06 08:48:48  http-2.8.5.tm

ezsdx.exe/lib/tcl8.6/encoding:
      1090  2011/04/26 11:14:03  ascii.enc
      1091  2011/04/26 11:14:03  cp1250.enc
      1091  2011/04/26 11:14:03  cp1251.enc
      1091  2011/04/26 11:14:03  cp1252.enc
      1091  2011/04/26 11:14:03  cp1253.enc
      1091  2011/04/26 11:14:03  cp1254.enc
      1091  2011/04/26 11:14:03  cp1255.enc
      1091  2011/04/26 11:14:03  cp1256.enc
      1091  2011/04/26 11:14:03  cp1257.enc
      1091  2011/04/26 11:14:03  cp1258.enc
      1090  2011/04/26 11:14:03  cp437.enc
      1090  2011/04/26 11:14:03  cp737.enc
      1090  2011/04/26 11:14:03  cp775.enc
      1090  2011/04/26 11:14:03  cp850.enc
      1090  2011/04/26 11:14:03  cp852.enc
      1090  2011/04/26 11:14:03  cp855.enc
      1090  2011/04/26 11:14:03  cp857.enc
      1090  2011/04/26 11:14:03  cp860.enc
      1090  2011/04/26 11:14:03  cp861.enc
      1090  2011/04/26 11:14:03  cp862.enc
      1090  2011/04/26 11:14:03  cp863.enc
      1090  2011/04/26 11:14:03  cp864.enc
      1090  2011/04/26 11:14:03  cp865.enc
      1090  2011/04/26 11:14:03  cp866.enc
      1090  2011/04/26 11:14:03  cp869.enc
      1090  2011/04/26 11:14:03  cp874.enc
     48207  2011/04/26 11:14:03  cp932.enc
      1093  2011/04/26 11:14:03  dingbats.enc
      1054  2011/04/26 11:14:03  ebcdic.enc
      1091  2011/04/26 11:14:03  gb1988.enc
       192  2011/04/26 11:14:03  iso2022-jp.enc
       115  2011/04/26 11:14:03  iso2022-kr.enc
       226  2011/04/26 11:14:03  iso2022.enc
      1094  2011/04/26 11:14:03  iso8859-1.enc
      1095  2011/04/26 11:14:03  iso8859-10.enc
      1095  2011/04/26 11:14:03  iso8859-13.enc
      1095  2011/04/26 11:14:03  iso8859-14.enc
      1095  2011/04/26 11:14:03  iso8859-15.enc
      1095  2011/04/26 11:14:03  iso8859-16.enc
      1094  2011/04/26 11:14:03  iso8859-2.enc
      1094  2011/04/26 11:14:03  iso8859-3.enc
      1094  2011/04/26 11:14:03  iso8859-4.enc
      1094  2011/04/26 11:14:03  iso8859-5.enc
      1094  2011/04/26 11:14:03  iso8859-6.enc
      1094  2011/04/26 11:14:03  iso8859-7.enc
      1094  2011/04/26 11:14:03  iso8859-8.enc
      1094  2011/04/26 11:14:03  iso8859-9.enc
      1092  2011/04/26 11:14:03  jis0201.enc
      1091  2011/04/26 11:14:03  koi8-r.enc
      1091  2011/04/26 11:14:03  koi8-u.enc
      1096  2011/04/26 11:14:03  macCentEuro.enc
      1096  2011/04/26 11:14:03  macCroatian.enc
      1096  2011/04/26 11:14:03  macCyrillic.enc
      1096  2011/04/26 11:14:03  macDingbats.enc
      1093  2011/04/26 11:14:03  macGreek.enc
      1095  2011/04/26 11:14:03  macIceland.enc
      1093  2011/04/26 11:14:03  macRoman.enc
      1095  2011/04/26 11:14:03  macRomania.enc
      1092  2011/04/26 11:14:03  macThai.enc
      1095  2011/04/26 11:14:03  macTurkish.enc
      1095  2011/04/26 11:14:03  macUkraine.enc
      1091  2011/04/26 11:14:03  symbol.enc
      1091  2011/04/26 11:14:03  tis-620.enc

ezsdx.exe/lib/tcl8.6/opt0.4:
     32720  2012/06/26 09:59:02  optparse.tcl
       607  2012/06/26 09:59:02  pkgIndex.tcl

ezsdx.exe/lib/tk8.6/images:
      8203  2012/12/19 10:39:13  lamp.png
      1670  2012/12/19 10:39:13  logo64.gif

ezsdx.exe/lib/tk8.6/msgs:
      4158  2012/12/19 10:39:13  cs.msg
      3909  2012/12/19 10:39:13  da.msg
      4823  2012/12/19 10:39:13  de.msg
      8698  2012/12/19 10:39:13  el.msg
      3286  2012/12/19 10:39:13  en.msg
        63  2012/12/19 10:39:13  en_gb.msg
      3916  2012/12/19 10:39:13  eo.msg
      3950  2012/12/19 10:39:13  es.msg
      3805  2012/12/19 10:39:14  fr.msg
      4600  2012/12/19 10:39:14  hu.msg
      3692  2012/12/19 10:39:14  it.msg
      4466  2012/12/19 10:39:14  nl.msg
      4841  2012/12/19 10:39:14  pl.msg
      3913  2012/12/19 10:39:14  pt.msg
      7216  2012/12/19 10:39:14  ru.msg
      3832  2012/12/19 10:39:14  sv.msg

ezsdx.exe/lib/tk8.6/ttk:
      3342  2012/11/09 08:32:52  altTheme.tcl
      2001  2012/11/09 08:32:52  aquaTheme.tcl
      2978  2012/11/09 08:32:52  button.tcl
      4261  2012/11/09 08:32:52  clamTheme.tcl
      3520  2012/11/09 08:32:52  classicTheme.tcl
     12394  2012/11/09 08:32:52  combobox.tcl
      4007  2012/11/09 08:32:52  cursors.tcl
      3684  2012/11/09 08:32:52  defaults.tcl
     16015  2012/11/09 08:32:52  entry.tcl
      5571  2012/11/09 08:32:52  fonts.tcl
      4886  2012/11/09 08:32:52  menubutton.tcl
      5619  2012/11/09 08:32:52  notebook.tcl
      1920  2012/11/09 08:32:52  panedwindow.tcl
      1089  2012/11/09 08:32:52  progress.tcl
      2583  2012/11/09 08:32:52  scale.tcl
      3097  2012/11/09 08:32:52  scrollbar.tcl
      2392  2012/11/09 08:32:52  sizegrip.tcl
      4255  2012/11/09 08:32:52  spinbox.tcl
      8859  2012/11/09 08:32:52  treeview.tcl
      4546  2012/11/09 08:32:52  ttk.tcl
      8562  2012/11/09 08:32:52  utils.tcl
      9349  2012/11/09 08:32:52  vistaTheme.tcl
      2643  2012/11/09 08:32:52  winTheme.tcl
      1920  2012/11/09 08:32:52  xpTheme.tcl

ezsdx.exe/lib/tcl8/8.4/platform:
      5977  2012/06/26 09:59:02  shell-1.1.4.tm











Enjoy!

Created with Seamonkey
../seamonkey.gif

 
You can try hitting the blue button on the line above (in the right item). It's harmless, and entertaining :)