FR2931567A1 - Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante. - Google Patents

Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante. Download PDF

Info

Publication number
FR2931567A1
FR2931567A1 FR0952733A FR0952733A FR2931567A1 FR 2931567 A1 FR2931567 A1 FR 2931567A1 FR 0952733 A FR0952733 A FR 0952733A FR 0952733 A FR0952733 A FR 0952733A FR 2931567 A1 FR2931567 A1 FR 2931567A1
Authority
FR
France
Prior art keywords
class
net
index
function
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0952733A
Other languages
English (en)
Other versions
FR2931567B1 (fr
Inventor
Zhou Lu
Huazhang Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Publication of FR2931567A1 publication Critical patent/FR2931567A1/fr
Application granted granted Critical
Publication of FR2931567B1 publication Critical patent/FR2931567B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention se rattache au domaine de la sécurité des informations et présente une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET ainsi qu'une carte .NET correspondante. Cette méthode comprend les étapes consistant à : construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution par la carte .NET, ou d'après les informations d'une fonction en cours d'exécution par la carte .NET et d'une classe à laquelle cette fonction appartient ; calculer une première valeur d'index à partir de la première chaîne de caractères ; rechercher une première valeur de localisateur correspondant à la première valeur d'index dans une table d'index prémémorisée dans la carte .NET, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; trouver, dans une bibliothèque d'exécution de la carte .NET, la classe ou la fonction en cours d'exécution suivant la première valeur de localisateur. La carte .NET comprend un module de stockage, un module de construction, un module de calcul et un module de recherche. L'invention augmente la vitesse de recherche d'une classe ou d'une fonction lorsqu'un programme est exécuté dans la carte .NET. De plus, la table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre.

Description

MÉTHODE DE RECHERCHE DE CLASSE ET DE FONCTION BASÉE SUR UNE CARTE .NET ET CARTE .NET CORRESPONDANTE Domaine de l'invention [0001] La présente invention se rattache au domaine de la sécurité des informations et concerne plus particulièrement une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET ainsi qu'une carte .NET correspondante. 10 Art antérieur [0002] Nouvelle génération de plate-forme technique de Microsoft, .NET est une nouvelle plate-forme de développement en langage croisé basée sur l'Internet, qui épouse la tendance de l'industrie logicielle en termes d'informatique distribuée, de développement orienté composant ou d'application orientée entreprise, de logiciel service et de 15 développement axé sur le web. Bien que .NET ne soit pas un langage de développement, la plate-forme de développement .NET supporte de multiples langages de développement tels que C#, C++, Visual Basic et Jscript. [0003] De mêmes dimensions qu'une carte de visite classique, une carte à puce est une carte en plastique contenant une puce en silicium d'un diamètre d'environ 1 cm et assurant 20 des fonctions telles que le stockage d'informations ou des calculs complexes. Les cartes à puces sont largement utilisées comme cartes téléphoniques, cartes bancaires, cartes d'identité/identification et dans de nombreuses applications telles que les téléphones portables et la télévision prépayée. La carte à puce est considérée comme étant le plus petit ordinateur au monde du fait qu'elle intègre, sur sa puce, un microprocesseur, une unité de 25 stockage et une unité d'entrée/sortie. De plus, avec un mécanisme de contrôle de sécurité très puissant, le programme de contrôle de sécurité est stocké dans la mémoire morte (ROM), qui offre une grande garantie de limitation des copies et une protection par mot de passe en écriture et en lecture. Comparée aux cartes magnétiques générales, la carte à puce présente de nombreux avantages tels qu'une capacité de stockage importante et des 30 fonctions améliorées grâce à l'utilisation de micro-processus. [0004] La carte .NET est une carte à microprocesseur qui inclut une machine virtuelle .NET où les programmes .NET peuvent être exécutés. Une machine virtuelle peut être considérée comme une émulation logicielle d'une machine avec des composants matériels tels qu'un processeur, une mémoire, un registre, permettant d'émuler diverses5 instructions. Le logiciel fonctionnant sur la machine n'impose aucune condition spécifique relativement à l'environnement d'exécution ; la machine virtuelle est par conséquent transparente pour les programmes qui y sont exécutés. Par exemple, une machine virtuelle x86 émule un environnement d'exécution d'instructions et programmes x86 et une machine virtuelle c5l émule un environnement d'exécution d'instructions et programmes c51. La carte .NET appelle les classes et fonctions dans une bibliothèque de classes standard au moment de l'exécution des programmes d'application. [0005] Une méthode classique de recherche de classe consiste tout d'abord à obtenir le nom de classe et l'espace de nommage d'une classe à chercher, puis à rechercher la classe dans une bibliothèque de classes standard, une par une, jusqu'à trouver la classe correspondant au nom de classe et à l'espace de nommage. Une méthode classique de recherche de fonction consiste tout d'abord à trouver une classe à laquelle appartient la fonction, puis à obtenir le nom, le résultat fourni et le type de paramètre de la fonction ; puis à rechercher, une par une, la fonction correspondant au nom, au nombre de paramètres et au type de paramètre dans la bibliothèque de classes standard. [0006] La méthode classique pour trouver une fonction ne satisfait pas aux exigences des cartes .NET du fait de la mémoire limitée et de la faible vitesse de fonctionnement des cartes .NET.
Résumé de l'invention [0007] Afin d'augmenter la vitesse de recherche de classe ou de fonction lors de l'exécution d'un programme sur une carte .NET, la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET ainsi qu'une carte .NET correspondante. La solution comprend : [0008] Une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET, comprenant les étapes consistant à : [0009] construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution par la carte .NET, ou d'après les informations d'une fonction en cours d'exécution par la carte .NET et d'une classe à laquelle cette fonction appartient ; [0010] calculer une première valeur d'index à partir de la première chaîne de caractères ; [0011] rechercher une première valeur de localisateur correspondant à la première valeur d'index dans une table d'index prémémorisée dans la carte .NET, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; [0012] trouver la classe ou la fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. [0013] L'étape de construction de la première chaîne de caractères d'après les informations de la classe en cours d'exécution par la carte .NET comprend l'étape consistant à : [0014] former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET. [0015] L'étape de construction de la première chaîne de caractères d'après les informations de la fonction en cours d'exécution par la carte .NET et de la classe à laquelle appartient cette fonction comprend l'étape consistant à : [0016] former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction et un nom de classe et un espace de nommage de chaque paramètre de la fonction. [0017] La méthode comprend également les étapes consistant à : [0018] si la première valeur d'index n'est pas incluse dans la table d'index, construire une deuxième chaîne de caractères d'après les informations d'une superclasse d'une classe courante et les informations de la fonction, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, et à calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères ; [0019] déterminer si la deuxième valeur d'index est incluse dans la table d'index ; [0020] si c'est le cas, rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; [0021] dans le cas contraire, effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0022] La table d'index est stockée dans l'assemblage se trouvant dans la carte .NET. [0023] Il est fourni une carte .NET qui inclut : [0024] un module de stockage apte à stocker un assemblage et une table d'index ; [0025] un module de construction apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les informations d'une fonction en cours d'exécution et d'une classe à laquelle cette fonction appartient, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ; [0026] un module de calcul apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; [0027] un module de recherche apte à rechercher une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul dans la table d'index stockée dans le module de stockage, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; et apte à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. [0028] Le module de construction comprend plus spécifiquement : [0029] une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. [0030] Le module de construction comprend : [0031] une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, un nom de classe et un espace de nommage de chaque paramètre de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage. [0032] Le module de construction est en outre apte, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, en utilisant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations d'une superclasse de la classe courante et les informations de la fonction ; [0033] le module de calcul est en outre apte à calculer une deuxième valeur d'index à 30 partir de la deuxième chaîne de caractères générée par le module de construction ; [0034] en conséquence, la carte .NET comprend en plus : [0035] un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; et [0036] le module de recherche est en outre apte, si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index contenue dans la table d'index, trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; et [0037] si la deuxième valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0038] La carte .NET de la revendication 6, dans laquelle la table d'index est stockée dans l'assemblage se trouvant dans la carte .NET. [0039] Conformément à la présente invention, une classe ou une fonction à trouver est localisée en construisant une chaîne de caractères et à partir d'une table d'index prémémorisée, ce qui augmente la vitesse de recherche de la classe ou de la fonction à appeler lorsqu'un programme est exécuté dans une carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. En outre, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index d'après les informations d'une superclasse, ce qui permet de réussir la localisation. Brève description des dessins [0040] La figure 1 est un organigramme illustrant une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET selon un premier mode d'exécution de la présente invention ; [0041] La figure 2 est un organigramme illustrant une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET selon un deuxième mode d'exécution de l'invention ; [0042] La figure 3 est un schéma structurel illustrant une carte .NET selon un troisième mode d'exécution de l'invention.
Description détaillée de l'invention [0043] Les objets, solutions techniques et avantages de l'invention apparaîtront clairement à la lecture de la description ci-après de modes d'exécution, qui se réfère aux figures des dessins annexés. [0044] MODE D'EXÉCUTION 1 [0045] Si l'on se réfère à la figure 1, le mode d'exécution de la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est mise en oeuvre lors de l'exécution d'un assemblage dans la carte .NET. Selon le mode d'exécution illustré, la méthode de recherche d'une classe comprend les étapes suivantes : [0046] Étape 101: La carte .NET est raccordée à un ordinateur via un lecteur de carte ou par accès distant. La carte .NET exécute l'assemblage enregistré dans le module de stockage interne de la carte .NET. Une table d'index, qui est préenregistrée dans la carte .NET, inclut des valeurs d'index et des valeurs de localisateur correspondantes pour rechercher une classe ou une fonction dans une bibliothèque de classes. Par exemple, une valeur d'index d'une classe Classl dans la table d'index est 1, une valeur de localisateur correspondant à cette valeur d'index est Tokenl = Oxl 1. La valeur de localisateur Oxl 1 correspond au contenu d'une entité de la classe Classl dans la bibliothèque de classes de la carte .NET. [0047] Étape 102 : Une première chaîne de caractères est construite d'après les informations d'une classe en cours d'exécution par la carte .NET. [0048] Plus spécifiquement, la première chaîne de caractères peut être formée par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET. Par exemple, la classe en cours d'exécution est la Classl, dont l'espace de nommage est NameSpacel, alors la première chaîne de caractères construite peut être NameSpacel .Classl [0049] Étape 103 : Une première valeur d'index est calculée à partir de la première chaîne de caractères construite. [0050] Plus spécifiquement, la première chaîne de caractères ci-dessus est hachée à l'aide d'un algorithme de hachage pour obtenir une empreinte numérique de la classe en cours d'exécution. Avec l'empreinte numérique, on effectue une opération modulo sur le nombre total de classes et de fonctions correspondant aux valeurs d'index dans la table d'index, de manière à obtenir une première valeur d'index. 6 [0051] Étape 104 : Suivant la première valeur d'index obtenue, on recherche, dans la table d'index, une première valeur de localisateur correspondant à la première valeur d'index. [0052] Dans le présent mode d'exécution, les valeurs d'index dans la carte .NET sont générées de la même manière que la première valeur d'index. D'une manière générale, la table d'index inclut des valeurs d'index correspondant à toutes les classes et fonctions appelées par l'assemblage de la carte .NET. De plus, la table d'index peut être stockée dans l'assemblage dans la carte .NET. [0053] Étape 105 : La classe en cours d'exécution est trouvée dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur obtenue, et l'entité de la classe est appelée. [0054] La bibliothèque d'exécution de la carte .NET, qui peut inclure tout ou partie du contenu d'une bibliothèque de classes standard, inclut toutes les classes et fonctions liées à l'assemblage dans la carte .NET. Généralement, la bibliothèque d'exécution et la carte .NET sont fournies ensemble à l'utilisateur. [0055] Dans le mode d'exécution, la classe peut être localisée avec succès en une seule opération de recherche. [0056] Dans le mode d'exécution, la classe à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, ce qui améliore la vitesse de recherche de la classe à appeler quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, le méthode est pratique et facile à mettre en oeuvre. [0057] MODE D'EXÉCUTION 2 [0058] Si l'on se réfère à la figure 2, le mode d'exécution de la présente invention fournit une méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET. Le présent mode d'exécution illustre une méthode de recherche de fonction, incluant : [0059] Étape 201 : La carte .NET est raccordée à un ordinateur via un lecteur de carte ou par accès distant. La carte .NET exécute l'assemblage enregistré dans le module de stockage interne de la carte .NET. Une table d'index, qui est prémémorisée dans la carte .NET, inclut des valeurs d'index et des valeurs de localisateur correspondantes pour rechercher une classe ou une fonction dans une bibliothèque de classes. [0060] Étape 202 : Une première chaîne de caractères est construite d'après les informations d'une classe à laquelle appartient une fonction en cours d'exécution par la carte .NET. [0061] Plus spécifiquement, la première chaîne de caractères peut être formée par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction. Par exemple, une fonction en cours d'exécution est MyFuncl, une classe à laquelle appartient la fonction est Classl, un espace de nommage de la classe est NameSpacel. La fonction contient deux paramètres : NameSpace2.Class3 et NameSpace3.Class5. Une première chaîne de caractères peut donc être construite comme suit : [0062] NameSpace 1 .0 lass 1 (MyFuncl) NameSpace2.Class3, NameSpace3.Class5 [0063] Des symboles restrictifs peuvent être ajoutés à la première chaîne de caractères pour séparer chaque partie. Par exemple, des parenthèses peuvent être utilisées pour le nom de la fonction, des virgules pour séparer les paramètres, etc. On peut ainsi éviter toute confusion entre la première chaîne de caractères obtenue et les autres chaînes de caractères. [0064] Étape 203 : Une première valeur d'index est calculée à partir de la première chaîne de caractères construite. [0065] Plus spécifiquement, la première chaîne de caractères ci-dessus est hachée à l'aide d'un algorithme de hachage pour obtenir une empreinte numérique de la fonction en cours d'exécution. Avec l'empreinte numérique, on effectue une opération modulo sur le nombre total de classes et de fonctions correspondant aux valeurs d'index de la table d'index, de manière à obtenir une première valeur d'index. [0066] Étape 204 : À partir de la première valeur d'index obtenue, on recherche, dans la 25 table d'index, une première valeur de localisateur correspondant à la première valeur d'index. [0067] Dans le présent mode d'exécution, les valeurs d'index dans la carte .NET sont générées de la même manière que la première valeur d'index. Généralement, la table d'index inclut des valeurs d'index correspondant à toutes les classes et fonctions appelées 30 par l'assemblage de la carte .NET. De plus, la table d'index est stockée dans l'assemblage de la carte .NET. [0068] Étape 205 : La fonction en cours d'exécution est trouvée dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur, et l'entité de la fonction est appelée. [0069] La bibliothèque d'exécution de la carte .NET, qui peut inclure tout ou partie du contenu d'une bibliothèque de classes standard, inclut toutes les classes et fonctions liées à l'assemblage de la carte .NET. Généralement, la bibliothèque d'exécution et la carte .NET sont fournies ensemble à l'utilisateur. [0070] Dans le mode d'exécution, une fonction surchargée, ou une fonction non surchargée ou dérivée peut être localisée avec succès par une seule opération de recherche. Pour une fonction dérivée ou de redéfinition (c'est-à-dire une fonction virtuelle), la première table d'index peut ne pas inclure la première valeur d'index. De plus, la méthode ci-dessus inclut les éléments suivants : [0071] Si la première valeur d'index n'est pas incluse dans la table d'index, on prend comme classe courante une classe de la fonction en cours d'exécution par la carte .NET, une deuxième chaîne de caractères est construite d'après les informations d'une superclasse et d'une fonction de la classe courante, et une deuxième valeur d'index est calculée à partir de la deuxième chaîne de caractères ; on détermine si la deuxième valeur d'index est incluse dans la table d'index ; si c'est le cas, une deuxième valeur de localisateur correspondant à la deuxième valeur d'index est recherchée dans la table d'index, et la classe en cours d'exécution par la carte .NET est trouvée dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; dans le cas contraire, on prend comme classe courante la superclasse et on effectue un processus qui est identique au processus d'obtention de la deuxième valeur d'index jusqu'à trouver une troisième valeur d'index incluse dans la table d'index, puis on recherche, dans la table d'index, une troisième valeur de localisateur correspondant à la troisième valeur d'index et on trouve la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0072] Par exemple, il faut trouver une fonction Funcl et une classe à laquelle appartient la fonction est la classe Classl. Si une première valeur d'index correspondant à la classe et la fonction n'est pas trouvée dans la table d'index, une deuxième valeur d'index est obtenue d'après la fonction et Class2, qui est une superclasse de Classl. Si la table d'index n'inclut pas non plus la deuxième valeur d'index, alors une troisième valeur d'index est obtenue d'après la fonction et Class3, qui est une superclasse de Class2. Et ainsi de suite, jusqu'à trouver une valeur d'index qui figure dans la table d'index. Par conséquent, une valeur de localisateur correspondante est trouvée et la fonction peut être trouvée dans une bibliothèque de classes suivant la valeur de localisateur.
Io [0073] Dans le mode d'exécution, la fonction à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, qui améliore la vitesse de recherche de la fonction à appeler quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. De plus, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index au moyen de recherches multiples, permettant ainsi de réussir la localisation. [0074] MODE D'EXÉCUTION 3 [0075] Si l'on se réfère à la figure 3, le mode d'exécution de la présente invention fournit 10 une carte .NET dans laquelle : [0076] Un module de stockage est apte à stocker un assemblage et une table d'index ; [0077] Un module de construction est apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les informations d'une classe à laquelle appartient une fonction en cours d'exécution et d'après les 15 informations de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ; [0078] Un module de calcul est apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; [0079] Un module de recherche est apte à rechercher, dans la table d'index enregistrée 20 dans le module de stockage, une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul. Les valeurs d'index de la table d'index sont générées de la même manière que la première valeur d'index. Le module de recherche est également apte à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur. 25 [0080] Plus spécifiquement, le module de construction ci-dessus inclut : [0081] Une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage enregistré dans le module de stockage. 30 [0082] Ou le module de construction ci-dessus inclut : [0083] une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction. [0084] En outre, le module de calcul de la figure 3 peut inclure : [0085] une unité d'opération de hachage apte à effectuer une opération de hachage sur la première chaîne de caractères générée par le module de construction pour obtenir une empreinte numérique de la classe ou de la fonction en cours d'exécution par la carte .NET. [0086] une unité d'opération modulo apte à effectuer une opération modulo sur le nombre 10 total de classes et fonctions correspondant aux valeurs d'index dans la table d'index avec l'empreinte numérique, pour obtenir la première valeur d'index. [0087] De plus, le module de construction de la figure 3 est également apte, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations 15 d'une superclasse de la classe courante et les informations de la fonction, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index ; le module de calcul est également apte à calculer une deuxième valeur d'index à partir d'une deuxième chaîne de caractères générée par le module de construction. [0088] Par conséquent, la carte .NET inclut également : 20 [0089] un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; et [0090] si c'est le cas, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième 25 valeur de localisateur ; [0091] dans le cas contraire, en prenant la superclasse comment classe courante, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index 30 dans la table d'index et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur. [0092] Dans le présent mode d'exécution, la table d'index peut être stockée dans l'assemblage de la carte .NET. [0093] Dans le mode d'exécution, la classe ou la fonction à trouver est localisée en construisant une chaîne de caractères et d'après une table d'index prémémorisée, ce qui augmente la vitesse de recherche de la classe ou fonction quand un programme est exécuté dans la carte .NET. La table d'index occupant une faible partie de la mémoire de la carte .NET, la méthode est pratique et facile à mettre en oeuvre. En outre, pour les fonctions dérivées et les fonctions de redéfinition, une valeur d'index peut être trouvée dans la table d'index d'après les informations d'une superclasse, permettant ainsi de réussir la localisation. [0094] Les modes d'exécution divulgués dans les présentes doivent être considérés à tous points de vue comme étant illustratifs et en aucun cas limitatifs. La portée de l'invention est définie par les revendications annexées et non pas par la description qui précède, et toutes les variantes cadrant avec la signification et la gamme d'équivalents de l'invention sont considérées comme étant englobées par cette dernière.

Claims (10)

  1. REVENDICATIONS1. Méthode de recherche d'une classe et d'une fonction basée sur une carte .NET, qui est appliquée pendant l'exécution d'un assemblage dans la carte .NET, comprenant les étapes consistant à : • construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution par la carte .NET ou d'après les informations d'une fonction en cours d'exécution par la carte .NET et d'une classe à laquelle cette fonction appartient ; • calculer une première valeur d'index à partir de la première chaîne de caractères ; • rechercher une première valeur de localisateur correspondant à la première valeur d'index dans une table d'index prémémorisée dans la carte .NET, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; • trouver la classe ou la fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur.
  2. 2. Méthode selon la revendication 1, dans laquelle l'étape de construction de la première chaîne de caractères d'après les informations de la classe en cours d'exécution par la carte .NET comprend l'étape consistant à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET.
  3. 3. Méthode selon la revendication 1, dans laquelle l'étape de construction de la première chaîne de caractères d'après les informations de la fonction en cours d'exécution par la carte .NET et de la classe à laquelle cette fonction appartient comprend l'étape consistant à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, et un nom de classe et un espace de nommage de chaque paramètre de la fonction.
  4. 4. Méthode selon la revendication 1, comprenant en plus les étapes consistant à : si la première valeur d'index n'est pas incluse dans la table d'index, construire une deuxième chaîne de caractères d'après les informations d'une superclasse d'une classe courante et les informations de la fonction, en prenant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, et calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères ; déterminer si la deuxième valeur d'index est incluse dans la table d'index ; si la deuxième valeur d'index est incluse dans la table d'index, rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; si la deuxième valeur d'index n'est pas incluse dans la table d'index, effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur.
  5. 5. Méthode selon la revendication 1, dans laquelle la table d'index est stockée dans l'assemblage dans la carte .NET.
  6. 6. Carte .NET, comprenant : • un module de stockage apte à stocker un assemblage et une table d'index ; • un module de construction apte à construire une première chaîne de caractères d'après les informations d'une classe en cours d'exécution ou d'après les 30 informations d'une fonction en cours d'exécution et d'une classe à laquelle cette fonction appartient lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage ;25• un module de calcul apte à calculer une première valeur d'index à partir de la première chaîne de caractères générée par le module de construction ; • un module de recherche apte à rechercher une première valeur de localisateur correspondant à la première valeur d'index obtenue par le module de calcul dans la table d'index stockée dans le module de stockage, les valeurs d'index de la table d'index étant générées de la même manière que la première valeur d'index ; et à trouver une classe ou une fonction dans une bibliothèque d'exécution de la carte .NET suivant la première valeur de localisateur.
  7. 7. Carte .NET selon la revendication 6, dans laquelle le module de construction comprend une première unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe en cours d'exécution par la carte .NET lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage.
  8. 8. Carte .NET selon la revendication 6, dans laquelle le module de construction comprend une deuxième unité de construction apte à former la première chaîne de caractères par un nom de classe et un espace de nommage de la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, un nom de fonction de la fonction, un nom de classe et un espace de nommage de chaque paramètre de la fonction, lorsque la carte .NET exécute l'assemblage stocké dans le module de stockage.
  9. 9. Carte .NET selon la revendication 6, dans laquelle le module de construction est en outre apte, si la première valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, en utilisant comme classe courante la classe à laquelle appartient la fonction en cours d'exécution par la carte .NET, à construire une deuxième chaîne de caractères d'après les informations d'une superclasse de la classe courante et les informations de la fonction ; le module de calcul est en outre apte à calculer une deuxième valeur d'index à partir de la deuxième chaîne de caractères générée par le module de construction ; en conséquence la carte .NET comprend en plus un module de détermination apte à déterminer si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index ; etle module de recherche est en outre apte, si la deuxième valeur d'index obtenue par le module de calcul est incluse dans la table d'index, à rechercher une deuxième valeur de localisateur correspondant à la deuxième valeur d'index dans la table d'index, à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la deuxième valeur de localisateur ; et si la deuxième valeur d'index obtenue par le module de calcul n'est pas incluse dans la table d'index, à effectuer un processus qui est identique au processus d'obtention de la deuxième valeur d'index en prenant la superclasse comme classe courante jusqu'à trouver une troisième valeur d'index qui est incluse dans la table d'index, à rechercher une troisième valeur de localisateur correspondant à la troisième valeur d'index dans la table d'index, et à trouver la classe en cours d'exécution par la carte .NET dans la bibliothèque d'exécution de la carte .NET suivant la troisième valeur de localisateur.
  10. 10. Carte .NET selon la revendication 6, dans laquelle la table d'index est stockée dans l'assemblage dans la carte .NET.
FR0952733A 2008-05-13 2009-04-27 Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante. Expired - Fee Related FR2931567B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101064679A CN101419549B (zh) 2008-05-13 2008-05-13 基于.Net卡查找类和函数的方法和装置

Publications (2)

Publication Number Publication Date
FR2931567A1 true FR2931567A1 (fr) 2009-11-27
FR2931567B1 FR2931567B1 (fr) 2014-01-24

Family

ID=40630344

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0952733A Expired - Fee Related FR2931567B1 (fr) 2008-05-13 2009-04-27 Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante.

Country Status (3)

Country Link
US (1) US9176753B2 (fr)
CN (1) CN101419549B (fr)
FR (1) FR2931567B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419549B (zh) 2008-05-13 2012-04-18 飞天诚信科技股份有限公司 基于.Net卡查找类和函数的方法和装置
CN101739525B (zh) * 2009-11-30 2012-02-22 飞天诚信科技股份有限公司 安全校验的方法、编译装置、可运行.net程 序的装置和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5499333A (en) * 1995-04-20 1996-03-12 International Business Machines Corporation Method and apparatus for at least partially instantiating an object in a compound document using the object's parent class configuration data when the object's configuration data is unavailable
DE69714752C5 (de) * 1996-10-25 2015-08-13 Gemalto Sa Verwendung einer hohen programmiersprache in einem mikrokontroller
US7213236B2 (en) 2001-11-30 2007-05-01 Intrinsyc Software International, Inc. Method of bridging between .Net and Java
US20040040029A1 (en) 2002-08-22 2004-02-26 Mourad Debbabi Method call acceleration in virtual machines
GB2403108A (en) 2003-06-20 2004-12-22 Sharp Kk Remote access via a holding area
US7613701B2 (en) * 2004-12-22 2009-11-03 International Business Machines Corporation Matching of complex nested objects by multilevel hashing
CN100357889C (zh) * 2006-08-03 2007-12-26 上海科泰世纪科技有限公司 以类为单位的远程构件生命周期的管理方法
CN101419549B (zh) 2008-05-13 2012-04-18 飞天诚信科技股份有限公司 基于.Net卡查找类和函数的方法和装置

Also Published As

Publication number Publication date
CN101419549A (zh) 2009-04-29
CN101419549B (zh) 2012-04-18
US20090287688A1 (en) 2009-11-19
US9176753B2 (en) 2015-11-03
FR2931567B1 (fr) 2014-01-24

Similar Documents

Publication Publication Date Title
CN110968325B (zh) 一种小程序转换方法及装置
CN103582888B (zh) 在沙箱中保存引用的系统和方法
US8850581B2 (en) Identification of malware detection signature candidate code
US9086943B2 (en) Integrated development environment-based repository searching in a networked computing environment
US8645916B2 (en) Crunching dynamically generated script files
US20180203746A1 (en) Analysis of application programming interface usage for improving a computer system
EP1585037B1 (fr) Procédé de reconnaissance et de référencement pour accès aux objets dynamiques dans les pages de navigation internet
KR102050203B1 (ko) 하이퍼링크 목적지의 가시화 기법
US20070083378A1 (en) Secure application programming interface
US20080178286A1 (en) Rendered Image Collection of Potentially Malicious Web Pages
FR2909198A1 (fr) Procede et disositif de filtrage d'elements d'un document structure a partir d'une expression.
CN113961919B (zh) 恶意软件检测方法和装置
EP1960934B1 (fr) Procede pour securiser l'execution d'un code logiciel en langage intermediaire dans un appareil portatif
WO2021173151A1 (fr) Sélection d'interface et de mode pour l'exécution d'une action numérique
EP1880282A2 (fr) Procede de verification de pseudo-code charge dans un systeme embarque, notamment une carte a puce
US20130138895A1 (en) Method and system for maintaining a pointer's type
CN113434582B (zh) 业务数据处理方法、装置、计算机设备和存储介质
FR2931567A1 (fr) Methode de recherche de classe et de fonction basee basee sur une carte .net et carte .net correspondante.
EP2810160A1 (fr) Traduction de ressources d'application
CN110209880A (zh) 视频内容检索方法、视频内容检索装置及存储介质
FR2936327A1 (fr) Procede de telechargement d'un programme .net et dispositif pour celui-ci
CN113138762A (zh) Ui页面开发方法及装置
WO2013039800A1 (fr) Simulation d'éléments statiques et de constructeurs paramétrés sur une api à base d'interface
US20150378530A1 (en) Command surface drill-in control
CN114846444A (zh) 基于动态要求的动态个性化平台生成

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

ST Notification of lapse

Effective date: 20231205