Impossible de trouver les appels de type Envoi/Recv dans l'application réseau


1

La cible est protégée par nProtect Gameguard. Les paquets sont cryptés. L'objectif est d'obtenir des informations de paquets non cryptées via le client.

J'ai obtenu la version 5.0 gratuite d'IDA et j'ai désassemblé GVOnline.exe (l'exe Uncharted Waters Launch). Il est intéressant de noter que ce qui est en fait listé dans le gestionnaire des tâches n'est pas l'exe, c'est GVOnline.bin (un autre fichier beaucoup plus volumineux dans le même répertoire.) Quoi qu'il en soit, dans GVOnline.exe désassemblé, je ne trouve rien qui ressemble à socket appels à la table importations Pas d'envoi, Recv, ou l'un des autres analogues

J'ai créé un Pastebin des importations:.. https://pastebin.com/UEtKSwSk

et voici une Pastebin des noms: https://pastebin.com/GwMaCfVs

Comment l'application peut-elle envoyer et recevoir des paquets, si ce n'est via ces appels?

Dois-je démonter GVOnline.bin au lieu de l'exe?

Se pourrait-il que Gameguard lui-même soit responsable de la communication avec le Socket? Si c'est le cas, je soupçonnerais que Gameguard serait également responsable du cryptage de la charge utile du paquet, mais je devrais être capable d'obtenir les informations brutes du logiciel lui-même, car il doit le construire avant de le transmettre à tout ce qui envoie ou crypte il.

Merci

Mise à jour:

Il se trouve que je DEMONTAGE le mauvais binaire. A partir d'une décision prise dans l'exécutable initial, un deuxième binaire est ouvert et c'est là que les appels réseau sont faits. Le désassemblage a révélé les appels réseau et les routines de chiffrement.

+2

Les fonctions de bibliothèque peuvent également être importées en fonction de [ordinals] (https://stackoverflow.com/questions/3598108/how-can-i-call-a-exported-function-using-ordinal-number). Essayez de vérifier les appels de fonction GetProcAddress. 13 nov.. 172017-11-13 06:26:36

+1

Étant donné que les importations EXE LoadLibraryA et LoadLibraryExA - qui sont toutes les deux responsables du chargement d'un module lors de l'exécution, il est probable que la bibliothèque WinSocket est chargée dynamiquement au moment de l'exécution. 13 nov.. 172017-11-13 18:08:53

  0

Pour cette question spécifique, j'ai trouvé la réponse. Je garde un fil sur elitepvpers.com intitulé "Emulation Project - Gameguard'd Client". La réponse à ce qui précède est qu'un deuxième processus est exécuté où les appels réseau (avec beaucoup d'autres fonctions) sont en cours d'exécution. Je démontais le mauvais binaire. J'apprécie les réponses, car j'ai appris quelque chose à propos de la protection des logiciels et des fonctions de bibliothèque ordinal. Je vous remercie! 14 nov.. 172017-11-14 22:34:40

1

Je ne suis pas familier avec GameGuard en particulier, mais il est assez courant que ces types de protections gardent une table d'importation cryptée, chargent les imports et construisent les IAT eux-mêmes pendant l'exécution.

Habituellement, vous pouvez détourner les fonctions en injectant et réécrivant après le chargement de l'application, mais en voyant que GameGuard est une boîte à outils faite précisément pour arrêter ce genre de choses, je suppose que vous devez être beaucoup plus compliqué. Editer: Vous pouvez rechercher les anciens didacticiels safedisc/cdilla et securom de déballage pour une intro sur ces types de wrappers.

+1

Alors que la bonne réponse est: «Vous ne désassemblez probablement pas le binaire correct», je vous remercie de fournir plus d'informations sur ce qui est possible dans le monde de la protection logicielle. 14 nov.. 172017-11-14 22:36:09

  0

Oh désolé, je pensais que vous auriez compris cette partie depuis que vous avez mentionné le.Le fichier bin était affiché dans la liste des tâches :) 17 nov.. 172017-11-17 12:20:47