DTrace curpsinfo->pr_psargs unter Mac OS X

Unter Solaris kann man sich mit der DTrace Anweisung

dtrace -n ‘syscall::exec*: {printf(“%s”,curpsinfo->pr_psargs)}’

alle Prozesse welche nach diesem Aufruf gestartet werden anzeigen lassen (inklusive Befehlszeilenparametern).

Die Mac OS Version von DTrace zeigt bei diesem Aufruf die Parameter allerdings nicht an. Gerade diese Parameter sind aber beim Reverse Engineering interessant.

Um diese Limitation zu umgehen gibt es folgendes DTrace Script (funktioniert nicht in allen Fällen), welches ich um die Zeitausgabe erweitert habe :

#!/usr/sbin/dtrace -C -s
#pragma D option quiet

proc::posix_spawn:exec-success,proc::__mac_execve:exec-success
{
this->isx64=(curproc->p_flag & P_LP64)!=0;
#define SELECT_64_86(x64, x86) (this->isx64 ? (x64) : (x86))
#define GET_POINTER(base, offset) (user_addr_t)SELECT_64_86(*(uint64_t *)((base)+sizeof(uint64_t)*(offset)), *(uint32_t *)((base)+sizeof(uint32_t)*(offset)))
this->ptrsize=SELECT_64_86(sizeof(uint64_t),sizeof(uint32_t));
this->argc=curproc->p_argc;
// I havn’t recognized whether the x64 occurs the same problem (argv[0] points invalid area)
this->isClean=SELECT_64_86(1, (curproc->p_dtrace_argv==(uregs[R_SP]+sizeof(uint32_t)+sizeof(uint32_t))));
this->argv=(uint64_t)copyin(curproc->p_dtrace_argv,this->ptrsize*this->argc);
// added timestamp
printf(“%Y “, (0 < this->argc && this->isClean) ? walltimestamp : 0);
printf(“%s “, (0 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,0)) : “”);
printf(“%s “, (1 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,1)) : “”);
printf(“%s “, (2 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,2)) : “”);
printf(“%s “, (3 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,3)) : “”);
printf(“%s “, (4 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,4)) : “”);
printf(“%s “, (5 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,5)) : “”);
printf(“%s “, (6 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,6)) : “”);
printf(“%s “, (7 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,7)) : “”);
printf(“%s “, (8 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,8)) : “”);
printf(“%s “, (9 < this->argc && this->isClean) ? copyinstr(GET_POINTER(this->argv,9)) : “”);
printf(“n”);


#undef GET_POINTER
#undef SELECT_64_86
}

Abspeichern als args.d

Aufruf mit:

sudo dtrace -C -s args.d

DTrace Terminalausgabe

DTrace Terminalausgabe

Update: Ich habe das Script hier hochgeladen: args.d

“! Neu” Tag im SharePoint

Das “! Neu” Tag im SharePoint wird in der Regel für einen ganzen Tag angezeigt. Die Anzeigedauer kann jedoch mittels dem STSADM abgeändert werden.

Ändern der Anzeigedauer:

stsadm.exe -o setproperty -pn days-to-show-new-icon -pv (anzahl Tage) -url http://(Servername)

Vollständiges deaktivieren:

stsadm.exe -o setproperty -pn days-to-show-new-icon -pv 0 -url http://(Servername)

SharePoint 2010 Upgrade

Da wir bereits von Kunden Anfragen zum Upgrade von SharePoint 2007 auf SharePoint 2010 erhalten haben, habe ich diese Woche einen ersten Test gestartet. Das Upgrade lief nicht ganz einwandfrei aber konnte innerhalb eines Nachmittags durchgeführt werden. Folgende Stolpersteine liefen mir über den Weg.

  1. SharePoint 2010 läuft nur auf 64-Bit Systemen (Windows Server 2008 64 Bit und SQL Server 2008 64 Bit). Da viele SharePoit 2007 Server noch auf 32 Bit aufgesetzt wurden, ist es notwendig die Farm auf 64-Bit zu migrieren bevor das Upgrad gestartet werden kann.
  2. SharePoint 2010 benötigt mindestens 4 GB RAM, 2 Prozessoren mit min 3 GHz. Ich Empfehle 8 GB RAM, 2 Prozessoren mit min 3 GHz.
  3. Zu beachten ist folgendes vorinstalliert sein muss:
    1. Windows Server 2008  with SP2 (oder RC2)
    2. SQL Server 2008 with SP1 (und zusätlich den Hotfixes)

 

So, wünsch Euch viel Spass!

Quellenverweis:

  1. Detailierte System-Voraussetzungen
  2. Upgrade-Check

Zugelassen fürs Made for iPod/iPhone Programm!

Alan Kay (OOP- und GUI-Pionier) sagte einmal:

“People who are really serious about software should make their own hardware.”

Als Informatikstudent und iPhone Softwareentwickler mit Hintergrund in der Elektronikentwicklung schätze ich den Einsatz guter Hardware und manchmal möchte man mit seinem Telefon mehr machen als die Standardhardware erlaubt. Dies ist der Grund warum ich mich unlängst für das Made for iPod/Works with iPhone Programm angemeldet habe. Dies ist momentan der einzig legale Weg Hardware für das iPhone zu entwickeln und sogar zu verkaufen mit den offiziellen Logos von Apple.

iPhone Hardware der NASA

iPhone Hardware der NASA

Ich Freue mich deshalb, weil der administrative Aufwand für die Anmeldung an diesem Programm sehr gross ist, und es zu keiner Stufe sicher scheint ob man überhaupt zugelassen ist. Gerade für Privatpersonen wurden die Chance im Netz als klein beschrieben. Neben dem Ausfüllen von mehreren Formularen (NDAs, Lizenzen, Legal Counsel, etc) gehört die Angabe eines konkreten Produktes dazu mit Angaben zum Stromverbrauch, genaue Auflistung der Funktionen, usw.

Works With iPhone Logo

Works With iPhone Logo

Durch das Programm erhält man unter anderem einen Spezialzugang zum einzigen von Apple akkreditierten Distributor für die 30-Pin Spezialstecker und Koprozessoren zur Authentifizierung. Alle anderen Informationen sind leider Confidential.

Fehler bei der SharePoint Konfiguration

Problem
Beim Ausführen des Konfigurationsassistenten tritt der folgender Fehler auf: System.Security.Principal.IdentityNotMappedException exception

Lösung

  1. Entfernen Sie alle Datenbanken
  2. Entfernen Sie im IIS die” SharePoint Central Administration V3 webseite”
  3. Wichtig: Entfernen Sie im IIS auch den ApplicationPool der website “SharePoint Central Administration V3″