Модуль "Flash Rainbow POG" (часть 18) - RemoveRSA
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
function TfrmFlash_Work_with_POG.RemoveRSA(ABoot, ACG1: string): boolean; var xAddr: word; fHandle: Integer; fSize: integer; xBuffer: pbytearray; patern1: word; patern3: word; patern2, xAddr2: word; posx,back, i, j : integer;
begin result:= false; posx:= FindBootAddr(ABoot); //ldr:= ExePath + 'Flash\ramldrs\V3xNoRSA.ldr'; if posx < 1 then begin result:= false; Form1.spSkinMessage1.MessageDlg(fp_m_text10, mtError, [mbOk], 0); exit; end; // патчим CG1 fHandle:= FileOpen(ACG1, fmOpenRead); fSize:= GetFileSize(fHandle, nil); xBuffer:= AllocMem(fSize); Form1.Update; Application.ProcessMessages; try FileRead(fHandle, xBuffer^, fSize); finally FileClose(fHandle); end; Form1.Update; Application.ProcessMessages; if fSize < 1 then begin FreeMem(xBuffer); exit; end; // 1 CopyMemory(@back, @xBuffer[0], 4); posx:= convert_dword(posx + $10000000); CopyMemory(@xBuffer[0], @posx, 4); // 2 posx:= convert_dword($100400E0); CopyMemory(@xBuffer[$00000AC], @posx, 4); // 3 posx:= convert_dword($1000E800); CopyMemory(@xBuffer[$00000E0], @posx, 4); posx:= convert_dword($000000B1); CopyMemory(@xBuffer[$00000E0+4], @posx, 4); posx:= convert_dword($00080406); CopyMemory(@xBuffer[$00000E0+8], @posx, 4); posx:= convert_dword($50060000); CopyMemory(@xBuffer[$00000E0+12], @posx, 4); // 4 i:= $2FBBC; // << 3FFFF CopyMemory(@xBuffer[i], @back, 4); RenameFile(ACG1, ACG1 + '_bak'); fHandle:= FileCreate(ACG1); FileWrite(fHandle, xBuffer^, fSize); FileClose(fHandle); FreeMem(xBuffer); result:= true; end;
Еще записи по теме
- Модуль "Пункты меню" (часть 18) - LoadMenuFromFile
- Модуль "Стили звонка" (часть 4) - CompareMelody
- Модуль "Мое меню" (часть 4) - ConvertBufferToMyMenuStructure
- Модуль "Flash Rainbow POG" (часть 20) - PatchToBlank
- Модуль "Календарь" (часть 23) - RestoreDateBook
- Модуль "Настройки" (часть 8) - InspectorBar1Sections0Items3Click
- Модуль "Справочник" (часть 34) - GetPhoneBookEntriesEx
