Noms

Annexe technique · Accueil · English

Il y a deux bases de données :

  • maup.exe.i64 : IDA, nommée par des travaux antérieurs. Non modifiée par la révision, donc ses noms trompeurs y restent.

  • maup.exe.bndb : Binary Ninja, avec les noms corrigés. symbols.tsv les liste tous, avec chaque adresse dans les deux bases et l'ancien nom IDA quand il diffère.

  • MAUPITI1.EXE.bndb : Binary Ninja, avec les noms de symbols-maupiti1.tsv. Son adresse = décalage de fichier = EA - 0xEA00.

Binary Ninja peut se tromper d'architecture pour MAUPITI1.EXE. Ouverte en x86-16, la vue à plat n'a pas de point d'entrée et ne montre qu'un vidage hexadécimal. Pour la reconstruire, exécutez exec(open("<repo>/tools/bn_seed_m1.py").read()) dans sa console Python : cela crée les fonctions et applique les noms.

Renommages nécessaires si vous travaillez dans IDA

Nom IDA Nom Binary Ninja Raison
Font_LoadCharset Intro_Run joue l'introduction
Font_LoadStrings Intro_OpLoadPicture charge des images
sub_14930 Img_Decode décodeur d'images
sub_157C3 Txt_DrawIndexed service 9, décode et dessine une chaîne
sub_171A4 Intro_OpShowCredit affiche un crédit
sub_1428C Ui_CaptureSpriteSheet copie 64 lignes vers la planche
sub_10536 Game_Main entrée principale
Vid_CanvasPtr Vid_PagePtr adresse la page
Vid_BlitTile16x12 Vid_BlitTile la taille vient de CX
Vid_FlushCanvas_Mono Vid_SpriteDispatch aiguillage par mode
Vid_FlushCanvas_CGA16 Vid_SpriteAmstrad mode 0
Vid_FlushCanvas_EGA Vid_SpriteEga mode 2
wConStagingSeg wPageSeg la page de dessin
wVidCanvasSeg / Ofs wSheetSeg / Ofs planche de sprites
word_1CC2B wPage2Seg seconde page
bGlyphDirectStore bBlitViaPutPixel le sens était inversé
wGlyphRowPitch wTextColorCur contient la couleur
word_1A4F4 wTextColor contient la couleur
bHufIndexVariant bSoundCard type de carte son
bConOpenState bConCurrentDisk numéro de disque
wLzChunkLimitLo/Hi wLzProgressLimitLo/Hi pas de format par blocs
unk_1CBAB IntroStringBuf tampon de décodage

Préfixes de noms

Con_ archives, Huf_ flux, Lz_ codec, Mau_ fichiers bruts, Save_ sauvegardes, Img_ images, Txt_ chaînes, Font_ polices, Vid_ dessin, Ui_ éléments de la planche, Intro_ introduction, Far_ aides pour pointeurs, SvcNN services INT 0FEh dont le rôle n'est pas établi.

Limites de la vue Binary Ninja

  • La vue est une projection à plat du fichier, en-tête MZ compris, sans segments.
  • Les appels far et les références DS: ne sont pas résolus, donc les noms des globales n'apparaissent pas dans le code qui s'en sert. Par exemple, [0x496] s'affiche data_496, et les valeurs constantes montrées peuvent être fausses.
  • Certains noms sont des symboles sans fonction découverte.
  • Les noms des deux bases correspondent à symbols.tsv et symbols-maupiti1.tsv.
  • La fonction Main de MAUPITI1.EXE s'arrête après son premier appel far, et son code continue dans Main_Body.
  • Les variables locales ne sont nommées que dans les fonctions clés : Img_Decode, Txt_Decode5Bit, Vid_DrawGlyph, Vid_DrawString, Lz_ReadDistance, Lz_Decompress, Lz_DecompressFar. Beaucoup d'autres lisent leurs arguments par mov bp,cx, que Binary Ninja ne traite pas comme des arguments.

Précédent : Parole · Suivant : Affirmations réfutées · Annexe technique · Accueil