Zeitabfrage über das Internet

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zeitabfrage über das Internet

    Moin moin

    Hat eigentlich schon einmal jemand eine Serverzeitabfrage für iPhone/iPad gemacht oder könnte mir jemand einen Hint geben, wie es geht, bzw. womit ich es versuchen kann ? Ich will eine App erstellen mit der es unter keinen Umständen möglich ist, etwas auszuführen bevor nicht sicher ein bestimmtes Datum erreicht oder eine bestimmte Anzahl an Stunden seit der letzten Aktivierung der Funktion vergangen ist. Da man ja in den Einstellungen der Geräte Datum und Uhrzeit verstellen kann, kam mir da die Abfrage einer Atomuhr in den Sinn.

    Wäre cool wenn das ginge, wenn nicht hat ja vielleicht jemand eine andere Idee.

    Gruß

    der Kalle
    "Die deutsche Rechtschreibung ist Freeware, sprich, man kann sie
    kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. man darf
    sie nicht verändern oder in veränderter Form veröffentlichen".
  • Hat das iPhone keinen Hardwaretimer den man auslesen kann ?

    Ansonsten warum unmöglich ? Wenn mein App nur funktioniert wenn ich INet habe, ist es doch kein Problem die letzte Nutzung auf meinem eigenen Server zu protokolieren und entsprechend im App zu reagieren.


    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • @Thallius

    Danke für die Idee. Ich werde einfach auf dem Server eine Datei mit entsprechenden Inhalten ablegen und diese dann abfragen. Das passt mir auf jeden Fall. 1000 Dank.
    "Die deutsche Rechtschreibung ist Freeware, sprich, man kann sie
    kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. man darf
    sie nicht verändern oder in veränderter Form veröffentlichen".
  • Zeitabfrage über das Internet per NTP (de.wikipedia.org/wiki/Network_Time_Protocol)
    Sollte sich genug Beispielcode finden, um das anzufragen. War glaube ich auch super einfach.

    Wenn ich das Gerät oder das Netzwerk unter meiner Kontrolle habe (bei mir zuhause übrigens der Fall) kann ich machen, was ich will. Ich glaube, darauf wollte gritsch hinaus. Also ich kann die App mir auf den Rechner kopieren, den Assembly-Code analysieren & modifizieren und wieder aufs Gerät laden. Klingt kompliziert? Machbar in 30m bei einfachen "Sperren".
    Ich kann aber auch mein Router/DNS anweisen, einfach zu einem anderem Server verbinden zu lassen, der andere Uhrzeiten liefert. Würde mich etwas mehr Zeit kosten, grob geschätzt.
    C++
  • zerm schrieb:

    Zeitabfrage über das Internet per NTP (de.wikipedia.org/wiki/Network_Time_Protocol)
    Sollte sich genug Beispielcode finden, um das anzufragen. War glaube ich auch super einfach.

    Wenn ich das Gerät oder das Netzwerk unter meiner Kontrolle habe (bei mir zuhause übrigens der Fall) kann ich machen, was ich will. Ich glaube, darauf wollte gritsch hinaus. Also ich kann die App mir auf den Rechner kopieren, den Assembly-Code analysieren & modifizieren und wieder aufs Gerät laden. Klingt kompliziert? Machbar in 30m bei einfachen "Sperren".
    Ich kann aber auch mein Router/DNS anweisen, einfach zu einem anderem Server verbinden zu lassen, der andere Uhrzeiten liefert. Würde mich etwas mehr Zeit kosten, grob geschätzt.


    zweiters geht doch in sekunden:

    1. /etc/hosts verändern dass DEINSERVER auf 127.0.0.1 zeigt
    2. internet-sharing über WLAN einschalten
    3. mit iPad/iPhone dieses WLAN verwenden ;)
  • gritsch schrieb:

    Tobse001 schrieb:

    Klar, aber du musst ja auch noch einen Server lokal aufsetzen der die Daten genau im erwarteten Format zurückgibt.
    Somit ist das schon ne Sache die etwas länger als ein paar Sekunden dauert. ;)


    apache mit php läuft - das sollte reichen ;)
    ansosnten läuft auch ein ntp-server ;)

    Auf dem iPhone?
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Das man alles hacken kann wenn man genug kriminelle Energie hat ist klar, aber wie willst du folgendes mal eben so einfach umstricken ?

    Wenn das App von meinem Server eine Datei mit einem bestimmten Inhalt verlangt und zum Server aber etwas ganz anderes zurückschickt, dann muss ich erstmal herausbekommen was denn das App von meinem Server bekommt, um dem App dann einen selbstgebauten Server vorzuspielen. Wenn ich jetzt noch eine einfach Verschlüsselung einbauen, die mit dem aktuellen Datum/Uhrzeit arbeitet, dann wird es noch komplizierter, da das verschickte immer anderen inhalt hat. Wie weit man das jetzt auf beiden Seiten treiben will, hängt dann sicher davon ab wie wichtig es dem Programmierer ist.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Amin Negm-Awad schrieb:

    gritsch schrieb:

    Tobse001 schrieb:

    Klar, aber du musst ja auch noch einen Server lokal aufsetzen der die Daten genau im erwarteten Format zurückgibt.
    Somit ist das schon ne Sache die etwas länger als ein paar Sekunden dauert. ;)


    apache mit php läuft - das sollte reichen ;)
    ansosnten läuft auch ein ntp-server ;)

    Auf dem iPhone?


    hast du nur mitten reingelesen?
    es ging doch drum dass ich meinen rechner zu seinem server mache (bei dem er die zeit abfrägt)
  • gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Tobse001 schrieb:

    Klar, aber du musst ja auch noch einen Server lokal aufsetzen der die Daten genau im erwarteten Format zurückgibt.
    Somit ist das schon ne Sache die etwas länger als ein paar Sekunden dauert. ;)


    apache mit php läuft - das sollte reichen ;)
    ansosnten läuft auch ein ntp-server ;)

    Auf dem iPhone?


    hast du nur mitten reingelesen?
    es ging doch drum dass ich meinen rechner zu seinem server mache (bei dem er die zeit abfrägt)

    Du schriebst doch:
    "1. /etc/hosts verändern dass DEINSERVER auf 127.0.0.1 zeigt"
    Das funktioniert nur, wenn der Apache pp. auf dem iPhone läuft. (Kommt man auf dem iPhone überhaupt an die /etc/host heran?)
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Du schriebst doch:
    "1. /etc/hosts verändern dass DEINSERVER auf 127.0.0.1 zeigt"
    Das funktioniert nur, wenn der Apache pp. auf dem iPhone läuft. (Kommt man auf dem iPhone überhaupt an die /etc/host heran?)

    Genau. Nicht ganz so einfach.
    - iPhone über WLAN vom Rechner.
    - Eigener DNS Server. Gerne dnsmasq weil der super zum lokalen fälschen ist
    - DNS des Zielservers auf Rechner damit umbiegen
    - NTP Server modifizieren bzw. Uhrzeit umstellen
    etwas aufwändiger.
    Wenn das genaue "Protokoll" nicht klar ist, auch noch ewig reverse engineering mit etwa Wireshark. Da kann ich mir auch gleich den Assembly-Code vom Binary anschauen...
    C++
  • Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Tobse001 schrieb:

    Klar, aber du musst ja auch noch einen Server lokal aufsetzen der die Daten genau im erwarteten Format zurückgibt.
    Somit ist das schon ne Sache die etwas länger als ein paar Sekunden dauert. ;)


    apache mit php läuft - das sollte reichen ;)
    ansosnten läuft auch ein ntp-server ;)

    Auf dem iPhone?


    hast du nur mitten reingelesen?
    es ging doch drum dass ich meinen rechner zu seinem server mache (bei dem er die zeit abfrägt)

    Du schriebst doch:
    "1. /etc/hosts verändern dass DEINSERVER auf 127.0.0.1 zeigt"
    Das funktioniert nur, wenn der Apache pp. auf dem iPhone läuft. (Kommt man auf dem iPhone überhaupt an die /etc/host heran?)


    nein warum?
    trag ich eben nicht 127.0.0.1 ein sondern 192.168.x.x oder was auch immer.
    mein rechner ist ja der dns-server den das iPad fragt (internet-sharing)
  • Thallius schrieb:

    Das man alles hacken kann wenn man genug kriminelle Energie hat ist klar, aber wie willst du folgendes mal eben so einfach umstricken ?

    Wenn das App von meinem Server eine Datei mit einem bestimmten Inhalt verlangt und zum Server aber etwas ganz anderes zurückschickt, dann muss ich erstmal herausbekommen was denn das App von meinem Server bekommt, um dem App dann einen selbstgebauten Server vorzuspielen. Wenn ich jetzt noch eine einfach Verschlüsselung einbauen, die mit dem aktuellen Datum/Uhrzeit arbeitet, dann wird es noch komplizierter, da das verschickte immer anderen inhalt hat. Wie weit man das jetzt auf beiden Seiten treiben will, hängt dann sicher davon ab wie wichtig es dem Programmierer ist.

    Gruß

    Claus


    Ich habe nirgednwo gesagt dass es einfach sein muss sondern dass das unmöglich ist: Ich will eine App erstellen mit der es unter keinen Umständen möglich ist...
  • gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Amin Negm-Awad schrieb:

    gritsch schrieb:

    Tobse001 schrieb:

    Klar, aber du musst ja auch noch einen Server lokal aufsetzen der die Daten genau im erwarteten Format zurückgibt.
    Somit ist das schon ne Sache die etwas länger als ein paar Sekunden dauert. ;)


    apache mit php läuft - das sollte reichen ;)
    ansosnten läuft auch ein ntp-server ;)

    Auf dem iPhone?


    hast du nur mitten reingelesen?
    es ging doch drum dass ich meinen rechner zu seinem server mache (bei dem er die zeit abfrägt)

    Du schriebst doch:
    "1. /etc/hosts verändern dass DEINSERVER auf 127.0.0.1 zeigt"
    Das funktioniert nur, wenn der Apache pp. auf dem iPhone läuft. (Kommt man auf dem iPhone überhaupt an die /etc/host heran?)


    nein warum?

    Weil 127.0.0.1 localhost ist.

    gritsch schrieb:

    trag ich eben nicht 127.0.0.1 ein sondern 192.168.x.x oder was auch immer.

    Das hattest du aber nicht. Deshalb fragte ich ja auch:
    "Auf dem iPhone?"

    gritsch schrieb:

    mein rechner ist ja der dns-server den das iPad fragt (internet-sharing)
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Ich glaube ich muss das hier mal ein wenig beruhigen :)
    Also es wird eine FunApp. Wer auch immer Bock (und vor allem Ahnung) hat das Ding zu hacken, wird das auch können. Sobald wir das Gerät verlassen müssen bestehen da etliche Möglichkeiten.
    "unter keinen Umständen" ist vielleicht einfach nur ein wenig zu drastisch ausgedrückt. Ich will einfach nur verhindern, dass der "Normalsterbliche" eine Funktion ausführen kann, bevor eine gewisse Zeit vergangen ist. Da man die Zeiteinstellungen aber ganz einfach über die Systemeinstellungen des Gerätes ändern kann, hatte ich mir gedacht, dass es da vielleicht etwas gibt, was nicht jedes Hinz und Kunz seine Kleine Schwester machen kann... :D

    Also ruhig Blut, das mit der Datei auf dem Server ist schon ok. Wer das gern hacken will umd die Funktion vorher auszuführen wirds ohnehin tun.

    Gruß

    der Kalle

    P.S.: Danke an alle mit diskutierer :)
    "Die deutsche Rechtschreibung ist Freeware, sprich, man kann sie
    kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. man darf
    sie nicht verändern oder in veränderter Form veröffentlichen".
  • Darf man auf dem iOS fstat(2) aufrufen auf Dateien in seinem App-Bundle?
    Dann kannst Du vielleicht einfach das Erstellungs- und Modifikationsdatum von Dateien abgleichen. Also wenn etwa Dein Programm angeblich in der Zukunft erstellt wurde, dann wurde an der Uhr gedreht.
    Du kannst auch eine Preference-Datei anlegen. Da schreibst Du immer die aktuelle Uhrzeit mit Datum rein, aber nur, wenn der Termin nicht in der Zukunft liegt. Mach das bei jedem Start, dann kannst Du ganz gut feststellen, ob jemand zu schummeln versucht. Diese Datei extern zu editieren sollte für die meissten Nutzer schon ein hinreichendes Hindernis darstellen (meinetwegen auch noch ganz einfach verschlüsseln. Bytewise XOR mit "ganzLangerSchluesselString")
    C++