Frage

Ich habe ein Programm geschrieben, das eine Art inoffizieller, Standalone-Plugin für eine Anwendung ist. Es ermöglicht den Kunden einen Service zu erhalten, die eine preiswertere Alternative ist dann die herstellereigenen ein. Mein Programm ist nicht illegal, gegen jede Art von TOS, und ist sicherlich kein Virus, Adware oder so etwas. Davon abgesehen, ist der Verkäufer natürlich nicht glücklich über mich ist seine Konkurrenz nahm und versucht, meine Anwendung zu blockieren, ausgeführt wird.

Er hat bereits einige Taktiken versucht, die Menschen zusammen mit seinem vom Laufen meiner App zu stoppen. Er macht es so, wenn er erkannt wird, seine Anwendung, um einen gefälschten Fehler wirft.

Als erstes überprüft er, ob mein Programm durch die Suche nach einem offenen Fenster mit dem richtigen Titel lief. Ich konterte dies durch den Programmtitel beim Start Randomisierung.

Als nächstes sah er für den laufenden Prozess Namen. Ich konterte dies, indem sie die App selbst kopieren, wenn es als [zufällige Zeichenfolge] .exe gestartet wird und dann die ausgeführt wird.

Wie auch immer, meine Frage ist: was kann er tun, um zu erkennen, ob mein Programm läuft? Ich weiß, dass Sie Fenster Text lesen kann (dh Statusleiste, Etiketten). Ich bin bereit, um dem entgegenzuwirken, indem die Etiketten mit Bildern (igitt, andere Art und Weise?) Ersetzt wird.

Aber was gibt es sonst noch? Können Sie erkennen, was .dlls hat ein Programm geladen? Wenn ja, wird dies durch Randomisierung des DLL-Namen gelöst werden kann, bevor sie zu laden?

Ich weiß, dass es möglich ist, ein Programm Unterschrift im Speicher zu erhalten und es auf diese Weise (wie ein Virus-Scanner), aber die Chancen von ihm, dass wahrscheinlich nicht gut tun zu verfolgen, weil das ziemlich fortgeschritten klingt.

Auch wenn dies von ihm irgendwie beschissen ist, zu tun, seine Art von Spaß. Es ist wie ein nerdy Faustkampf.

EDIT: Als ich sagte, dass es ein Plugin ist, ist, dass nur der (falsche) Begriff ich. Es ist eine eigenständige EXE-Datei. Die „API“ zwischen meinem Programm und die anderen Mine einfach Daten in die Steuerung eingeben (wie Textfelder, etc).

War es hilfreich?

Lösung

Ich fühle mich ein wenig schmutzig zu beantworten diese aber es ist spät und ich bin für eine Fahrt Kopie warte so zu beenden ....

Er konnte eine Prüfsumme verwenden, um die ausführbare Datei / dll zu identifizieren. Dies wird rund um die Umbenennung Tricks.

Sie können dies umgehen, indem zufällig Bits in dem Programm beim Start zu modifizieren (beispielsweise eine Ressource ändern, mit der integrierten Version spielen, etc ...).

Wenn ich ihm bin ich auch für Muster im Netzwerk suchen beginnen würde; zum Beispiel, wenn Sie Kunden an die Wettbewerber sind zu leiten sind Sie, dass die Informationen auf der Suche irgendwo so töten den Prozess und / oder die Bibliothek entladen, wenn ein Plugin eine Website zugreift, die auf der schwarzen Liste ist.

Wenn Sie die Katze und Maus-Spiel nehmen weit genug (zum Beispiel Shell Haken ausführbare Datei / Bibliothek neu zu erstellen, wenn es gelöscht wird) Sie werden wahrscheinlich als Virus von Antiviren-Software markiert bekommen.

Andere Tipps

Nicht sehr sportlich Ihren Wettbewerber.

Stellen Sie Ihr Projekt als kompilierte verschlüsselten Quellcode. Schreiben Sie eine Entschlüsselung und Deployment-Programm, das Randomisierung kann, benennt Klassen, neu anordnet Code eine bestimmte Signaturerkennung zu vermeiden.

Dann den Code auf dem Client-Rechner kompiliert CSharpCodeProvider mit Ihrem Code zu kompilieren. Sie können zufällig Baugruppen erzeugen, mit völlig Zufallsfunktion Signaturen (Ich schlage vor, ein großes Wörterbuch von real, gemeinsamen, Worten statt völlig zufällig Nutzung. Sie sie für mehr Spaß zusammen verketten können, z. B. Live, virtuelles, Raum, Büro, Netzwerk, Utility. Space.Live.Network.dll, Utility.Virtual.Live.dll).

Jede Version des Programms auf jedem Client wird anders sein. Stellen Sie sicher, dass Ihr Bereitstellungsprogramm verhüllen. Vielleicht sollte es selbst zu löschen, nachdem es Ihre angepasste Version installiert hat.

  

Wie auch immer, meine Frage ist: was kann er tun, um zu erkennen, ob mein Programm läuft

  • Ist Ihr Programm eine EXE oder eine DLL?
  • Sie nennen es ein Plugin: was ist Anstecken
  • ?
  • Wie wird Ihr Programm gestartet / gestartet / laufen?
  • Wie sieht Ihr Programm tun, um "Plug in"?
  • Was ist die API zwischen Ihrem Programm und dem anderen Programm?

Das ist keine Antwort auf Ihre letzte Frage, sondern vielmehr auf das Problem beschrieben.

Wie wäre es die andere Anwendung zu fixieren. Suchen Sie die Zeichenfolge wird in den Titeln suchen und einige Buchstaben ändern in es.

Lassen Sie Ihre Kunden wissen, wo das Problem liegt, indem sie mit einem Update zu der anderen Anwendung, anstatt Ihre eigene Versorgung.

@ryeguy ... Die beste Verteidigung ist ein guter Angriff imho. Tun Sie, was Sie können, um seinen Prozess zu deaktivieren, bevor es bei Ihnen deaktiviert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top