F-Script Anywhere 1.3

Hot on the heels of F-Script Anywhere Universal comes F-Script Anywhere 1.3. Apart from being a universal binary, this release adds several new features:

  • Auto-injection: For those used to the SIMBL version of F-Script Anywhere, FSA will now let you auto-inject applications. If for some reason auto-injection is causing your app to crash on launch, apps in the auto-inject list can be removed via the FSA preferences.
  • Auto F-Script framework install: If you lack the F-Script framework, or your F-Script framework is out of date, FSA will prompt you and you will have the option to auto install or upgrade your framework.
  • Auto adding to procmod group: If necessary, you will be prompted to authenticate as an administrator to add your user to the procmod group. This is currently necessary on Intel-based macs.
  • Faster browser access: You now have the ability to open a browser for an object via a target directly from the FSA menu. This removes the need to go to the special capture window, or to create a new browser and then choosing “select view.” The FSA “browser for target…” option is also faster than the F-Script “select view” button since it allows direct selection of various classes in the object’s hierarchy (this functionality existed before but is now easier to access).
  • Deprecated dialogs now removed: The key-value window has been removed, as it is now a deprecated part of F-Script. Also the naming functionality in FSA has been removed in favor of the “name” button in F-Script browser windows.

F-Script Anywhere is now distributed along with the F-Script framework and application set, but if you don’t want the entire F-Script app set, you can get just the FSA binary (includes the latest framework bundled).

10 Responses to “F-Script Anywhere 1.3”

  1. Cédric Luthi says:

    Great to see a new version of F-Script Anywhere. Just a small issue with the Auto-injection feature. I suggest you to read “mach_inject, procmod group and security” (http://0xced.blogspot.com/2006/06/machinject-procmod-group-and-security.html)

  2. Robert Mandell says:

    Extremely useful! Is the source code available?

  3. Robert Chin says:

    Yes, all of the source code is available in the subversion repository at http://dev.sabi.net/svn/dev/trunk/Cocoa/F-Script%20Anywhere/

  4. […] Since version 1.3.3, the distribution also includes the excellent F-Script Anywhere application. […]

  5. Leland Scott says:

    Although F-Script itself works fine, FSA 1.3 fails on an intel build of Mac OS X 10.5 (Leopard). I’m running the latest build. FSA works fine on the PPC build of Leopard, but on the Intel version I get a complaint about permissions. I’ll try to paste the error message below. It pops up on any app that’s selected as a target for FSA:

    F-Script Anywhere was unable to install itself in the selected application (process ID 23415), because F-Script Anywhere must be installed in a Cocoa application running as the current user.

    You may be attempting to install in a setuid application, which is not supported.

    The application may have crashed; restart it if needed.

  6. I belive the problems with Leopard is related to a new security feature. Leopard does not longer allow injection by default, you or the application need to be a member of the ‘procmod’ group, or you have to be running as root.

    I have just begun experimenting with this, but so far there seams to be two-three solutions:

    * Run the application as root. Generaly a bad idea, opening up a lot of security issues. Still, if you want to try it, there is an instruction here that should be fairly easy to adapt to your needs: http://www.shiftordie.de/articles/VirtueDesktops%20and%20Leopard

    * Add yourself to the procmod group. Easiest done by starting F-script Anywhere in the folder ‘forMacOS10.4’ (yup, thats the wrong version for Leopard, but it seams to have the code for adding you to the group right).

    This also has security issues (but, I belive, far less severe than running as root). See http://0xced.blogspot.com/2006/06/machinject-procmod-group-and-security.html

    * Set the permission on a per application basis. How to is described here: http://smallcultfollowing.com/nikolog/2006/06/04/virtualdesktops-and-procmod-groups/

    But, do make a backup of the application before trying this! I tried it on MindManager, and the application refused to start after the modification.

    After looking at the crasch report in Console, and some research i belive the reason is that MindManager uses ‘@executable’, and that does not play well with the tighter security in Leopard. See http://lists.apple.com/archives/Apple-cdsa/2007/Nov/msg00026.html

    For a more permanent solution to this problem, this may be a good recomendation: “The best solution is that developers who legitimately require mach_inject functionality make use of the Security/Authorization API for asking users their administrator password in order to be able to change their application’s executable group to procmod and set it’s set-group-ID-on-execution bit.” — http://0xced.blogspot.com/2006/06/machinject-procmod-group-and-security.html

  7. Correction: Should be ‘@executable_path’ (not ‘@executable’).

    And if using the method in http://www.shiftordie.de/articles/VirtueDesktops%20and%20Leopard, be sure to read the comments first.

  8. Seams like this issue is already handled in version 1.3.1. (It does not work for me however.) See http://osiris.laya.com/blog/?p=24

  9. FSA Q says:

    Ever since I installed Security Update 2008-005 for Leopard (PowerPC), FSA has been causing apps to crash when I try to inject F-Script.

    As soon as I try to switch to the injected app, it crashes in CFRunLoopRunSpecific.

    It worked before the Security Update, it now crashes every target app I’ve tried, and I can’t think of anything else that’s changed between then and now.

  10. Ted says:


    I’ve created a simple step-by-step guide for getting F-Script anywhere to work. If you’re interested please see http://blog.oncocoa.com/2009/06/f-script-anywhere-step-by-step-guide.html . Hope you find it useful.

Leave a Reply