Changeset 312
- Timestamp:
- 01/26/10 18:11:11 (6 weeks ago)
- Location:
- Cheat Engine
- Files:
-
- 34 modified
-
CEFuncProc.pas (modified) (2 diffs)
-
CheatEngine.res (modified) (previous)
-
DissectCodeunit.pas (modified) (4 diffs)
-
FoundCodeUnit.pas (modified) (1 diff)
-
MainUnit.dfm (modified) (1 diff)
-
MainUnit.pas (modified) (1 diff)
-
MemoryBrowserFormUnit.dfm (modified) (3 diffs)
-
MemoryBrowserFormUnit.pas (modified) (4 diffs)
-
PointerscanresultReader.pas (modified) (2 diffs)
-
Release/Cheat Engine.iss (modified) (2 diffs)
-
Structuresfrm.pas (modified) (3 diffs)
-
Tutorial/Unit1.dfm (modified) (7 diffs)
-
Tutorial/Unit1.pas (modified) (1 diff)
-
Tutorial/Unit10.dfm (modified) (1 diff)
-
Tutorial/Unit2.dfm (modified) (6 diffs)
-
Tutorial/Unit9.dfm (modified) (6 diffs)
-
aboutunit.dfm (modified) (4 diffs)
-
aboutunit.pas (modified) (1 diff)
-
autoassembler.pas (modified) (2 diffs)
-
cheatengine.dof (modified) (2 diffs)
-
cheatengine.drc (modified) (9 diffs)
-
disassembler.pas (modified) (6 diffs)
-
disassemblerviewunit.pas (modified) (3 diffs)
-
frmHeapsUnit.dfm (modified) (5 diffs)
-
frmHeapsUnit.pas (modified) (8 diffs)
-
frmMemoryAllocHandlerUnit.pas (modified) (1 diff)
-
frmReferencedStringsUnit.pas (modified) (1 diff)
-
frmSaveMemoryRegionUnit.dfm (modified) (6 diffs)
-
frmSaveMemoryRegionUnit.pas (modified) (1 diff)
-
help/cheat engine.sh6 (modified) (previous)
-
memscan.pas (modified) (1 diff)
-
pointerscannerfrm.pas (modified) (12 diffs)
-
savedisassemblyfrm.pas (modified) (1 diff)
-
symbolhandler.pas (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
Cheat Engine/CEFuncProc.pas
r309 r312 2615 2615 scanvalue:=copy(scanvalue,1,length(scanvalue)-1); 2616 2616 2617 if (pos('-',scanvalue)>0) or (pos(' ',scanvalue)>0) then2617 if (pos('-',scanvalue)>0) or (pos(' ',scanvalue)>0) or (pos(',',scanvalue)>0) then 2618 2618 begin 2619 2619 //syntax is xx-xx-xx or xx xx xx … … 2624 2624 for i:=1 to length(scanvalue) do 2625 2625 begin 2626 if (scanvalue[i] =' ') or (scanvalue[i]='-') then2626 if (scanvalue[i] in [' ', '-', ',']) then 2627 2627 begin 2628 2628 helpstr:=copy(scanvalue,j,i-j); -
Cheat Engine/DissectCodeunit.pas
r303 r312 75 75 begin 76 76 timer1.Enabled:=false; 77 dissectcode.terminate; 78 dissectcode.WaitFor; 79 dissectcode.done:=true; 77 if dissectcode<>nil then 78 begin 79 dissectcode.terminate; 80 dissectcode.WaitFor; 81 dissectcode.done:=true; 82 end; 80 83 Timer1Timer(timer1); 81 84 … … 85 88 end; 86 89 90 91 92 if listbox1.SelCount=0 then raise exception.Create('Please select something to scan'); 93 87 94 if dissectcode<>nil then 88 95 begin … … 93 100 94 101 dissectcode:=TDissectCodeThread.create(true); 95 96 97 begin 98 setlength(dissectcode.memoryregion,0); 99 if listbox1.SelCount=0 then raise exception.Create('Please select something to scan'); 100 for i:=0 to listbox1.items.count-1 do 101 begin 102 if listbox1.Selected[i] then 102 setlength(dissectcode.memoryregion,0); 103 104 for i:=0 to listbox1.items.count-1 do 105 begin 106 if listbox1.Selected[i] then 107 begin 108 getexecutablememoryregionsfromregion(tmoduledata(listbox1.Items.Objects[i]).moduleaddress,tmoduledata(listbox1.Items.Objects[i]).moduleaddress+tmoduledata(listbox1.Items.Objects[i]).modulesize,tempregions); 109 setlength(dissectcode.memoryregion,length(dissectcode.memoryregion)+length(tempregions)); 110 111 for j:=0 to length(tempregions)-1 do 112 dissectcode.memoryregion[length(dissectcode.memoryregion)-length(tempregions)+j]:=tempregions[j]; 113 end; 114 end; 115 116 117 //sort the regions so they are from big to small (bubblesort) 118 n:=length(dissectcode.memoryregion); 119 for i:=0 to n-1 do 120 begin 121 flipped:=false; 122 for j:=0 to n-2-i do 123 begin 124 if dissectcode.memoryregion[j+1].BaseAddress<dissectcode.memoryregion[j].BaseAddress then//swap 103 125 begin 104 getexecutablememoryregionsfromregion(tmoduledata(listbox1.Items.Objects[i]).moduleaddress,tmoduledata(listbox1.Items.Objects[i]).moduleaddress+tmoduledata(listbox1.Items.Objects[i]).modulesize,tempregions); 105 setlength(dissectcode.memoryregion,length(dissectcode.memoryregion)+length(tempregions)); 106 107 for j:=0 to length(tempregions)-1 do 108 dissectcode.memoryregion[length(dissectcode.memoryregion)-length(tempregions)+j]:=tempregions[j]; 126 temp:=dissectcode.memoryregion[j+1]; 127 dissectcode.memoryregion[j+1]:=dissectcode.memoryregion[j]; 128 dissectcode.memoryregion[j]:=temp; 129 flipped:=true; 109 130 end; 110 131 end; 111 132 112 113 //sort the regions so they are from big to small (bubblesort) 114 n:=length(dissectcode.memoryregion); 115 for i:=0 to n-1 do 116 begin 117 flipped:=false; 118 for j:=0 to n-2-i do 119 begin 120 if dissectcode.memoryregion[j+1].BaseAddress<dissectcode.memoryregion[j].BaseAddress then//swap 121 begin 122 temp:=dissectcode.memoryregion[j+1]; 123 dissectcode.memoryregion[j+1]:=dissectcode.memoryregion[j]; 124 dissectcode.memoryregion[j]:=temp; 125 flipped:=true; 126 end; 127 end; 128 129 if not flipped then break; 130 end; 131 133 if not flipped then break; 132 134 end; 133 135 … … 181 183 if dissectcode.done then 182 184 begin 183 close; 185 timer1.Enabled:=false; 186 btnStart.Caption:='Start'; 187 ProgressBar1.Position:=0; 188 label7.Caption:='done'; 189 190 184 191 185 192 if ondone=odOpenReferedStringList then 186 193 begin 194 close; 187 195 if frmReferencedStrings=nil then 188 196 frmReferencedStrings:=tfrmReferencedStrings.Create(self); -
Cheat Engine/FoundCodeUnit.pas
r311 r312 443 443 for i:=0 to FoundcodeList.Items.count-1 do 444 444 if FoundcodeList.Selected[i] then 445 s:=s+FoundcodeList.Items[i]+#13 ;445 s:=s+FoundcodeList.Items[i]+#13#10; 446 446 447 447 clipboard.AsText:=s; -
Cheat Engine/MainUnit.dfm
r309 r312 2967 2967 object Helpindex1: TMenuItem 2968 2968 Caption = 'Cheat Engine Help' 2969 ShortCut = 112 2969 2970 OnClick = Helpindex1Click 2970 2971 end -
Cheat Engine/MainUnit.pas
r309 r312 10895 10895 getprocesslist(pl); 10896 10896 10897 for i:=0 to autoattachlist.Count-1 do10898 begin 10899 for j:=0 to pl.Count-1 do //can't do indexof10900 begin 10901 if pos(uppercase(autoattachlist.Strings[i]),uppercase(pl.strings[j]))=10 then10897 try 10898 10899 for i:=0 to autoattachlist.Count-1 do 10900 begin 10901 for j:=0 to pl.Count-1 do //can't do indexof 10902 10902 begin 10903 //the process is found 10904 10905 val('$'+pl.strings[j],newPID,k); 10906 if processid=newPID then exit; //already attached to this one 10907 10908 ProcessHandler.processid:=newPID; 10909 unpause; 10910 DetachIfPossible; 10911 10912 MainForm.ProcessLabel.caption:=pl.strings[j]; 10913 Open_Process; 10914 enablegui(false); 10915 10916 openProcessEpilogue('',0,0); 10917 10918 symhandler.reinitialize; 10919 reinterpretaddresses; 10903 if pos(uppercase(autoattachlist.Strings[i]),uppercase(pl.strings[j]))=10 then 10904 begin 10905 //the process is found 10906 10907 val('$'+pl.strings[j],newPID,k); 10908 if processid=newPID then exit; //already attached to this one 10909 10910 ProcessHandler.processid:=newPID; 10911 unpause; 10912 DetachIfPossible; 10913 10914 MainForm.ProcessLabel.caption:=pl.strings[j]; 10915 Open_Process; 10916 enablegui(false); 10917 10918 openProcessEpilogue('',0,0); 10919 10920 symhandler.reinitialize; 10921 reinterpretaddresses; 10922 end; 10920 10923 end; 10921 end; 10922 10923 end; 10924 // pl.IndexOf(autoattachlist.items[i]); 10925 10926 for i:=0 to pl.count-1 do 10927 if pl.Objects[i]<>nil then 10928 begin 10929 pli:=pointer(pl.Objects[i]); 10930 if pli.processIcon>0 then 10931 DestroyIcon(pli.processIcon); 10932 freemem(pli); 10933 end; 10934 10935 pl.free; 10924 10925 end; 10926 // pl.IndexOf(autoattachlist.items[i]); 10927 10928 finally 10929 for i:=0 to pl.count-1 do 10930 if pl.Objects[i]<>nil then 10931 begin 10932 pli:=pointer(pl.Objects[i]); 10933 if pli.processIcon>0 then 10934 DestroyIcon(pli.processIcon); 10935 freemem(pli); 10936 end; 10937 10938 pl.free; 10939 end; 10936 10940 end; 10937 10941 -
Cheat Engine/MemoryBrowserFormUnit.dfm
r309 r312 176 176 Top = 115 177 177 Width = 96 178 Height = 1 4178 Height = 13 179 179 Cursor = crHandPoint 180 180 Caption = 'EBP 00000000' … … 192 192 Top = 131 193 193 Width = 96 194 Height = 1 4194 Height = 13 195 195 Cursor = crHandPoint 196 196 Caption = 'ESP 00000000' … … 208 208 Top = 147 209 209 Width = 96 210 Height = 1 5210 Height = 13 211 211 Cursor = crHandPoint 212 212 Caption = 'EIP 00000000' -
Cheat Engine/MemoryBrowserFormUnit.pas
r309 r312 1652 1652 disassemble(b); //b gets increased with size of selected instruction 1653 1653 edit1.Text:=inttohex(a,8); 1654 edit2.Text:=inttohex(b ,8);1654 edit2.Text:=inttohex(b-1,8); 1655 1655 copymode:=true; 1656 1656 showmodal; … … 3070 3070 freeandnil(frmMemoryAllocHandler); 3071 3071 3072 3073 3072 3074 if frmheaps=nil then 3073 3075 frmheaps:=tfrmheaps.create(self); … … 3720 3722 disassemble(b); //b gets increased with size of selected instruction 3721 3723 edit1.Text:=inttohex(a,8); 3722 edit2.Text:=inttohex(b ,8);3724 edit2.Text:=inttohex(b-1,8); 3723 3725 copymode:=true; 3724 3726 … … 3926 3928 3927 3929 if frmMemoryAllocHandler=nil then 3928 begin3929 {if MessageDlg('This function will inject a dll into the target process and hook some memory allocation/free routines. Continue?',mtConfirmation, [mbyes,mbno],0)<>mryes then exit;3930 3931 }3932 3930 frmMemoryAllocHandler:=TfrmMemoryAllocHandler.Create(self); 3933 end;3934 3931 3935 3932 frmMemoryAllocHandler.Show; -
Cheat Engine/PointerscanresultReader.pas
r291 r312 198 198 begin 199 199 FFilename:=filename; 200 configfile:=TFileStream.Create(filename, fmOpenRead or fmShareDeny None);200 configfile:=TFileStream.Create(filename, fmOpenRead or fmShareDenyWrite); 201 201 configfile.ReadBuffer(modulelistlength,sizeof(modulelistlength)); 202 202 modulelist:=tstringlist.create; … … 250 250 251 251 252 files[i].f:=TFileStream.Create(ExtractFilePath(filename)+temppchar, fmOpenRead or fmShareDeny None);252 files[i].f:=TFileStream.Create(ExtractFilePath(filename)+temppchar, fmOpenRead or fmShareDenyWrite); 253 253 files[i].startindex:=fcount; 254 254 fcount:=fcount+uint64(files[i].f.Size div uint64(sizeofentry)); -
Cheat Engine/Release/Cheat Engine.iss
r309 r312 3 3 4 4 [Setup] 5 AppName=Cheat Engine 5.6 BETA 56 AppVerName=Cheat Engine 5.6 BETA 55 AppName=Cheat Engine 5.6 BETA 7 6 AppVerName=Cheat Engine 5.6 BETA 7 7 7 AppPublisher=Dark Byte 8 8 AppPublisherURL=http://www.cheatengine.org/ 9 9 AppSupportURL=http://www.cheatengine.org/ 10 10 AppUpdatesURL=http://www.cheatengine.org/ 11 DefaultDirName={pf}\Cheat Engine Beta 512 DefaultGroupName=Cheat Engine 5.6 BETA 511 DefaultDirName={pf}\Cheat Engine Beta7 12 DefaultGroupName=Cheat Engine 5.6 BETA 7 13 13 AllowNoIcons=yes 14 14 LicenseFile=..\Release\License.txt 15 15 InfoAfterFile=..\Release\readme.txt 16 OutputBaseFilename=CheatEngine56Beta 516 OutputBaseFilename=CheatEngine56Beta7 17 17 PrivilegesRequired=admin 18 18 ChangesAssociations=yes … … 248 248 249 249 [Run] 250 Filename: "{app}\Cheat Engine.exe"; Description: "Launch Cheat Engine 5.6 Beta 5"; Flags: nowait postinstall skipifsilent runascurrentuser250 Filename: "{app}\Cheat Engine.exe"; Description: "Launch Cheat Engine 5.6 Beta 7"; Flags: nowait postinstall skipifsilent runascurrentuser -
Cheat Engine/Structuresfrm.pas
r311 r312 1994 1994 begin 1995 1995 sender.Canvas.Brush.Style:=bsSolid; 1996 sender.Canvas.Brush.Color:=clHighlight; 1996 sender.Canvas.Brush.Color:=clHighlight; 1997 1997 sender.Canvas.FillRect(textlinerect); 1998 1998 sender.Canvas.DrawFocusRect(textlinerect); … … 2020 2020 tvStructureView.canvas.Font.Color:=groupcolors[currentgroup]; 2021 2021 2022 if (cdsSelected in State) then 2023 begin 2024 case groupcolors[currentgroup] of 2025 clGreen: sender.Canvas.font.Color:=clBlack; 2026 clRed: sender.Canvas.font.Color:=clMaroon; 2027 clBlue: sender.Canvas.font.Color:=clNavy; 2028 end; 2029 2030 end; 2031 2022 2032 clip.Left:=headercontrol1.Sections[i].Left; 2023 2033 clip.Right:=headercontrol1.Sections[i].Left+headercontrol1.Sections[i].Width; … … 2054 2064 n6.Visible:=remove1.Visible; 2055 2065 2056 if groups[x.Tag]<>0 then 2057 setgroup1.Caption:='Change group ('+inttostr(groups[x.tag])+')' 2058 else 2059 setgroup1.Caption:='Set group'; 2066 setgroup1.Caption:='Change group ('+inttostr(groups[x.tag])+')'; 2060 2067 end; 2061 2068 -
Cheat Engine/Tutorial/Unit1.dfm
r181 r312 5 5 BorderStyle = bsDialog 6 6 Caption = 'Cheat Engine Tutorial v3' 7 ClientHeight = 2 328 ClientWidth = 5717 ClientHeight = 286 8 ClientWidth = 703 9 9 Color = clBtnFace 10 10 Font.Charset = DEFAULT_CHARSET 11 11 Font.Color = clWindowText 12 Font.Height = -1 112 Font.Height = -14 13 13 Font.Name = 'MS Sans Serif' 14 14 Font.Style = [] … … 17 17 OnCloseQuery = FormCloseQuery 18 18 OnCreate = FormCreate 19 PixelsPerInch = 9620 TextHeight = 1 319 PixelsPerInch = 120 20 TextHeight = 16 21 21 object Label1: TLabel 22 Left = 44823 Top = 19224 Width = 4625 Height = 1 322 Left = 551 23 Top = 236 24 Width = 60 25 Height = 16 26 26 Caption = 'Password' 27 27 end … … 29 29 Left = 0 30 30 Top = 0 31 Width = 57132 Height = 18531 Width = 703 32 Height = 228 33 33 Align = alTop 34 34 Color = clBtnFace … … 47 47 48 48 'When the process window is open find this tutorial. The process ' + 49 'name is probably '#39'tutorial.exe'#39' unless you renamed ' 49 'name is probably '#39'tutorial.exe'#39' unless you ' 50 'renamed ' 50 51 'it.' 51 52 … … 66 67 end 67 68 object Button1: TButton 68 Left = 24869 Top = 2 0070 Width = 7571 Height = 2569 Left = 305 70 Top = 246 71 Width = 93 72 Height = 31 72 73 Caption = 'Next' 73 74 TabOrder = 1 … … 75 76 end 76 77 object Edit1: TEdit 77 Left = 41278 Top = 2 0879 Width = 1 2178 Left = 507 79 Top = 256 80 Width = 149 80 81 Height = 21 81 82 Hint = 'Use this to go imeadiatly to the step you want to try' … … 87 88 end 88 89 object Button2: TButton 89 Left = 53690 Top = 2 1191 Width = 2592 Height = 1790 Left = 660 91 Top = 260 92 Width = 30 93 Height = 21 93 94 Caption = 'OK' 94 95 TabOrder = 3 -
Cheat Engine/Tutorial/Unit1.pas
r13 r312 173 173 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 174 174 begin 175 canclose:=MessageDlg('First step too hard eh? Better give up now!',mtconfirmation,[mbyes,mbno],0)=mryes;175 canclose:=MessageDlg('First step too hard? Better give up now!',mtconfirmation,[mbyes,mbno],0)=mryes; 176 176 end; 177 177 -
Cheat Engine/Tutorial/Unit10.dfm
r181 r312 2 2 Left = 630 3 3 Top = 563 4 Caption = ' Form10'4 Caption = 'Step 9' 5 5 OldCreateOrder = True 6 6 Visible = True 7 PixelsPerInch = 968 TextHeight = 1 37 PixelsPerInch = 120 8 TextHeight = 16 9 9 inherited Memo1: TMemo 10 10 Lines.Strings = ( -
Cheat Engine/Tutorial/Unit2.dfm
r181 r312 5 5 BorderStyle = bsDialog 6 6 Caption = 'Step 2' 7 ClientHeight = 2518 ClientWidth = 5707 ClientHeight = 309 8 ClientWidth = 702 9 9 Color = clBtnFace 10 10 Font.Charset = DEFAULT_CHARSET 11 11 Font.Color = clWindowText 12 Font.Height = -1 112 Font.Height = -14 13 13 Font.Name = 'MS Sans Serif' 14 14 Font.Style = [] … … 18 18 OnCloseQuery = FormCloseQuery 19 19 OnCreate = FormCreate 20 PixelsPerInch = 9621 TextHeight = 1 320 PixelsPerInch = 120 21 TextHeight = 16 22 22 object Label1: TLabel 23 Left = 4 024 Top = 2 3225 Width = 1826 Height = 1 323 Left = 49 24 Top = 286 25 Width = 21 26 Height = 16 27 27 Caption = '100' 28 28 end 29 29 object Label2: TLabel 30 30 Left = 0 31 Top = 2 3232 Width = 3433 Height = 1 331 Top = 286 32 Width = 42 33 Height = 16 34 34 Caption = 'Health:' 35 35 end 36 36 object SpeedButton1: TSpeedButton 37 Left = 54438 Top = 2 3239 Width = 2540 Height = 1737 Left = 670 38 Top = 286 39 Width = 30 40 Height = 20 41 41 Caption = 'Skip' 42 42 Flat = True … … 46 46 Left = 0 47 47 Top = 0 48 Width = 57049 Height = 18548 Width = 702 49 Height = 228 50 50 Align = alTop 51 51 Color = clBtnFace … … 83 83 'ck '#39'First Scan'#39 84 84 85 'After a while (if you have a extrem ly slow pc) the scan is done' +86 ' and the results are shown in the list on the '85 'After a while (if you have a extremely slow pc) the scan is done' + 86 ' and the results are shown in the list on the ' 87 87 'left' 88 88 '' 89 89 90 'If you find more than 1 address and you don t know for sure wich' +91 ' address it is, click '#39'Hit me'#39', fill in the new '90 'If you find more than 1 address and you don'#39't know for sure whic' + 91 'h address it is, click '#39'Hit me'#39', fill in the new ' 92 92 'health value into the value box, and click '#39'Next Scan'#39 93 93 … … 118 118 end 119 119 object Button1: TButton 120 Left = 248121 Top = 192122 Width = 75123 Height = 25120 Left = 305 121 Top = 236 122 Width = 93 123 Height = 31 124 124 Caption = 'Next' 125 125 Enabled = False … … 128 128 end 129 129 object Button2: TButton 130 Left = 64131 Top = 2 30132 Width = 41133 Height = 17130 Left = 79 131 Top = 283 132 Width = 50 133 Height = 21 134 134 Caption = 'Hit me' 135 135 TabOrder = 2 -
Cheat Engine/Tutorial/Unit9.dfm
r181 r312 1 1 object Form9: TForm9 2 Left = 4 373 Top = 4462 Left = 411 3 Top = 229 4 4 BorderStyle = bsDialog 5 5 Caption = 'Step 8' 6 ClientHeight = 2507 ClientWidth = 5716 ClientHeight = 308 7 ClientWidth = 703 8 8 Color = clBtnFace 9 9 Font.Charset = DEFAULT_CHARSET 10 10 Font.Color = clWindowText 11 Font.Height = -1 111 Font.Height = -14 12 12 Font.Name = 'MS Sans Serif' 13 13 Font.Style = [] … … 18 18 OnCloseQuery = FormCloseQuery 19 19 OnCreate = FormCreate 20 PixelsPerInch = 9621 TextHeight = 1 320 PixelsPerInch = 120 21 TextHeight = 16 22 22 object Label1: TLabel 23 Left = 824 Top = 2 1625 Width = 1826 Height = 1 323 Left = 10 24 Top = 266 25 Width = 21 26 Height = 16 27 27 Caption = '100' 28 28 end 29 29 object Label2: TLabel 30 Left = 9631 Top = 2 1532 Width = 633 Height = 1 330 Left = 118 31 Top = 265 32 Width = 7 33 Height = 16 34 34 Caption = '3' 35 35 Visible = False 36 36 end 37 37 object SpeedButton1: TSpeedButton 38 Left = 54439 Top = 2 3240 Width = 2541 Height = 1738 Left = 670 39 Top = 286 40 Width = 30 41 Height = 20 42 42 Caption = 'Skip' 43 43 Flat = True … … 47 47 Left = 0 48 48 Top = 0 49 Width = 57150 Height = 18549 Width = 703 50 Height = 228 51 51 Align = alTop 52 52 Color = clBtnFace … … 113 113 end 114 114 object Button2: TButton 115 Left = 248116 Top = 192117 Width = 75118 Height = 25115 Left = 305 116 Top = 236 117 Width = 93 118 Height = 31 119 119 Caption = 'Next' 120 120 Enabled = False … … 123 123 end 124 124 object Button1: TButton 125 Left = 8126 Top = 2 28127 Width = 81128 Height = 19125 Left = 10 126 Top = 281 127 Width = 100 128 Height = 23 129 129 Caption = 'Change value' 130 130 TabOrder = 2 … … 132 132 end 133 133 object Button3: TButton 134 Left = 93135 Top = 2 28136 Width = 81137 Height = 19134 Left = 114 135 Top = 281 136 Width = 100 137 Height = 23 138 138 Caption = 'Change pointer' 139 139 TabOrder = 3 -
Cheat Engine/aboutunit.dfm
r295 r312 50 50 end 51 51 object Label4: TLabel 52 Left = 1 3352 Left = 110 53 53 Top = 158 54 54 Width = 72 … … 382 382 end 383 383 object Label6: TLabel 384 Left = 6 8384 Left = 61 385 385 Top = 158 386 386 Width = 40 … … 389 389 end 390 390 object Label7: TLabel 391 Left = 223391 Left = 193 392 392 Top = 158 393 393 Width = 84 … … 438 438 Height = 16 439 439 OnClick = lblDBVMClick 440 end 441 object Label11: TLabel 442 Left = 288 443 Top = 158 444 Width = 23 445 Height = 16 446 Caption = 'Psy' 440 447 end 441 448 object Button1: TButton -
Cheat Engine/aboutunit.pas
r298 r312 26 26 Label10: TLabel; 27 27 lblDBVM: TLabel; 28 Label11: TLabel; 28 29 procedure Button1Click(Sender: TObject); 29 30 procedure FormClose(Sender: TObject; var Action: TCloseAction); -
Cheat Engine/autoassembler.pas
r311 r312 419 419 begin 420 420 s1:=copy(currentline,a+1,b-a-1); 421 s2:=copy(currentline,b+1,c-b-1); 421 s2:=trim(copy(currentline,b+1,c-b-1)); 422 422 423 testdword:= symhandler.getAddressFromName(s1,false); 423 424 424 425 setlength(bytes,0); 425 ConvertStringToBytes(s2, true, bytes); 426 try 427 ConvertStringToBytes(s2, true, bytes); 428 except 429 raise exception.create(s2+' is not a valid bytestring'); 430 end; 431 426 432 if length(bytes)>0 then 427 433 begin 428 434 getmem(bytebuf,length(bytes)); 429 if ReadProcessMemory(processhandle, pointer(testdword), bytebuf, length(bytes),x) then 430 begin 431 try 432 for j:=0 to length(bytes)-1 do 433 begin 434 if bytes[j]>=0 then 435 if byte(bytes[j])<>bytebuf[j] then 436 raise exception.Create('The bytes at '+s1+' are not what was expected'); 437 end; 438 finally 439 freemem(bytebuf); 440 end; 441 end else raise exception.Create('The memory at +'+s1+' can not be read'); 435 try 436 if ReadProcessMemory(processhandle, pointer(testdword), bytebuf, length(bytes),x) then 437 begin 438 439 for j:=0 to length(bytes)-1 do 440 begin 441 if bytes[j]>=0 then 442 if byte(bytes[j])<>bytebuf[j] then 443 raise exception.Create('The bytes at '+s1+' are not what was expected'); 444 end; 445 end else raise exception.Create('The memory at +'+s1+' can not be read'); 446 finally 447 freemem(bytebuf); 448 end; 442 449 443 450 end 444 451 else raise exception.Create(s2+' is not a valid bytestring'); 445 452 446 447 448 setlength(assemblerlines,length(assemblerlines)-1);449 continue;450 453 end 451 454 else 452 raise exception.Create('Wrong syntax. ASSERT(address,bytes)'); 453 end; 455 raise exception.Create('Wrong syntax. ASSERT(address,11 22 33 ** 55 66)'); 456 end; 457 458 setlength(assemblerlines,length(assemblerlines)-1); 459 continue; 454 460 end; 455 461 … … 713 719 begin 714 720 s1:=copy(currentline,a+1,b-a-1); 715 s2:= copy(currentline,b+1,c-b-1);721 s2:=trim(copy(currentline,b+1,c-b-1)); 716 722 717 723 //s1=varname -
Cheat Engine/cheatengine.dof
r311 r312 189 189 MinorVer=6 190 190 Release=0 191 Build=5 5191 Build=56 192 192 Debug=0 193 193 PreRelease=1 … … 200 200 CompanyName= 201 201 FileDescription=Cheat Engine 5.6 202 FileVersion=5.6.0.5 5202 FileVersion=5.6.0.56 203 203 InternalName=CheatEngine 204 204 LegalCopyright=none -
Cheat Engine/cheatengine.drc
r311 r312 9 9 */ 10 10 11 #define AdvancedOptionsUnit_strCode6494412 #define AdvancedOptionsUnit_strFindWhatCodeaccesses6494513 #define AdvancedOptionsUnit_strFindWhatCodeReads6494614 #define AdvancedOptionsUnit_strFindWhatCodeWrites6494715 #define AdvancedOptionsUnit_strcouldntrestorecode6494816 #define AdvancedOptionsUnit_strnotthesame6494917 #define AdvancedOptionsUnit_strcouldntwrite6495018 #define AdvancedOptionsUnit_StrSelectExeFor3D6495119 #define AdvancedOptionsUnit_StrSelectExeForOpenGL3D6495220 #define formsettingsunit_strProcessWatcherWillPreventUnloader6495321 #define FoundCodeUnit_strClose6495422 #define MainUnit_str Incorrectspeed6496023 #define MainUnit_str CantSetSpeed6496124 #define MainUnit_str HyperscanFailed6496225 #define MainUnit_str UnknownExtension6496326 #define MainUnit_str CustomScanConfig6496427 #define frmFindstaticsUnit_strScan6496528 #define frmFindstaticsUnit_strStop6496629 #define frmFindstaticsUnit_strStopping6496730 #define frmLoadMemoryunit_strinvalidfile6496831 #define AdvancedOptionsUnit_strnotreadable6496932 #define AdvancedOptionsUnit_strNotWhatitshouldbe6497033 #define AdvancedOptionsUnit_stralreadyinthelist6497134 #define AdvancedOptionsUnit_strPartOfOpcodeInTheList6497235 #define AdvancedOptionsUnit_strCECode6497336 #define AdvancedOptionsUnit_strNameCECode6497437 #define AdvancedOptionsUnit_strChangeOf6497538 #define MainUnit_str FindWhatWritesToPointer6497639 #define MainUnit_str FindWhatWritesToPointer26497740 #define MainUnit_str cantdebugnow6497841 #define MainUnit_str pointercantberead6497942 #define MainUnit_str confirmUndo6498043 #define MainUnit_str HideForeground6498144 #define MainUnit_str HideAll6498245 #define MainUnit_str UnHideForeground6498346 #define MainUnit_str UnhideAll6498447 #define MainUnit_str happybirthday6498548 #define MainUnit_str XMess6498649 #define MainUnit_str Newyear6498750 #define MainUnit_str future6498851 #define MainUnit_str dontbother6498952 #define MainUnit_str needdebugger6499053 #define MainUnit_str failuretosetspeed6499154 #define MainUnit_str alreadyin 6499255 #define MainUnit_str alreadyinlistmultiple 6499356 #define MainUnit_str sethotkey6499457 #define MainUnit_str showasdecimal6499558 #define MainUnit_str showashex6499659 #define MainUnit_str FreezeAddressInList6499760 #define MainUnit_str FreezeAllAddresses6499861 #define MainUnit_str UnfreezeAllAddresses6499962 #define MainUnit_str UnfreezeAddressInList6500063 #define MainUnit_str DeleteAddress6500164 #define MainUnit_str RecalculateAddress6500265 #define MainUnit_str RecalculateSelectedAddresses6500366 #define MainUnit_str RecalculateAllAddresses 6500467 #define MainUnit_str RemoveFromGroup6500568 #define MainUnit_str EnableCheat6500669 #define MainUnit_strD isableCheat6500770 #define MainUnit_strA dd06500871 #define MainUnit_str NotAValidNotation6500972 #define MainUnit_strNo tSameAmmountofBytes6501073 #define MainUnit_str NotAValidBinaryNotation6501174 #define MainUnit_str Value6501275 #define MainUnit_str Change1Value 6501376 #define MainUnit_str ChangeMoreValues6501477 #define MainUnit_str Delete1Address6501578 #define MainUnit_str DeleteMultipleAddresses6501679 #define MainUnit_str Delete1Group6501780 #define MainUnit_str DeleteMoreGroups 6501881 #define MainUnit_str SelectedAddressIsAPointer6501982 #define MainUnit_str MorePointers6502083 #define MainUnit_str MorePointers26502184 #define MainUnit_str NotAValidValue6502285 #define MainUnit_str deleteall6502386 #define MainUnit _strsearchForText6502487 #define MainUnit _strSearchForArray6502588 #define MainUnit _strConfirmProcessTermination6502689 #define MainUnit _strError6502790 #define MainUnit _strErrorwhileOpeningProcess6502891 #define MainUnit _strKeepList6502992 #define MainUnit _strInfoAboutTable6503093 #define MainUnit _strPhysicalMemory6503194 #define MainUnit _strfillInSomething6503295 #define MainUnit _strFirstSelectAProcess6503396 #define MainUnit _strCantdoNextScan 6503497 #define MainUnit _strClickToGoHome6503598 #define MainUnit_strChangeDescription16503699 #define MainUnit_str ChangeDescription265037100 #define MainUnit_str NotTheSameSize165038101 #define MainUnit_str NotTheSameSize265039102 #define SynEditStrConst_SYNS_EDuplicateShortcut65040103 #define SynEditStrConst_SYNS_FilterPascal65041104 #define SynEditStrConst_SYNS_FilterCPP65042105 #define SynEditStrConst_SYNS_LangCPP65043106 #define SynEditStrConst_SYNS_LangPascal65044107 #define SynEditTextBuffer_SListIndexOutOfBounds65045108 #define SynEditTextBuffer_SInvalidCapacity65046109 #define MainUnit _strWindowFailedToHide65047110 #define MainUnit _strAccessed65048111 #define MainUnit _strOpcodeChanged65049112 #define MainUnit _strAllowNegative65050113 #define MainUnit _strAllowPositive65051114 #define MainUnit _strNormalFreeze65052115 #define MainUnit _strAskToSave65053116 #define MainUnit _strScantextcaptiontotext 65054117 #define MainUnit _strScantextcaptiontoValue 65055118 #define SynEditStrConst_SYNS_AttrAssembler65056119 #define SynEditStrConst_SYNS_AttrCharacter65057120 #define SynEditStrConst_SYNS_AttrComment65058121 #define SynEditStrConst_SYNS_AttrFloat65059122 #define SynEditStrConst_SYNS_AttrHexadecimal65060123 #define SynEditStrConst_SYNS_AttrIdentifier65061124 #define SynEditStrConst_SYNS_AttrIllegalChar65062125 #define SynEditStrConst_SYNS_AttrNumber65063126 #define SynEditStrConst_SYNS_AttrOctal65064127 #define SynEditStrConst_SYNS_AttrPreprocessor65065128 #define SynEditStrConst_SYNS_AttrReservedWord65066129 #define SynEditStrConst_SYNS_AttrSpace65067130 #define SynEditStrConst_SYNS_AttrString65068131 #define SynEditStrConst_SYNS_AttrSymbol65069132 #define SynEditStrConst_SYNS_ScrollInfoFmt65070133 #define SynEditStrConst_SYNS_ScrollInfoFmtTop65071134 #define MainUnit2_strIncreasedValue65072135 #define MainUnit2_strIncreasedValueBy65073136 #define MainUnit2_strDecreasedValue65074137 #define MainUnit2_strDecreasedValueBy65075138 #define MainUnit2_strValueBetween65076139 #define MainUnit2_strChangedValue65077140 #define MainUnit2_strUnchangedValue65078141 #define MainUnit2_strUnknownInitialValue65079142 #define MainUnit2_strSameAsFirstScan65080143 #define MainUnit2_strtoolong65081144 #define OpenSave_strunknowncomponent65082145 #define OpenSave_strCorruptIcon65083146 #define OpenSave_strCantLoadFilepatcher65084147 #define OpenSave_strNotACETrainer65085148 #define OpenSave_strUnknownTrainerVersion65086149 #define OpenSave_strCantLoadProtectedfile6508711 #define MainUnit_strXMess 64944 12 #define MainUnit_strNewyear 64945 13 #define MainUnit_strfuture 64946 14 #define MainUnit_strdontbother 64947 15 #define MainUnit_strneeddebugger 64948 16 #define MainUnit_strfailuretosetspeed 64949 17 #define MainUnit_strIncorrectspeed 64950 18 #define MainUnit_strCantSetSpeed 64951 19 #define MainUnit_strHyperscanFailed 64952 20 #define MainUnit_strUnknownExtension 64953 21 #define MainUnit_strCustomScanConfig 64954 22 #define MainUnit_strRecalculateAddress 64960 23 #define MainUnit_strRecalculateSelectedAddresses 64961 24 #define MainUnit_strRecalculateAllAddresses 64962 25 #define MainUnit_strRemoveFromGroup 64963 26 #define MainUnit_strEnableCheat 64964 27 #define MainUnit_strDisableCheat 64965 28 #define MainUnit_strFindWhatWritesToPointer 64966 29 #define MainUnit_strFindWhatWritesToPointer2 64967 30 #define MainUnit_strcantdebugnow 64968 31 #define MainUnit_strpointercantberead 64969 32 #define MainUnit_strconfirmUndo 64970 33 #define MainUnit_strHideForeground 64971 34 #define MainUnit_strHideAll 64972 35 #define MainUnit_strUnHideForeground 64973 36 #define MainUnit_strUnhideAll 64974 37 #define MainUnit_strhappybirthday 64975 38 #define MainUnit_strDeleteMoreGroups 64976 39 #define MainUnit_strSelectedAddressIsAPointer 64977 40 #define MainUnit_strMorePointers 64978 41 #define MainUnit_strMorePointers2 64979 42 #define MainUnit_strNotAValidValue 64980 43 #define MainUnit_strdeleteall 64981 44 #define MainUnit_stralreadyin 64982 45 #define MainUnit_stralreadyinlistmultiple 64983 46 #define MainUnit_strsethotkey 64984 47 #define MainUnit_strshowasdecimal 64985 48 #define MainUnit_strshowashex 64986 49 #define MainUnit_strFreezeAddressInList 64987 50 #define MainUnit_strFreezeAllAddresses 64988 51 #define MainUnit_strUnfreezeAllAddresses 64989 52 #define MainUnit_strUnfreezeAddressInList 64990 53 #define MainUnit_strDeleteAddress 64991 54 #define MainUnit_strCantdoNextScan 64992 55 #define MainUnit_strClickToGoHome 64993 56 #define MainUnit_strChangeDescription1 64994 57 #define MainUnit_strChangeDescription2 64995 58 #define MainUnit_strNotTheSameSize1 64996 59 #define MainUnit_strNotTheSameSize2 64997 60 #define MainUnit_strAdd0 64998 61 #define MainUnit_strNotAValidNotation 64999 62 #define MainUnit_strNotSameAmmountofBytes 65000 63 #define MainUnit_strNotAValidBinaryNotation 65001 64 #define MainUnit_strValue 65002 65 #define MainUnit_strChange1Value 65003 66 #define MainUnit_strChangeMoreValues 65004 67 #define MainUnit_strDelete1Address 65005 68 #define MainUnit_strDeleteMultipleAddresses 65006 69 #define MainUnit_strDelete1Group 65007 70 #define MainUnit_strAllowNegative 65008 71 #define MainUnit_strAllowPositive 65009 72 #define MainUnit_strNormalFreeze 65010 73 #define MainUnit_strAskToSave 65011 74 #define MainUnit_strScantextcaptiontotext 65012 75 #define MainUnit_strScantextcaptiontoValue 65013 76 #define MainUnit_strsearchForText 65014 77 #define MainUnit_strSearchForArray 65015 78 #define MainUnit_strConfirmProcessTermination 65016 79 #define MainUnit_strError 65017 80 #define MainUnit_strErrorwhileOpeningProcess 65018 81 #define MainUnit_strKeepList 65019 82 #define MainUnit_strInfoAboutTable 65020 83 #define MainUnit_strPhysicalMemory 65021 84 #define MainUnit_strfillInSomething 65022 85 #define MainUnit_strFirstSelectAProcess 65023 86 #define MainUnit2_strbiggerThan 65024 87 #define MainUnit2_strSmallerThan 65025 88 #define MainUnit2_strIncreasedValue 65026 89 #define MainUnit2_strIncreasedValueBy 65027 90 #define MainUnit2_strDecreasedValue 65028 91 #define MainUnit2_strDecreasedValueBy 65029 92 #define MainUnit2_strValueBetween 65030 93 #define MainUnit2_strChangedValue 65031 94 #define MainUnit2_strUnchangedValue 65032 95 #define MainUnit2_strUnknownInitialValue 65033 96 #define MainUnit2_strSameAsFirstScan 65034 97 #define MainUnit2_strtoolong 65035 98 #define FoundCodeUnit_strClose 65036 99 #define MainUnit_strWindowFailedToHide 65037 100 #define MainUnit_strAccessed 65038 101 #define MainUnit_strOpcodeChanged 65039 102 #define AdvancedOptionsUnit_strcouldntwrite 65040 103 #define AdvancedOptionsUnit_StrSelectExeFor3D 65041 104 #define AdvancedOptionsUnit_StrSelectExeForOpenGL3D 65042 105 #define formsettingsunit_strProcessWatcherWillPreventUnloader 65043 106 #define MainUnit2_strStart 65044 107 #define MainUnit2_strStop 65045 108 #define MainUnit2_strOK 65046 109 #define MainUnit2_strBug 65047 110 #define MainUnit2_strAutoAssemble 65048 111 #define MainUnit2_strAddressHasToBeReadable 65049 112 #define MainUnit2_strNewScan 65050 113 #define MainUnit2_strFirstScan 65051 114 #define MainUnit2_strNoDescription 65052 115 #define MainUnit2_strNeedNewerWindowsVersion 65053 116 #define MainUnit2_strexact 65054 117 #define MainUnit2_strexactvalue 65055 118 #define frmFindstaticsUnit_strStop 65056 119 #define frmFindstaticsUnit_strStopping 65057 120 #define frmLoadMemoryunit_strinvalidfile 65058 121 #define AdvancedOptionsUnit_strnotreadable 65059 122 #define AdvancedOptionsUnit_strNotWhatitshouldbe 65060 123 #define AdvancedOptionsUnit_stralreadyinthelist 65061 124 #define AdvancedOptionsUnit_strPartOfOpcodeInTheList 65062 125 #define AdvancedOptionsUnit_strCECode 65063 126 #define AdvancedOptionsUnit_strNameCECode 65064 127 #define AdvancedOptionsUnit_strChangeOf 65065 128 #define AdvancedOptionsUnit_strCode 65066 129 #define AdvancedOptionsUnit_strFindWhatCodeaccesses 65067 130 #define AdvancedOptionsUnit_strFindWhatCodeReads 65068 131 #define AdvancedOptionsUnit_strFindWhatCodeWrites 65069 132 #define AdvancedOptionsUnit_strcouldntrestorecode 65070 133 #define AdvancedOptionsUnit_strnotthesame 65071 134 #define SynEditStrConst_SYNS_AttrOctal 65072 135 #define SynEditStrConst_SYNS_AttrPreprocessor 65073 136 #define SynEditStrConst_SYNS_AttrReservedWord 65074 137 #define SynEditStrConst_SYNS_AttrSpace 65075 138 #define SynEditStrConst_SYNS_AttrString 65076 139 #define SynEditStrConst_SYNS_AttrSymbol 65077 140 #define SynEditStrConst_SYNS_ScrollInfoFmt 65078 141 #define SynEditStrConst_SYNS_ScrollInfoFmtTop 65079 142 #define SynEditStrConst_SYNS_EDuplicateShortcut 65080 143 #define SynEditStrConst_SYNS_FilterPascal 65081 144 #define SynEditStrConst_SYNS_FilterCPP 65082 145 #define SynEditStrConst_SYNS_LangCPP 65083 146 #define SynEditStrConst_SYNS_LangPascal 65084 147 #define SynEditTextBuffer_SListIndexOutOfBounds 65085 148 #define SynEditTextBuffer_SInvalidCapacity 65086 149 #define frmFindstaticsUnit_strScan 65087 150 150 #define XMLConst_SMissingFileName 65088 151 151 #define XMLConst_SLine 65089 152 #define MainUnit2_strStart 65090153 #define MainUnit2_strStop65091154 #define MainUnit2_strOK65092155 #define MainUnit2_strBug65093156 #define MainUnit2_strAutoAssemble65094157 #define MainUnit2_strAddressHasToBeReadable 65095158 #define MainUnit2_strNewScan65096159 #define MainUnit2_strFirstScan65097160 #define MainUnit2_strNoDescription65098161 #define MainUnit2_strNeedNewerWindowsVersion65099162 #define MainUnit2_strexact65100163 #define MainUnit2_strexactvalue65101164 #define MainUnit2_strbiggerThan65102165 #define MainUnit2_strSmallerThan65103152 #define OpenSave_strunknowncomponent 65090 153 #define OpenSave_strCorruptIcon 65091 154 #define OpenSave_strCantLoadFilepatcher 65092 155 #define OpenSave_strNotACETrainer 65093 156 #define OpenSave_strUnknownTrainerVersion 65094 157 #define OpenSave_strCantLoadProtectedfile 65095 158 #define SynEditStrConst_SYNS_AttrAssembler 65096 159 #define SynEditStrConst_SYNS_AttrCharacter 65097 160 #define SynEditStrConst_SYNS_AttrComment 65098 161 #define SynEditStrConst_SYNS_AttrFloat 65099 162 #define SynEditStrConst_SYNS_AttrHexadecimal 65100 163 #define SynEditStrConst_SYNS_AttrIdentifier 65101 164 #define SynEditStrConst_SYNS_AttrIllegalChar 65102 165 #define SynEditStrConst_SYNS_AttrNumber 65103 166 166 #define XMLConst_SDuplicateRegistration 65104 167 167 #define XMLConst_SNoMatchingDOMVendor 65105 … … 598 598 STRINGTABLE 599 599 BEGIN 600 AdvancedOptionsUnit_strCode, "Code :" 601 AdvancedOptionsUnit_strFindWhatCodeaccesses, "Find out what addresses this code accesses" 602 AdvancedOptionsUnit_strFindWhatCodeReads, "Find out what addresses this code reads from" 603 AdvancedOptionsUnit_strFindWhatCodeWrites, "Find out what addresses this code writes to" 604 AdvancedOptionsUnit_strcouldntrestorecode, "Error when trying to restore this code!" 605 AdvancedOptionsUnit_strnotthesame, "The memory at this address isn't what it should be! Continue?" 606 AdvancedOptionsUnit_strcouldntwrite, "The memory at this address couldn't be written" 607 AdvancedOptionsUnit_StrSelectExeFor3D, "Select the executable of the Direct-3D game" 608 AdvancedOptionsUnit_StrSelectExeForOpenGL3D, "Select the executable of the OpenGL game" 609 formsettingsunit_strProcessWatcherWillPreventUnloader, "Enabling the process watcher will prevent the unloader from working" 610 FoundCodeUnit_strClose, "Close" 600 MainUnit_strXMess, "Merry christmas and happy new year" 601 MainUnit_strNewyear, "And what are your good intentions for this year? ;-)" 602 MainUnit_strfuture, "Wow,I never imagined people would use Cheat Engine up to today" 603 MainUnit_strdontbother, "Don't even bother. Cheat Engine uses the main thread to receive messages when the scan is done, freeze it and CE will crash!" 604 MainUnit_strneeddebugger, "To use this option the debugger must be attached to the game" 605 MainUnit_strfailuretosetspeed, "Failure to set the speed" 611 606 MainUnit_strIncorrectspeed, "The speed value is incorrect" 612 607 MainUnit_strCantSetSpeed, "I can't set this speed. (must be bigger than 0)" … … 614 609 MainUnit_strUnknownExtension, "Unknown extension" 615 610 MainUnit_strCustomScanConfig, "Custom scan config" 616 frmFindstaticsUnit_strScan, "Scan" 617 frmFindstaticsUnit_strStop, "Stop" 618 frmFindstaticsUnit_strStopping, "Stopping..." 619 frmLoadMemoryunit_strinvalidfile, "This is a invalid memory region file. I'll assume this file has no header data" 620 AdvancedOptionsUnit_strnotreadable, "This address is not readable" 621 AdvancedOptionsUnit_strNotWhatitshouldbe, "The memory at this address is'nt what it should be! Continue?" 622 AdvancedOptionsUnit_stralreadyinthelist, "This byte is already part of another opcode already present in the list" 623 AdvancedOptionsUnit_strPartOfOpcodeInTheList, "At least one of these bytes is already in the list" 624 AdvancedOptionsUnit_strCECode, "Cheat Engine code:" 625 AdvancedOptionsUnit_strNameCECode, "What name do you want to give this code?" 626 AdvancedOptionsUnit_strChangeOf, "Change of " 611 MainUnit_strRecalculateAddress, "Recalculate address" 612 MainUnit_strRecalculateSelectedAddresses, "Recalculate selected addresses" 613 MainUnit_strRecalculateAllAddresses, "Recalculate all addresses" 614 MainUnit_strRemoveFromGroup, "Remove from group " 615 MainUnit_strEnableCheat, "Enable cheat" 616 MainUnit_strDisableCheat, "Disable cheat" 627 617 MainUnit_strFindWhatWritesToPointer, "Find out what writes to this pointer" 628 618 MainUnit_strFindWhatWritesToPointer2, "Find what reads from the address pointed at by this pointer" … … 635 625 MainUnit_strUnhideAll, "will bring all windows back" 636 626 MainUnit_strhappybirthday, "Let's sing Happy Birthday for Dark Byte today!" 637 MainUnit_str XMess, "Merry christmas and happy new year"638 MainUnit_str Newyear, "And what are your good intentions for this year? ;-)"639 MainUnit_str future, "Wow,I never imagined people would use Cheat Engine up to today"640 MainUnit_str dontbother, "Don't even bother. Cheat Engine uses the main thread to receive messages when the scan is done, freeze it and CE will crash!"641 MainUnit_str needdebugger, "To use this option the debugger must be attached to the game"642 MainUnit_str failuretosetspeed, "Failure to set the speed"627 MainUnit_strDeleteMoreGroups, "Also delete the groups of the addresses you selected?" 628 MainUnit_strSelectedAddressIsAPointer, "The selected address is a pointer. Are you sure? (the base pointer will get the address)" 629 MainUnit_strMorePointers, "There are more pointers selected. Do you want to change them as well?" 630 MainUnit_strMorePointers2, "You have selected one or more pointers. Do you want to change them as well?" 631 MainUnit_strNotAValidValue, "This is not an valid value" 632 MainUnit_strdeleteall, "Are you sure you want to delete all addresses?" 643 633 MainUnit_stralreadyin, "This address is already in the list" 644 634 MainUnit_stralreadyinlistmultiple, "One or more addresses where already in the list" … … 651 641 MainUnit_strUnfreezeAddressInList, "Unfreeze the address in this list" 652 642 MainUnit_strDeleteAddress, "Delete this address" 653 MainUnit_str RecalculateAddress, "Recalculate address"654 MainUnit_str RecalculateSelectedAddresses, "Recalculate selected addresses"655 MainUnit_str RecalculateAllAddresses, "Recalculate all addresses"656 MainUnit_str RemoveFromGroup, "Remove from group"657 MainUnit_str EnableCheat, "Enable cheat"658 MainUnit_str DisableCheat, "Disable cheat"643 MainUnit_strCantdoNextScan, "You can't do a Next Scan with the current selected way of scanning!" 644 MainUnit_strClickToGoHome, "Click here to go to the Cheat Engine homepage" 645 MainUnit_strChangeDescription1, "Description" 646 MainUnit_strChangeDescription2, "Change the description to:" 647 MainUnit_strNotTheSameSize1, "The text you entered isn't the same size as the original. Continue?" 648 MainUnit_strNotTheSameSize2, "Not the same size!" 659 649 MainUnit_strAdd0, "Do you want to add a '0'-terminator at the end?" 660 650 MainUnit_strNotAValidNotation, "This is not a valid notation" … … 667 657 MainUnit_strDeleteMultipleAddresses, "Delete these addresses?" 668 658 MainUnit_strDelete1Group, "Also delete the group this address is a member of?" 669 MainUnit_str DeleteMoreGroups, "Also delete the groups of the addresses you selected?"670 MainUnit_str SelectedAddressIsAPointer, "The selected address is a pointer. Are you sure? (the base pointer will get the address)"671 MainUnit_str MorePointers, "There are more pointers selected. Do you want to change them as well?"672 MainUnit_str MorePointers2, "You have selected one or more pointers. Do you want to change them as well?"673 MainUnit_str NotAValidValue, "This is not an valid value"674 MainUnit_str deleteall, "Are you sure you want to delete all addresses?"659 MainUnit_strAllowNegative, "Allow negative changes" 660 MainUnit_strAllowPositive, "Allow positive changes" 661 MainUnit_strNormalFreeze, "Don't allow any change" 662 MainUnit_strAskToSave, "You haven't saved your last changes yet. Save Now?" 663 MainUnit_strScantextcaptiontotext, "Text:" 664 MainUnit_strScantextcaptiontoValue, "Value:" 675 665 MainUnit_strsearchForText, "Search for text" 676 666 MainUnit_strSearchForArray, "Search for this array" … … 683 673 MainUnit_strfillInSomething, "Please fill in something!" 684 674 MainUnit_strFirstSelectAProcess, "First select a process" 685 MainUnit_strCantdoNextScan, "You can't do a Next Scan with the current selected way of scanning!" 686 MainUnit_strClickToGoHome, "Click here to go to the Cheat Engine homepage" 687 MainUnit_strChangeDescription1, "Description" 688 MainUnit_strChangeDescription2, "Change the description to:" 689 MainUnit_strNotTheSameSize1, "The text you entered isn't the same size as the original. Continue?" 690 MainUnit_strNotTheSameSize2, "Not the same size!" 691 SynEditStrConst_SYNS_EDuplicateShortcut, "Shortcut already exists" 692 SynEditStrConst_SYNS_FilterPascal, "Pascal Files (*.pas;*.pp;*.dpr;*.dpk;*.inc)|*.pas;*.pp;*.dpr;*.dpk;*.inc" 693 SynEditStrConst_SYNS_FilterCPP, "C/C++ Files (*.c;*.cpp;*.h;*.hpp)|*.c;*.cpp;*.h;*.hpp" 694 SynEditStrConst_SYNS_LangCPP, "C/C++" 695 SynEditStrConst_SYNS_LangPascal, "Object Pascal" 696 SynEditTextBuffer_SListIndexOutOfBounds, "Invalid stringlist index %d" 697 SynEditTextBuffer_SInvalidCapacity, "Stringlist capacity cannot be smaller than count" 698 MainUnit_strWindowFailedToHide, "A window failed to hide" 699 MainUnit_strAccessed, "The following opcodes accessed the selected address" 700 MainUnit_strOpcodeChanged, "The following opcodes changed the selected address" 701 MainUnit_strAllowNegative, "Allow negative changes" 702 MainUnit_strAllowPositive, "Allow positive changes" 703 MainUnit_strNormalFreeze, "Don't allow any change" 704 MainUnit_strAskToSave, "You haven't saved your last changes yet. Save Now?" 705 MainUnit_strScantextcaptiontotext, "Text:" 706 MainUnit_strScantextcaptiontoValue, "Value:" 707 SynEditStrConst_SYNS_AttrAssembler, "Assembler" 708 SynEditStrConst_SYNS_AttrCharacter, "Character" 709 SynEditStrConst_SYNS_AttrComment, "Comment" 710 SynEditStrConst_SYNS_AttrFloat, "Float" 711 SynEditStrConst_SYNS_AttrHexadecimal, "Hexadecimal" 712 SynEditStrConst_SYNS_AttrIdentifier, "Identifier" 713 SynEditStrConst_SYNS_AttrIllegalChar, "Illegal Char" 714 SynEditStrConst_SYNS_AttrNumber, "Number" 715 SynEditStrConst_SYNS_AttrOctal, "Octal" 716 SynEditStrConst_SYNS_AttrPreprocessor, "Preprocessor" 717 SynEditStrConst_SYNS_AttrReservedWord, "Reserved Word" 718 SynEditStrConst_SYNS_AttrSpace, "Space" 719 SynEditStrConst_SYNS_AttrString, "String" 720 SynEditStrConst_SYNS_AttrSymbol, "Symbol" 721 SynEditStrConst_SYNS_ScrollInfoFmt, "%d - %d" 722 SynEditStrConst_SYNS_ScrollInfoFmtTop, "Top Line: %d" 675 MainUnit2_strbiggerThan, "Bigger than..." 676 MainUnit2_strSmallerThan, "Smaller than..." 723 677 MainUnit2_strIncreasedValue, "Increased value" 724 678 MainUnit2_strIncreasedValueBy, "Increased value by ..." … … 731 685 MainUnit2_strSameAsFirstScan, "Same as first scan" 732 686 MainUnit2_strtoolong, "Too long" 733 OpenSave_strunknowncomponent, "There is a unknown component in the trainer! compnr="734 OpenSave_strCorruptIcon, "The icon has been corrupted"735 OpenSave_strCantLoadFilepatcher, "The file patcher can't be loaded by Cheat Engine!"736 OpenSave_strNotACETrainer, "This is not a trainer made by Cheat Engine (If it is a trainer at all!)"737 OpenSave_strUnknownTrainerVersion, "This version of Cheat Engine doesn't know how to read this trainer! Trainerversion="738 OpenSave_strCantLoadProtectedfile, "This trainer is protected from being opened by CE. Now go away!!!"739 XMLConst_SMissingFileName, "FileName cannot be blank"740 XMLConst_SLine, "Line"687 FoundCodeUnit_strClose, "Close" 688 MainUnit_strWindowFailedToHide, "A window failed to hide" 689 MainUnit_strAccessed, "The following opcodes accessed the selected address" 690 MainUnit_strOpcodeChanged, "The following opcodes changed the selected address" 691 AdvancedOptionsUnit_strcouldntwrite, "The memory at this address couldn't be written" 692 AdvancedOptionsUnit_StrSelectExeFor3D, "Select the executable of the Direct-3D game" 693 AdvancedOptionsUnit_StrSelectExeForOpenGL3D, "Select the executable of the OpenGL game" 694 formsettingsunit_strProcessWatcherWillPreventUnloader, "Enabling the process watcher will prevent the unloader from working" 741 695 MainUnit2_strStart, "Start" 742 696 MainUnit2_strStop, "Stop" … … 751 705 MainUnit2_strexact, "Exact" 752 706 MainUnit2_strexactvalue, "Exact Value" 753 MainUnit2_strbiggerThan, "Bigger than..." 754 MainUnit2_strSmallerThan, "Smaller than..." 707 frmFindstaticsUnit_strStop, "Stop" 708 frmFindstaticsUnit_strStopping, "Stopping..." 709 frmLoadMemoryunit_strinvalidfile, "This is a invalid memory region file. I'll assume this file has no header data" 710 AdvancedOptionsUnit_strnotreadable, "This address is not readable" 711 AdvancedOptionsUnit_strNotWhatitshouldbe, "The memory at this address is'nt what it should be! Continue?" 712 AdvancedOptionsUnit_stralreadyinthelist, "This byte is already part of another opcode already present in the list" 713 AdvancedOptionsUnit_strPartOfOpcodeInTheList, "At least one of these bytes is already in the list" 714 AdvancedOptionsUnit_strCECode, "Cheat Engine code:" 715 AdvancedOptionsUnit_strNameCECode, "What name do you want to give this code?" 716 AdvancedOptionsUnit_strChangeOf, "Change of " 717 AdvancedOptionsUnit_strCode, "Code :" 718 AdvancedOptionsUnit_strFindWhatCodeaccesses, "Find out what addresses this code accesses" 719 AdvancedOptionsUnit_strFindWhatCodeReads, "Find out what addresses this code reads from" 720 AdvancedOptionsUnit_strFindWhatCodeWrites, "Find out what addresses this code writes to" 721 AdvancedOptionsUnit_strcouldntrestorecode, "Error when trying to restore this code!" 722 AdvancedOptionsUnit_strnotthesame, "The memory at this address isn't what it should be! Continue?" 723 SynEditStrConst_SYNS_AttrOctal, "Octal" 724 SynEditStrConst_SYNS_AttrPreprocessor, "Preprocessor" 725 SynEditStrConst_SYNS_AttrReservedWord, "Reserved Word" 726 SynEditStrConst_SYNS_AttrSpace, "Space" 727 SynEditStrConst_SYNS_AttrString, "String" 728 SynEditStrConst_SYNS_AttrSymbol, "Symbol" 729 SynEditStrConst_SYNS_ScrollInfoFmt, "%d - %d" 730 SynEditStrConst_SYNS_ScrollInfoFmtTop, "Top Line: %d" 731 SynEditStrConst_SYNS_EDuplicateShortcut, "Shortcut already exists" 732 SynEditStrConst_SYNS_FilterPascal, "Pascal Files (*.pas;*.pp;*.dpr;*.dpk;*.inc)|*.pas;*.pp;*.dpr;*.dpk;*.inc" 733 SynEditStrConst_SYNS_FilterCPP, "C/C++ Files (*.c;*.cpp;*.h;*.hpp)|*.c;*.cpp;*.h;*.hpp" 734 SynEditStrConst_SYNS_LangCPP, "C/C++" 735 SynEditStrConst_SYNS_LangPascal, "Object Pascal" 736 SynEditTextBuffer_SListIndexOutOfBounds, "Invalid stringlist index %d" 737 SynEditTextBuffer_SInvalidCapacity, "Stringlist capacity cannot be smaller than count" 738 frmFindstaticsUnit_strScan, "Scan" 739 XMLConst_SMissingFileName, "FileName cannot be blank" 740 XMLConst_SLine, "Line" 741 OpenSave_strunknowncomponent, "There is a unknown component in the trainer! compnr=" 742 OpenSave_strCorruptIcon, "The icon has been corrupted" 743 OpenSave_strCantLoadFilepatcher, "The file patcher can't be loaded by Cheat Engine!" 744 OpenSave_strNotACETrainer, "This is not a trainer made by Cheat Engine (If it is a trainer at all!)" 745 OpenSave_strUnknownTrainerVersion, "This version of Cheat Engine doesn't know how to read this trainer! Trainerversion=" 746 OpenSave_strCantLoadProtectedfile, "This trainer is protected from being opened by CE. Now go away!!!" 747 SynEditStrConst_SYNS_AttrAssembler, "Assembler" 748 SynEditStrConst_SYNS_AttrCharacter, "Character" 749 SynEditStrConst_SYNS_AttrComment, "Comment" 750 SynEditStrConst_SYNS_AttrFloat, "Float" 751 SynEditStrConst_SYNS_AttrHexadecimal, "Hexadecimal" 752 SynEditStrConst_SYNS_AttrIdentifier, "Identifier" 753 SynEditStrConst_SYNS_AttrIllegalChar, "Illegal Char" 754 SynEditStrConst_SYNS_AttrNumber, "Number" 755 755 XMLConst_SDuplicateRegistration, "\"%s\" DOMImplementation already registered" 756 756 XMLConst_SNoMatchingDOMVendor, "No matching DOM Vendor: \"%s\"" -
Cheat Engine/disassembler.pas
r306 r312 9037 9037 i: integer; 9038 9038 begin 9039 result:=false; 9039 9040 hexcount:=0; 9040 for i:=length(d) downto 1 do 9041 for i:=length(d) downto 1 do 9041 9042 begin 9042 9043 if d[i] in ['a'..'f','A'..'F','0'..'9'] then … … 9046 9047 begin 9047 9048 //it has a 4 byte hexadecimal value 9048 hexstring:=copy('$'+d,i-6,8); 9049 hexstring:='$'+copy(d,i,8); 9050 result:=true; 9049 9051 exit; 9050 9052 end; … … 9084 9086 if has4ByteHexString(d,s) then 9085 9087 begin 9086 address:=strtoint( '$'+s);9088 address:=strtoint(s); //s already has the $ in front 9087 9089 result:=isAddress(address); 9088 9090 end; … … 9188 9190 fvalue: single; 9189 9191 fvalue2: double; 9190 tempbuf: array [0..1 6] of byte;9192 tempbuf: array [0..127] of byte; 9191 9193 9192 9194 pc: pchar; … … 9360 9362 5: 9361 9363 begin 9362 tempbuf[15]:=0; 9364 actualread:=0; 9365 ReadProcessMemory(processhandle, pointer(tempaddress), @tempbuf[0], 128, actualread); 9366 9367 tempbuf[127]:=0; 9368 tempbuf[126]:=ord('.'); 9369 tempbuf[125]:=ord('.'); 9370 tempbuf[124]:=ord('.'); 9371 9372 if actualread>0 then 9373 tempbuf[actualread-1]:=0; 9374 9363 9375 pc:=@tempbuf[0]; 9364 9376 ts:='"'+ pc+'"'; … … 9367 9379 6: 9368 9380 begin 9369 tempbuf[15]:=0; 9370 tempbuf[14]:=0; 9381 actualread:=0; 9382 ReadProcessMemory(processhandle, pointer(tempaddress), @tempbuf[0], 128, actualread); 9383 9384 tempbuf[127]:=0; 9385 tempbuf[126]:=0; 9386 9387 tempbuf[125]:=0; 9388 tempbuf[124]:=ord('.'); 9389 tempbuf[123]:=0; 9390 tempbuf[122]:=ord('.'); 9391 tempbuf[121]:=0; 9392 tempbuf[120]:=ord('.'); 9393 9394 if actualread>1 then 9395 begin 9396 tempbuf[actualread-1]:=0; 9397 tempbuf[actualread-2]:=0; 9398 end; 9399 9371 9400 pwc:=@tempbuf[0]; 9372 9401 ts:='""'+ pwc+'""'; -
Cheat Engine/disassemblerviewunit.pas
r301 r312 370 370 //not the selected address 371 371 372 if disassembleDescription.caption<>line.description then disassembleDescription.caption:=line.description;373 372 fSelectedAddress:=line.address; 374 373 … … 464 463 465 464 selstart, selstop: dword; 465 description: string; 466 x: dword; 466 467 begin 467 468 if (not symhandler.isloaded) and (not symhandler.haserror) then … … 515 516 516 517 fTotalvisibledisassemblerlines:=i; 518 519 x:=fSelectedAddress; 520 disassemble(x,description); 521 if disassembleDescription.caption<>description then disassembleDescription.caption:=description; 522 517 523 518 524 if ShowJumplines then -
Cheat Engine/frmHeapsUnit.dfm
r281 r312 2 2 Left = 408 3 3 Top = 186 4 Width = 2 204 Width = 253 5 5 Height = 316 6 6 BorderIcons = [biSystemMenu] … … 21 21 Left = 0 22 22 Top = 221 23 Width = 2 0223 Width = 235 24 24 Height = 50 25 25 Align = alBottom … … 27 27 TabOrder = 0 28 28 DesignSize = ( 29 2 0229 235 30 30 50) 31 31 object Button1: TButton 32 Left = 5432 Left = 70 33 33 Top = 10 34 34 Width = 92 … … 44 44 Left = 0 45 45 Top = 0 46 Width = 2 0246 Width = 235 47 47 Height = 221 48 48 Align = alClient … … 50 50 item 51 51 Caption = 'Address' 52 Width = 12 852 Width = 120 53 53 end 54 54 item -
Cheat Engine/frmHeapsUnit.pas
r309 r312 10 10 private 11 11 c: integer; 12 list: array [0.. 14] of record12 list: array [0..63] of record 13 13 address: dword; 14 14 size: integer; 15 15 end; 16 16 expanded: boolean; 17 procedure enumerateHeapList( memreclist: PMemRecTableArray; level: integer);17 procedure enumerateHeapList(const memreclist: PMemRecTableArray; level: integer); 18 18 procedure updatelist; 19 19 public … … 51 51 li: tlistitem; 52 52 begin 53 if GetCurrentThreadID <> MainThreadID then 54 exit; 55 53 56 if frmheaps<>nil then 54 57 begin … … 70 73 end; 71 74 72 procedure TFillHeapList.enumerateHeapList( memreclist: PMemRecTableArray; level: integer);75 procedure TFillHeapList.enumerateHeapList(const memreclist: PMemRecTableArray; level: integer); 73 76 var i: integer; 74 77 begin … … 85 88 list[c].size:=memreclist[i].memallocevent.HookEvent.HeapAllocEvent.Size; 86 89 inc(c); 87 if c=15 then 90 if c=64 then 91 begin 88 92 synchronize(updatelist); 93 sleep(100); 94 end; 89 95 end; 90 96 end; … … 99 105 end; 100 106 end; 107 108 101 109 end; 102 110 … … 107 115 begin 108 116 c:=0; 109 110 enumerateHeapList(@frmMemoryAllocHandler.HeapBaselevel, 0); 117 frmMemoryAllocHandler.memrecCS.Enter; 118 try 119 enumerateHeapList(@frmMemoryAllocHandler.HeapBaselevel, 0); 120 finally 121 frmMemoryAllocHandler.memrecCS.Leave; 122 end; 111 123 112 124 if c>0 then … … 116 128 procedure TfrmHeaps.FormClose(Sender: TObject; var Action: TCloseAction); 117 129 begin 118 fillthread.Terminate; 119 fillthread.WaitFor; 120 fillthread.Free; 121 130 if fillthread<>nil then 131 begin 132 fillthread.Terminate; 133 fillthread.WaitFor; 134 fillthread.Free; 135 end; 136 122 137 action:=caFree; 123 138 frmheaps:=nil; … … 127 142 begin 128 143 if frmMemoryAllocHandler=nil then 129 frmMemoryAllocHandler:=TfrmMemoryAllocHandler.Create( self); //just not show144 frmMemoryAllocHandler:=TfrmMemoryAllocHandler.Create(memorybrowser); //just not show 130 145 131 frmMemoryAllocHandler.WaitForInitializationToFinish; 146 if frmMemoryAllocHandler.WaitForInitializationToFinish then 147 begin 148 //start the thread that enumerates the heaplist 149 button1.Left:=(clientwidth div 2) - (button1.Width div 2); 132 150 133 //start the thread that enumerates the heaplist 134 button1.Left:=(clientwidth div 2) - (button1.Width div 2); 135 136 fillthread:=TFillHeapList.Create(false); 151 fillthread:=TFillHeapList.Create(false); 152 end; 137 153 end; 138 154 -
Cheat Engine/frmMemoryAllocHandlerUnit.pas
r309 r312 226 226 227 227 if addresslist=@frmMemoryAllocHandler.HeapBaselevel then 228 dec(heapcount);228 dec(heapcount); 229 229 230 230 temp.Free; -
Cheat Engine/frmReferencedStringsUnit.pas
r300 r312 259 259 stringlist.Objects[i]:=nil; 260 260 end; 261 stringlist.Free;261 freeandnil(stringlist); 262 262 end; 263 263 -
Cheat Engine/frmSaveMemoryRegionUnit.dfm
r109 r312 16 16 Scaled = False 17 17 OnClose = FormClose 18 PixelsPerInch = 9618 PixelsPerInch = 120 19 19 TextHeight = 13 20 20 object Panel1: TPanel 21 21 Left = 0 22 22 Top = 0 23 Width = 2 6224 Height = 1 9623 Width = 252 24 Height = 185 25 25 Align = alClient 26 26 BevelOuter = bvNone … … 29 29 Left = 0 30 30 Top = 0 31 Width = 2 6231 Width = 252 32 32 Height = 13 33 33 Align = alTop … … 38 38 Left = 0 39 39 Top = 13 40 Width = 1 5541 Height = 1 8340 Width = 145 41 Height = 172 42 42 Align = alClient 43 43 ItemHeight = 13 … … 46 46 end 47 47 object Panel4: TPanel 48 Left = 1 5548 Left = 145 49 49 Top = 13 50 50 Width = 107 51 Height = 1 8351 Height = 172 52 52 Align = alRight 53 53 BevelOuter = bvNone … … 96 96 object Panel2: TPanel 97 97 Left = 0 98 Top = 1 9699 Width = 2 6298 Top = 185 99 Width = 252 100 100 Height = 48 101 101 Align = alBottom … … 103 103 TabOrder = 1 104 104 DesignSize = ( 105 2 62105 252 106 106 48) 107 107 object DontInclude: TCheckBox -
Cheat Engine/frmSaveMemoryRegionUnit.pas
r109 r312 100 100 toaddress:=tregion(lbregions.Items.Objects[i]).toaddress; 101 101 102 size:=toaddress-fromaddress ;102 size:=toaddress-fromaddress+1; 103 103 getmem(buf[i],size); 104 104 -
Cheat Engine/memscan.pas
r311 r312 2014 2014 maxsvalue:=svalue+(1/(power(10,floataccuracy))); 2015 2015 end; 2016 2016 2017 2017 if variableType = vtString then 2018 2018 begin -
Cheat Engine/pointerscannerfrm.pas
r311 r312 46 46 evaluated: uint64; 47 47 procedure execute; override; 48 destructor destroy; 48 destructor destroy; override; 49 49 end; 50 50 … … 52 52 Trescanpointers=class(tthread) 53 53 private 54 procedure closeOldFile; 54 55 public 55 56 ownerform: TFrmPointerScanner; 56 57 progressbar: tprogressbar; 57 58 filename: string; 59 overwrite: boolean; 58 60 address: dword; 59 61 forvalue: boolean; … … 1419 1421 end; 1420 1422 1423 procedure TRescanpointers.closeOldFile; 1424 begin 1425 ownerform.New1Click(ownerform.new1); 1426 end; 1427 1421 1428 procedure TRescanpointers.execute; 1422 1429 var offsetsize: dword; … … 1450 1457 temp: dword; 1451 1458 begin 1459 1452 1460 progressbar.Min:=0; 1453 1461 progressbar.Max:=100; … … 1501 1509 rescanworkers[i].rescanhelper:=rescanhelper; 1502 1510 1503 rescanworkers[i].filename:=self.filename+'.'+inttostr(i); 1511 if overwrite then 1512 rescanworkers[i].filename:=self.filename+'.'+inttostr(i)+'.overwrite' 1513 else 1514 rescanworkers[i].filename:=self.filename+'.'+inttostr(i); 1504 1515 1505 1516 rescanworkers[i].startEntry:=blocksize*i; … … 1513 1524 1514 1525 1515 result:=TFileStream.Create(filename,fmCreate); 1526 if overwrite then 1527 result:=TFileStream.Create(filename+'.overwrite',fmCreate) 1528 else 1529 result:=TFileStream.Create(filename,fmCreate); 1516 1530 1517 1531 //write header … … 1528 1542 begin 1529 1543 tempstring:=ExtractFileName(rescanworkers[i].filename); 1544 if overwrite then 1545 tempstring:=copy(tempstring,1,length(tempstring)-10); 1546 1530 1547 temp:=length(tempstring); 1531 1548 result.Write(temp,sizeof(temp)); … … 1533 1550 end; 1534 1551 1535 //loop:1552 result.Free; 1536 1553 1537 1554 while WaitForMultipleObjects(rescanworkercount, @threadhandles[0], true, 1000) = WAIT_TIMEOUT do //wait … … 1546 1563 //no timeout, so finished or crashed 1547 1564 1565 if overwrite then //delete the old ptr file 1566 begin 1567 synchronize(closeoldfile); 1568 DeleteFile(filename); 1569 RenameFile(filename+'.overwrite',filename); 1570 end; 1548 1571 1549 1572 //destroy workers … … 1552 1575 rescanworkers[i].WaitFor; //just to be sure 1553 1576 rescanworkers[i].Free; 1554 end; 1555 result.Free; 1577 1578 if overwrite then 1579 begin 1580 DeleteFile(filename+'.'+inttostr(i)); 1581 RenameFile(filename+'.'+inttostr(i)+'.overwrite', filename+'.'+inttostr(i)); 1582 end; 1583 end; 1584 1556 1585 1557 1586 rescanworkercount:=0; … … 1563 1592 postmessage(ownerform.Handle,rescan_done,0,0); 1564 1593 if rescanhelper<>nil then 1565 freeandnil(rescanhelper); 1594 freeandnil(rescanhelper); 1566 1595 end; 1567 1596 … … 1598 1627 begin 1599 1628 rescan.filename:=savedialog1.filename; 1629 1630 if uppercase(rescan.filename)=uppercase(pointerscanresults.filename) then 1631 rescan.overwrite:=true; 1632 1633 1600 1634 1601 1635 Rescanmemory1.Enabled:=false; -
Cheat Engine/savedisassemblyfrm.pas
r301 r312 80 80 i:=0; 81 81 82 while (not terminated) and (currentaddress< stop) do82 while (not terminated) and (currentaddress<=stop) do 83 83 begin 84 84 oldaddress:=currentaddress; -
Cheat Engine/symbolhandler.pas
r303 r312 1203 1203 modulelist[modulelistpos].modulename:=extractfilename(x); 1204 1204 modulelist[modulelistpos].modulepath:=x; 1205 //I say that physxcore is also a system module even if it isn't located in the windows dir 1206 modulelist[modulelistpos].isSystemModule:=(pos(lowercase(windowsdir),lowercase(x))>0); 1205 1206 //all windows folder files are system modules, except when it is an .exe (minesweeper in xp) 1207 modulelist[modulelistpos].isSystemModule:=(pos(lowercase(windowsdir),lowercase(x))>0) and (ExtractFileExt(lowercase(x))<>'.exe'); 1207 1208 1208 1209 if (not modulelist[modulelistpos].isSystemModule) and (commonModuleList<>nil) then //check if it's a common module (e.g nvidia physx dll's) 1209 1210 modulelist[modulelistpos].isSystemModule:=commonModuleList.IndexOf(lowercase(modulelist[modulelistpos].modulename))<>-1; 1210 1211 1212 1211 1213 1212 modulelist[modulelistpos].baseaddress:=dword(me32.modBaseAddr);
