Skip to content

Instantly share code, notes, and snippets.

@bdrewery
Created August 16, 2010 02:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bdrewery/526296 to your computer and use it in GitHub Desktop.
Save bdrewery/526296 to your computer and use it in GitHub Desktop.
Wraith TCL PoC
TCL is being loaded dynamically - so the binary size won't blow up due to this. Also planning on python, perl, php, ruby, javascript. Hopefully all of those will play along well.
> grep -n Tcl_Eval src/main.c
792: Tcl_Eval(interp, "puts \"[subst -nocommands {[info nameofexecutable] [info tclversion] [info library]}]:\"");
793: Tcl_Eval(interp, "puts \"[info nameofexecutable] [info tclversion] [info library]\"");
> make
...
> ldd wraith
not a dynamic executable
> ./wraith
[info nameofexecutable] [info tclversion] [info library]:
/home/bryan/git/wraith/wraith 8.5 /usr/lib64/tcl8.5
----
22:30:59 <@bryan> +test pwd
22:31:00 <@lull> /home/bryan/git/wraith
22:31:01 <@bryan> +test pid
22:31:02 <@lull> 20272
22:31:03 <@bryan> +test exec id
22:31:06 <@lull> uid=1000(bryan) gid=100(users) groups=100(users),7(lp),10(wheel),16(cron),18(audio),19(cdrom),250(portage)
22:31:17 <@bryan> +test exec ls
22:31:17 <@lull> 2
22:31:22 <@bryan> o ok
22:31:36 <@bryan> +test info globals
22:31:37 <@lull> tcl_version errorCode auto_path errorInfo test auto_index env tcl_pkgPath tcl_patchLevel tcl_platform tcl_library
22:31:52 <@bryan> +test puts "test"
22:31:59 <@bryan> +test "test"
22:31:58 <@lull> invalid command name "test"
22:32:07 <@bryan> +test $errorInfo
22:32:09 <@lull> invalid command name "invalid command name "test"
22:32:42 <@bryan> +test set errorInfo
22:32:43 <@lull> invalid command name "invalid command name "test"
22:32:53 <@bryan> +test return $errorInfo
22:32:53 <@lull> invalid command name "invalid command name "test"
22:33:04 <@bryan> +test [subst $errorInfo]
22:33:05 <@lull> invalid command name "invalid command name "invalid command name "test"
22:34:30 <@bryan> +test set test $tcl_version
22:34:30 <@lull> 8.5
22:34:55 <@bryan> +test set test $auto_path
22:34:55 <@lull> /usr/lib64/tcl8.5 /usr/lib64 /home/bryan/git/lib /usr/lib
22:35:05 <@bryan> +test set test $tcl_platform
22:35:08 <@lull> can't read "tcl_platform": variable is array
22:35:09 <@bryan> +test set test $tcl_library
22:35:10 <@lull> /usr/lib64/tcl8.5
22:35:33 <@bryan> +test set test [array get tcl_platform]
22:35:34 <@lull> osVersion 2.6.32-gentoo-r7 pointerSize 8 byteOrder littleEndian machine x86_64 platform unix os Linux user bryan wordSize 8
22:36:01 -!- mode/#wraith [-o bryan] by bryan
22:36:02 <+bryan> +op
22:36:02 -lull(~wtest1@2001:470:1f11:262:a00:27ff:fea2:1a0a)- Gave op to bryan on #wraith.
22:36:03 -!- mode/#wraith [+o-b bryan 827!<Dkt@Ze2V76pZPXuXkRenpCVPWQ==] by lull
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment