F-Script Anywhere, Leopard Edition

For all of you developers using Leopard out there, I bring you an updated version of F-Script Anywhere, designed specifically to work with new features in Leopard. Since the old (and not so secure) way of adding yourself to the procmod group no longer works in Leopard, F-Script Anywhere has adopted the new method of using code signing authentication. Code signing allows you to trust specific developers and applications so that only those apps can use task_for_pid(), the call critical to F-Script Anywhere and similar apps. This provides enhanced security. All of the certificate copying is built into F-Script Anywhere, you just need to trust the included public certificate (F-Script Anywhere will try to add it to your keychain, you just need to accept the certificate). You may also need to restart your computer (there appears to be a certificate cache on Leopard that doesn’t always update properly).

Without further ado, F-Script Anywhere 1.3.1, Leopard Edition. F-Script Anywhere is now distributed as part of F-Script, at http://www.fscript.org/download/download.htm. Note that source is available through Nicholas Riley’s trac/subversion server. If you wish to compile your own source, you will have to copy your public certificate into the appropriate place in the source tree. This needs to be a code signing certificate, either generated by a certificate authority or self created.

12 Responses to “F-Script Anywhere, Leopard Edition”

  1. F-Script Anywhere for Leopard Says:

    [...] I’d like to draw your attention to F-Script Anywhere, now available for Leopard. Excellent for those of us who frequently find ourselves wondering: “how exactly did they do that?” [...]

  2. millenomi Says:

    Note that adding the certificate to the keychain doesn’t work for me; I still have to give my administrator’s password when I start up FSA regardless of how much the system trusts the certificate.

  3. Leland Scott Says:

    This is great! Thanks so much for updating FSA for Leopard… with it, I could finally start doing Leopard development in earnest. I hate to ask for anything more, but of course I must: I used to use Pyinjector to run F-Script inside Cocoa apps that aren’t “launched” in the AppKit sense of the term. Mostly, these are apps with the LSUIElement turned on and don’t have a “main menu.” Often, they’re in the status bar… For me, they include Quicksilver, iKey, MenuMeters, DropCopy, ClawMenu, Edgies, and so on. Pyinjector was able to scour the system for such apps and let you browse their innards w/F-Script.

    Can F-Script Anywhere do the same, or could it be made to? I’ve thought about starting to hack at it myself, but then I figured I’d ask the creator first. I’ve got a small LSUIElement app that I’m trying to debug, and it’s really hard without FSA or Pyinjector. (Pyinjector shows no signs of being updated to Leopard… in fact, I wrote the author a couple of months back about a broken image link on his home page, but saw today that it’s still broken…)

    Thanks!

  4. Robert Chin Says:

    Leland Scott — I don’t think this should be all that difficult to do, however as a temporary workaround can you just change the apps to not have LSUIElement turned on? It’s just a flag in the Info.plist inside of the app bundle.

  5. Robert Chin Says:

    millenomi: Does this still happen for you? Did restarting the computer not change anything (there are some caches that sometimes need to be refreshed)?

  6. Adam Strzelecki Says:

    Hi,

    I’m trying to use FSA on my Leopard 10.5.1, I’ve added the Certificate, and application seems to start fine. However anytime I attach to any application (regardless what is it) I got a crash of the application I attached to.

    0 com.apple.AE 0x92d29384 parseObj(OpaqueAEStreamRef*, AEBuildError*, char const**, va_list_holder*) + 1780
    1 com.apple.AE 0x92d1edad vAEBuildParameters + 321
    2 com.apple.AE 0x92d1ec47 vAEBuildAppleEvent + 211
    3 net.sabi.FScriptAnywhere 0x0d984109 SCPatchMessenger::SendMessage(__CFString const*, ProcessSerialNumber*, unsigned long, unsigned long, char const*, …) + 103
    4 net.sabi.FScriptAnywhere 0x0d984682 SCPatchInit(SCPatchParams*) + 398
    5 ??? 0x0d97bdd6 0 + 228048342

    I’d appreciate any help getting over this problem.

  7. Jeff Says:

    Is there any way to attach FSA to the Dock? (Or any other process not listed?)

  8. foobar Says:

    I had to install the certificate manually from the app bundle, FSA didn’t manage to do it for me. After that, FSA worked just fine.

  9. David Fuller Says:

    F-Script Anywhere doesn’t seem to be able to add the FSA menu item to XCode 3.1 on Mac OSX 10.5 . Is this to be expected? Perhaps Apple intentionally added a barrier?

    My reasoning for this is that I would like to be able to add some enhancements to XCode yet there isn’t enough information published about its extension points to allow one to accomplish this goal with any reasonable efficiency.

  10. Robert Chin Says:

    Jeff: I believe the Dock is written using Carbon, so no.
    David Fuller: Currently FSA does not work with garbage collected binaries. You may want to contact Nicholas Riley, as he has is now back in charge of the F-Script Anywhere project.

  11. Tommy Sundström Says:

    The certificate expired 9 Oct 2008.

  12. Robert Chin Says:

    For those of you trying to download F-Script Anywhere from here, please just download F-Script from the main F-Script page. F-Script Anywhere is now included with the main F-Script distribution.

Leave a Reply