Προς το περιεχόμενο

ευρεση crc checksum σε αρχειο save


erikiorai

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Λοιπόν εγώ εχω το wii fit plus και το προφιλ μου βρισκεται στο Dolphin στο laptop μου ενώ το προφίλ της φίλης μου βρίσκεται στο WII U μου. Θέλω να εχω και τα δυο προφίλ στο Wii U βρήκα την δομή του αρχείου σύμφωνα με την σελίδα. Όμως, το παιχνίδι το εμφανίζει σαν κατεστραμμένο  επιδη δεν ταιριάζει το CRC Checksoum που βρισκεται στο 0x4C198 αλλα δεν ξερω πως υπολογίστικε αυτο βρηκα αυτο το κωδίκα απο το main.dol

void FUN_800e1a70(void)

{
  ushort *puVar1;
  ushort *puVar2;
  ushort *puVar3;
  ushort *puVar4;
  ushort *puVar5;
  ushort *puVar6;
  ushort *puVar7;
  ushort uVar8;
  int iVar9;
  undefined4 uVar10;
  char cVar11;
  uint uVar12;
  uint uVar13;
  ushort *puVar14;
  int unaff_r13;
  undefined4 uVar15;
  uint local_30 [2];
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  
  FUN_800c9dc4();
  local_28 = 0;
  local_24 = 0;
  uVar15 = 2;
  local_20 = 0;
  local_1c = 0;
  if (*(char *)(unaff_r13 + -0x55b4) == '\0') {
    if ((*(uint *)(unaff_r13 + -0x55c0) == 0) || ((*(uint *)(unaff_r13 + -0x55c0) & 0x1f) != 0)) {
      FUN_801457d0(unaff_r13 + -0x7db0,0xa90,s_Error:_the_workarea_for_synchron_8070da48);
    }
    iVar9 = *(int *)(unaff_r13 + -0x55b8);
    if (iVar9 == 3) {
      *(undefined *)(unaff_r13 + -0x55b4) = 1;
      FUN_8013eb00(&DAT_807af3a0,*(undefined4 *)(unaff_r13 + -0x55c0),0x4b000,&LAB_800e19d0,
                   &DAT_807af42c);
    }
    else {
      if (iVar9 < 3) {
        if (iVar9 == 1) {
          cVar11 = FUN_801533f0();
          if (cVar11 == '\0') {
            FUN_800e5da0(s_WbcSaveData:_%s_8070d88c,s_/title/00010004/52464e4a/data/RP_8070d860) ;
            *(undefined *)(unaff_r13 + -0x55b4) = 1;
            *(undefined4 *)(unaff_r13 + -0x55bc) = 0;
            FUN_8013f910(s_/title/00010004/52464e4a/data/RP_8070d860,&DAT_807af3a0,1,&LAB_800e19 d0,
                         &DAT_807af42c);
          }
          else {
            *(undefined4 *)(unaff_r13 + -0x55b8) = 6;
          }
          goto LAB_800e1f88;
        }
        if (0 < iVar9) {
          *(undefined *)(unaff_r13 + -0x55b4) = 1;
          FUN_8013ed10(&DAT_807af3a0,0,0,&LAB_800e19d0,&DAT_807af42c);
          goto LAB_800e1f88;
        }
        if (-1 < iVar9) {
          iVar9 = FUN_80140c90();
          if (iVar9 == 0) {
            uVar10 = 1;
          }
          else {
            uVar10 = 0xff;
          }
          *(undefined4 *)(unaff_r13 + -0x55b8) = uVar10;
          FUN_800e5da0(s_NANDInit._[%d]_8070daa0,iVar9);
          goto LAB_800e1f88;
        }
      }
      else {
        if (iVar9 == 5) {
          *(undefined *)(unaff_r13 + -0x55b4) = 1;
          FUN_8013fb00(&DAT_807af3a0,&LAB_800e19d0,&DAT_807af42c);
          goto LAB_800e1f88;
        }
        if (iVar9 < 5) {
          FUN_80004000(&DAT_807af2c0,*(int *)(unaff_r13 + -0x55c0) + 0x4af18,0x80);
          FUN_80004000(local_30,*(int *)(unaff_r13 + -0x55c0) + 0x4af98,4);
          FUN_800e5da0(s_CRC_=_%d:%08x_8070dab0,local_30[0],local_30[0]);
          puVar14 = *(ushort **)(unaff_r13 + -0x55c0);
          iVar9 = 0x95e3;
          uVar13 = 0;
          uVar12 = 0;
          do {
            uVar8 = *puVar14;
            puVar1 = puVar14 + 1;
            puVar2 = puVar14 + 2;
            puVar3 = puVar14 + 3;
            puVar14 = puVar14 + 4;
            uVar13 = uVar13 + uVar8 + (uint)*puVar1 + (uint)*puVar2 + (uint)*puVar3;
            uVar12 = (((uVar12 + ~(uint)uVar8 & 0xffff) + ~(uint)*puVar1 & 0xffff) + ~(uint)*puVa r2
                     & 0xffff) + ~(uint)*puVar3 & 0xffff;
            iVar9 = iVar9 + -1;
          } while (iVar9 != 0);
          *(uint *)(unaff_r13 + -0x55bc) = uVar13 * 0x10000 | uVar12;
          uVar13 = uVar13 & 0xffff;
          puVar14 = (ushort *)(*(int *)(unaff_r13 + -0x55c0) + 0x4af18);
          iVar9 = 8;
          do {
            uVar8 = *puVar14;
            puVar1 = puVar14 + 1;
            puVar2 = puVar14 + 2;
            puVar3 = puVar14 + 3;
            puVar4 = puVar14 + 4;
            puVar5 = puVar14 + 5;
            puVar6 = puVar14 + 6;
            puVar7 = puVar14 + 7;
            puVar14 = puVar14 + 8;
            uVar13 = uVar13 + uVar8 + (uint)*puVar1 + (uint)*puVar2 + (uint)*puVar3 + (uint)*puVa r4
                     + (uint)*puVar5 + (uint)*puVar6 + (uint)*puVar7;
            uVar12 = (((((((uVar12 + ~(uint)uVar8 & 0xffff) + ~(uint)*puVar1 & 0xffff) +
                          ~(uint)*puVar2 & 0xffff) + ~(uint)*puVar3 & 0xffff) + ~(uint)*puVar4 &
                       0xffff) + ~(uint)*puVar5 & 0xffff) + ~(uint)*puVar6 & 0xffff) +
                     ~(uint)*puVar7 & 0xffff;
            iVar9 = iVar9 + -1;
          } while (iVar9 != 0);
          uVar12 = uVar13 * 0x10000 | uVar12;
          FUN_800e5da0(s_CRC'_=_%d:%08x_8070dac0,uVar12,uVar12);
          if (local_30[0] == uVar12) {
            iVar9 = FUN_800cd074(&DAT_807af2c0,&local_28,6);
            if (iVar9 == 0) {
              *(undefined4 *)(unaff_r13 + -0x55b8) = 5;
              FUN_800e5da0(s_WiiFit_does_not_register_WBC_yet_8070daf0);
            }
            else {
              uVar10 = FUN_801434b0();
              iVar9 = FUN_800cd074(uVar10,unaff_r13 + -0x7db8,4);
              if ((iVar9 == 0) || (iVar9 = FUN_800cd074(&DAT_807af2c6,&local_28,0x10), iVar9 != 0))
              {
                FUN_80004350(*(undefined4 *)(unaff_r13 + -0x55c0),0,0x4b000);
                FUN_80004350(&DAT_807aee58,0,0x461);
                FUN_80152f00(&DAT_807aee58);
                FUN_80004000(&DAT_807af22d,&DAT_807af2c0,6);
                FUN_80004000(&DAT_807af233,&DAT_807af2d6,0x40);
                FUN_80004000(&DAT_807af247,&DAT_807af2c6,0x10);
                FUN_800e5da0(s_WBC_from_WiiFit_8070db44);
                FUN_800e5da0(s__%02x_%02x_%02x_%02x_%02x_%02x_8070d8b0,DAT_807af2c0._0_1_,
                             (undefined)DAT_807af2c0,DAT_807af2c2._0_1_,(undefined)DAT_807af2c2,
                             DAT_807af2c4._0_1_,(undefined)DAT_807af2c4);
                FUN_800e5da0(s__%02x_%02x_%02x_%02x_%02x_%02x_%_8070d8d0,DAT_807af2c6._0_1_,
                             (undefined)DAT_807af2c6,DAT_807af2c8._0_1_,(undefined)DAT_807af2c8,
                             DAT_807af2ca._0_1_,(undefined)DAT_807af2ca,DAT_807af2cc._0_1_,
                             (undefined)DAT_807af2cc);
                FUN_800e5da0(s__%02x_%02x_%02x_%02x_%02x_%02x_%_8070d8d0,DAT_807af2ce._0_1_,
                             (undefined)DAT_807af2ce,DAT_807af2d0._0_1_,(undefined)DAT_807af2d0,
                             DAT_807af2d2._0_1_,(undefined)DAT_807af2d2,DAT_807af2d4._0_1_,
                             (undefined)DAT_807af2d4);
                FUN_800e5da0(unaff_r13 + -0x7dc0,&DAT_807af2d6);
                FUN_80152f10(&DAT_807aee58);
                *(undefined *)(unaff_r13 + -0x55b4) = 1;
                FUN_80152680(&LAB_800e1a50);
              }
              else {
                *(undefined4 *)(unaff_r13 + -0x55b8) = 5;
                FUN_800e5da0(s_LinkKey_saved_in_WiiFit_SaveData_8070db14);
              }
            }
          }
          else {
            *(undefined4 *)(unaff_r13 + -0x55b8) = 5;
            FUN_800e5da0(s_CRC_Error_on_WiiFit_SaveData._8070dad0);
          }
          goto LAB_800e1f88;
        }
      }
      uVar15 = 3;
    }
  }
  else {
    uVar15 = 2;
  }
LAB_800e1f88:
  FUN_800c9e10(uVar15);
  return;
}

Δήγμα αρχείο save

Επεξ/σία από erikiorai
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...