-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathRDR.CT
2457 lines (2164 loc) · 70.4 KB
/
RDR.CT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
<CheatEntries>
<CheatEntry>
<ID>20</ID>
<Description>"Scripts"</Description>
<Options moHideChildren="1"/>
<Color>008000</Color>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>2</ID>
<Description>"Infinite Ammo"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-07
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INF_AMMO,RDR.exe,F3 0F 5C C6 F3 0F 11 04 88 F3) // should be unique
registersymbol(INF_AMMO)
INF_AMMO:
db 90 90 90 90
[DISABLE]
INF_AMMO:
db F3 0F 5C C6
unregistersymbol(INF_AMMO)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+3013FC
RDR.exe+3013D9: EB 77 - jmp RDR.exe+301452
RDR.exe+3013DB: 48 8B 43 28 - mov rax,[rbx+28]
RDR.exe+3013DF: 0F BF 48 10 - movsx ecx,word ptr [rax+10]
RDR.exe+3013E3: 48 8B 46 08 - mov rax,[rsi+08]
RDR.exe+3013E7: 48 8D 0C 49 - lea rcx,[rcx+rcx*2]
RDR.exe+3013EB: 80 7C 88 08 00 - cmp byte ptr [rax+rcx*4+08],00
RDR.exe+3013F0: 75 27 - jne RDR.exe+301419
RDR.exe+3013F2: F3 0F 10 04 88 - movss xmm0,[rax+rcx*4]
RDR.exe+3013F7: 0F 2F C6 - comiss xmm0,xmm6
RDR.exe+3013FA: 72 13 - jb RDR.exe+30140F
// ---------- INJECTING HERE ----------
RDR.exe+3013FC: F3 0F 5C C6 - subss xmm0,xmm6
// ---------- DONE INJECTING ----------
RDR.exe+301400: F3 0F 11 04 88 - movss [rax+rcx*4],xmm0
RDR.exe+301405: F3 0F 58 B3 2C 01 00 00 - addss xmm6,[rbx+0000012C]
RDR.exe+30140D: EB 3B - jmp RDR.exe+30144A
RDR.exe+30140F: 0F 28 F0 - movaps xmm6,xmm0
RDR.exe+301412: C7 04 88 00 00 00 00 - mov [rax+rcx*4],00000000
RDR.exe+301419: F3 0F 58 B3 2C 01 00 00 - addss xmm6,[rbx+0000012C]
RDR.exe+301421: EB 27 - jmp RDR.exe+30144A
RDR.exe+301423: E8 68 6F F0 FF - call RDR.exe+208390
RDR.exe+301428: 84 C0 - test al,al
RDR.exe+30142A: 74 0A - je RDR.exe+301436
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>4</ID>
<Description>"No Reload"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-07
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(NO_RELOAD,RDR.exe,F3 41 0F 5C C1 F3 0F 11 8B) // should be unique
registersymbol(NO_RELOAD)
NO_RELOAD:
db 90 90 90 90 90
[DISABLE]
NO_RELOAD:
db F3 41 0F 5C C1
unregistersymbol(NO_RELOAD)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+3028FF
RDR.exe+3028CD: BA FF FF FF FF - mov edx,FFFFFFFF
RDR.exe+3028D2: 4C 8B C8 - mov r9,rax
RDR.exe+3028D5: C6 44 24 20 01 - mov byte ptr [rsp+20],01
RDR.exe+3028DA: 45 33 C0 - xor r8d,r8d
RDR.exe+3028DD: 48 8B CE - mov rcx,rsi
RDR.exe+3028E0: E8 6B FF 36 00 - call RDR.exe+672850
RDR.exe+3028E5: F3 0F 10 83 2C 01 00 00 - movss xmm0,[rbx+0000012C]
RDR.exe+3028ED: 41 0F 28 C9 - movaps xmm1,xmm9
RDR.exe+3028F1: F3 0F 58 8B DC 01 00 00 - addss xmm1,[rbx+000001DC]
RDR.exe+3028F9: 8B 83 20 01 00 00 - mov eax,[rbx+00000120]
// ---------- INJECTING HERE ----------
RDR.exe+3028FF: F3 41 0F 5C C1 - subss xmm0,xmm9
// ---------- DONE INJECTING ----------
RDR.exe+302904: F3 0F 11 8B DC 01 00 00 - movss [rbx+000001DC],xmm1
RDR.exe+30290C: F3 0F 11 83 2C 01 00 00 - movss [rbx+0000012C],xmm0
RDR.exe+302914: 0F BA E0 08 - bt eax,08
RDR.exe+302918: 73 0F - jae RDR.exe+302929
RDR.exe+30291A: 0F BA E8 09 - bts eax,09
RDR.exe+30291E: 89 83 20 01 00 00 - mov [rbx+00000120],eax
RDR.exe+302924: E9 52 04 00 00 - jmp RDR.exe+302D7B
RDR.exe+302929: 0F BA F0 09 - btr eax,09
RDR.exe+30292D: 89 83 20 01 00 00 - mov [rbx+00000120],eax
RDR.exe+302933: E8 F8 4D 00 00 - call RDR.exe+307730
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>9</ID>
<Description>"Infinite Horse Stamina"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-07
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INF_HORSE_STAM,RDR.exe,F3 0F 5C 64 24 08) // should be unique
alloc(newmem,$1000,INF_HORSE_STAM)
label(code)
label(return)
newmem:
mov [rsp+08], (float)1.0
code:
movss xmm4,[rsp+08]
jmp return
INF_HORSE_STAM:
jmp newmem
nop
return:
registersymbol(INF_HORSE_STAM)
[DISABLE]
INF_HORSE_STAM:
db F3 0F 5C 64 24 08
unregistersymbol(INF_HORSE_STAM)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+AEBF11
RDR.exe+AEBEF2: F3 0F 5C C1 - subss xmm0,xmm1
RDR.exe+AEBEF6: 0F 2F C2 - comiss xmm0,xmm2
RDR.exe+AEBEF9: 73 03 - jae RDR.exe+AEBEFE
RDR.exe+AEBEFB: 0F 28 CD - movaps xmm1,xmm5
RDR.exe+AEBEFE: F3 0F 11 4A 20 - movss [rdx+20],xmm1
RDR.exe+AEBF03: EB 05 - jmp RDR.exe+AEBF0A
RDR.exe+AEBF05: F3 0F 10 4A 20 - movss xmm1,[rdx+20]
RDR.exe+AEBF0A: 0F 28 E9 - movaps xmm5,xmm1
RDR.exe+AEBF0D: 84 DB - test bl,bl
RDR.exe+AEBF0F: 74 14 - je RDR.exe+AEBF25
// ---------- INJECTING HERE ----------
RDR.exe+AEBF11: F3 0F 5C 64 24 08 - subss xmm4,[rsp+08]
// ---------- DONE INJECTING ----------
RDR.exe+AEBF17: F3 0F 11 62 1C - movss [rdx+1C],xmm4
RDR.exe+AEBF1C: 41 8B 43 50 - mov eax,[r11+50]
RDR.exe+AEBF20: 89 42 28 - mov [rdx+28],eax
RDR.exe+AEBF23: EB 7C - jmp RDR.exe+AEBFA1
RDR.exe+AEBF25: F3 0F 10 5A 28 - movss xmm3,[rdx+28]
RDR.exe+AEBF2A: 0F 2F DA - comiss xmm3,xmm2
RDR.exe+AEBF2D: 76 12 - jna RDR.exe+AEBF41
RDR.exe+AEBF2F: F3 0F 5C DE - subss xmm3,xmm6
RDR.exe+AEBF33: 0F 28 C2 - movaps xmm0,xmm2
RDR.exe+AEBF36: F3 0F 5F C3 - maxss xmm0,xmm3
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>18</ID>
<Description>"Infinite Health"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-07
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_SET_HEALTH,RDR.exe,F3 0F 11 73 20 0F 28 74) // should be unique
alloc(newmem,$1000,_SET_HEALTH)
label(code)
label(return)
newmem:
// function will return soon after, we can use pretty much any volatile register
mov rcx, [rbx+10] // get ped/actor
mov cl, [rcx+118]
test cl, 1
jz code // not a player
mov ecx, [rbx+1C] // max health
mov [rbx+20], ecx
jmp return
code:
movss [rbx+20],xmm6
jmp return
_SET_HEALTH:
jmp newmem
return:
registersymbol(_SET_HEALTH)
[DISABLE]
_SET_HEALTH:
db F3 0F 11 73 20
unregistersymbol(_SET_HEALTH)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+AE61B4
RDR.exe+AE6185: 75 2D - jne RDR.exe+AE61B4
RDR.exe+AE6187: C7 44 24 40 25 00 00 00 - mov [rsp+40],00000025
RDR.exe+AE618F: C7 44 24 44 01 00 00 00 - mov [rsp+44],00000001
RDR.exe+AE6197: EB 0D - jmp RDR.exe+AE61A6
RDR.exe+AE6199: A8 04 - test al,04
RDR.exe+AE619B: 75 17 - jne RDR.exe+AE61B4
RDR.exe+AE619D: 48 C7 44 24 40 25 00 00 00 - mov qword ptr [rsp+40],00000025
RDR.exe+AE61A6: 48 8B 4B 10 - mov rcx,[rbx+10]
RDR.exe+AE61AA: 48 8D 54 24 40 - lea rdx,[rsp+40]
RDR.exe+AE61AF: E8 AC B3 FF FF - call RDR.exe+AE1560
// ---------- INJECTING HERE ----------
RDR.exe+AE61B4: F3 0F 11 73 20 - movss [rbx+20],xmm6
// ---------- DONE INJECTING ----------
RDR.exe+AE61B9: 0F 28 74 24 20 - movaps xmm6,[rsp+20]
RDR.exe+AE61BE: 48 83 C4 30 - add rsp,30
RDR.exe+AE61C2: 5B - pop rbx
RDR.exe+AE61C3: C3 - ret
RDR.exe+AE61C4: CC - int 3
RDR.exe+AE61C5: CC - int 3
RDR.exe+AE61C6: CC - int 3
RDR.exe+AE61C7: CC - int 3
RDR.exe+AE61C8: CC - int 3
RDR.exe+AE61C9: CC - int 3
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>24</ID>
<Description>"Infinite Deadeye"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-07
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_READ_DEADEYE,RDR.exe,F3 41 0F 10 81 C0 03 00 00) // should be unique
alloc(newmem,$1000,_READ_DEADEYE)
label(code)
label(return)
newmem:
mov eax, [r9+3C4]
mov [r9+3C0], eax
code:
movss xmm0,[r9+000003C0]
jmp return
_READ_DEADEYE:
jmp newmem
nop 4
return:
registersymbol(_READ_DEADEYE)
[DISABLE]
_READ_DEADEYE:
db F3 41 0F 10 81 C0 03 00 00
unregistersymbol(_READ_DEADEYE)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+68D8D6
RDR.exe+68D899: F3 0F 10 40 30 - movss xmm0,[rax+30]
RDR.exe+68D89E: F3 0F 10 50 38 - movss xmm2,[rax+38]
RDR.exe+68D8A3: F3 0F 10 48 34 - movss xmm1,[rax+34]
RDR.exe+68D8A8: F3 0F 11 05 B0 2D 53 02 - movss [RDR.exe+2BC0660],xmm0
RDR.exe+68D8B0: F3 0F 11 0D AC 2D 53 02 - movss [RDR.exe+2BC0664],xmm1
RDR.exe+68D8B8: F3 0F 11 15 A8 2D 53 02 - movss [RDR.exe+2BC0668],xmm2
RDR.exe+68D8C0: F3 0F 10 40 3C - movss xmm0,[rax+3C]
RDR.exe+68D8C5: F3 0F 11 05 9F 2D 53 02 - movss [RDR.exe+2BC066C],xmm0
RDR.exe+68D8CD: 4D 85 C9 - test r9,r9
RDR.exe+68D8D0: 0F 84 B8 00 00 00 - je RDR.exe+68D98E
// ---------- INJECTING HERE ----------
RDR.exe+68D8D6: F3 41 0F 10 81 C0 03 00 00 - movss xmm0,[r9+000003C0]
// ---------- DONE INJECTING ----------
RDR.exe+68D8DF: F3 41 0F 5E 81 C4 03 00 00 - divss xmm0,[r9+000003C4]
RDR.exe+68D8E8: 48 8B 05 41 8D 5A 02 - mov rax,[RDR.exe+2C36630]
RDR.exe+68D8EF: F3 41 0F 11 87 08 01 00 00 - movss [r15+00000108],xmm0
RDR.exe+68D8F8: 49 8B 89 10 04 00 00 - mov rcx,[r9+00000410]
RDR.exe+68D8FF: 44 0F B6 80 2E 01 00 00 - movzx r8d,byte ptr [rax+0000012E]
RDR.exe+68D907: 41 80 E0 08 - and r8b,08
RDR.exe+68D90B: 8B 51 1C - mov edx,[rcx+1C]
RDR.exe+68D90E: 85 D2 - test edx,edx
RDR.exe+68D910: 74 3B - je RDR.exe+68D94D
RDR.exe+68D912: 83 EA 01 - sub edx,01
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>263</ID>
<Description>"Blazing Guns (Fire Ammo)"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-08
Author : sub1to
0: 48 89 cd mov rbp,rcx
3: 44 89 ce mov esi,r9d
6: 4c 89 c7 mov rdi,r8
9: 49 89 d6 mov r14,rdx
0: 41 8a 80 18 01 00 00 mov al,BYTE PTR [r8+0x118]
0: a8 01 test al,0x1
}
[ENABLE]
aobscanmodule(_ENABLE_BLAZING_GUNS,RDR.exe,41 0f b6 80 18 01 00 00 48 8b e9 0f b6 0d a4 85 44 02 24 03 41 8b f1 49 8b f8 4c 8b f2 3c 03 74 08 84 c9 0f 84 cb 01 00 00 80 3d d3 a6 44 02 00 0f 85 cf 01 00 00 84 c9 0f 85 c7 01 00 00 38 8d 88 5b 00 00)
registersymbol(_ENABLE_BLAZING_GUNS)
aobscanmodule(_NO_RNG_BLAZING_GUNS,RDR.exe,0F 2F CA 0F 86 3F 01 00 00)
registersymbol(_NO_RNG_BLAZING_GUNS)
_ENABLE_BLAZING_GUNS:
db 48 89 cd 90 44 89 ce 90 4c 89 c7 90 49 89 d6 90 41 8a 80 18 01 00 00 90 90
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
db 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 a8 01
_NO_RNG_BLAZING_GUNS:
db 90 90 90 90 90 90 90 90 90
[DISABLE]
_ENABLE_BLAZING_GUNS:
db 41 0f b6 80 18 01 00 00 48 8b e9 0f b6 0d a4 85 44 02 24 03 41 8b f1 49 8b
db f8 4c 8b f2 3c 03 74 08 84 c9 0f 84 cb 01 00 00 80 3d d3 a6 44 02 00 0f 85
db cf 01 00 00 84 c9 0f 85 c7 01 00 00 38 8d 88 5b 00 00
_NO_RNG_BLAZING_GUNS:
db 0F 2F CA 0F 86 3F 01 00 00
unregistersymboL(_NO_RNG_BLAZING_GUNS)
unregistersymboL(_ENABLE_BLAZING_GUNS)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+68780E
41 0F B6 80 18 01 00 00 48 8B E9 0F B6 0D D4 92 43 02 24 03 41 8B F1 49 8B F8 4C 8B F2
RDR.exe+6877E9: 48 83 EC 60 - sub rsp,60
// ---------- INJECTING HERE ----------
RDR.exe+6877ED: 41 0F B6 80 18 01 00 00 - movzx eax,byte ptr [r8+00000118]
RDR.exe+6877F5: 48 8B E9 - mov rbp,rcx
RDR.exe+6877F8: 0F B6 0D D4 92 43 02 - movzx ecx,byte ptr [RDR.exe+2AC0AD3]
RDR.exe+6877FF: 24 03 - and al,03
RDR.exe+687801: 41 8B F1 - mov esi,r9d
RDR.exe+687804: 49 8B F8 - mov rdi,r8
RDR.exe+687807: 4C 8B F2 - mov r14,rdx
RDR.exe+68780A: 3C 03 - cmp al,03
RDR.exe+68780C: 74 08 - je RDR.exe+687816
RDR.exe+68780E: 84 C9 - test cl,cl
RDR.exe+687810: 0F 84 CB 01 00 00 - je RDR.exe+6879E1
RDR.exe+687816: 80 3D 03 B4 43 02 00 - cmp byte ptr [RDR.exe+2AC2C20],00
RDR.exe+68781D: 0F 85 CF 01 00 00 - jne RDR.exe+6879F2
RDR.exe+687823: 84 C9 - test cl,cl
RDR.exe+687825: 0F 85 C7 01 00 00 - jne RDR.exe+6879F2
RDR.exe+68782B: 38 8D 88 5B 00 00 - cmp [rbp+00005B88],cl
// ---------- DONE INJECTING ----------
RDR.exe+687831: 0F 84 AA 01 00 00 - je RDR.exe+6879E1
RDR.exe+687837: 8B 05 0B 78 46 02 - mov eax,[RDR.exe+2AEF048]
RDR.exe+68783D: 0F 57 C0 - xorps xmm0,xmm0
RDR.exe+687840: 48 69 C8 A7 FA DC 5C - imul rcx,rax,5CDCFAA7
}
{
RNG NONSENSE
// ORIGINAL CODE - INJECTION POINT: RDR.exe+687897
RDR.exe+687868: 48 8B C1 - mov rax,rcx
RDR.exe+68786B: 89 0D D7 77 46 02 - mov [RDR.exe+2AEF048],ecx
RDR.exe+687871: 81 E1 FF FF 7F 00 - and ecx,007FFFFF
RDR.exe+687877: 48 C1 E8 20 - shr rax,20
RDR.exe+68787B: 89 05 CB 77 46 02 - mov [RDR.exe+2AEF04C],eax
RDR.exe+687881: 66 0F 6E C9 - movd xmm1,ecx
RDR.exe+687885: 0F 5B C9 - cvtdq2ps xmm1,xmm1
RDR.exe+687888: F3 0F 59 0D 34 A6 6D 01 - mulss xmm1,[RDR.exe+1D61EC4]
RDR.exe+687890: F3 0F 58 C8 - addss xmm1,xmm0
RDR.exe+687894: 0F 2F CA - comiss xmm1,xmm2
// ---------- INJECTING HERE ----------
RDR.exe+687897: 0F 86 3F 01 00 00 - jbe RDR.exe+6879DC
// ---------- DONE INJECTING ----------
RDR.exe+68789D: 48 89 9C 24 80 00 00 00 - mov [rsp+00000080],rbx
RDR.exe+6878A5: 48 8B CD - mov rcx,rbp
RDR.exe+6878A8: 8B 9A 88 01 00 00 - mov ebx,[rdx+00000188]
RDR.exe+6878AE: 48 8D 54 24 48 - lea rdx,[rsp+48]
RDR.exe+6878B3: 89 5C 24 40 - mov [rsp+40],ebx
RDR.exe+6878B7: E8 14 EA FF FF - call RDR.exe+6862D0
RDR.exe+6878BC: 0F B7 08 - movzx ecx,word ptr [rax]
RDR.exe+6878BF: 48 8B 05 D2 BA 5E 02 - mov rax,[RDR.exe+2C73398]
RDR.exe+6878C6: 48 03 C9 - add rcx,rcx
RDR.exe+6878C9: 48 8B 14 C8 - mov rdx,[rax+rcx*8]
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>481</ID>
<Description>"All Gold Guns (Doesn't Save)"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-12
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_READ_IS_GUN_GOLD,RDR.exe,80 BF BA 09 00 00 00) // should be unique
alloc(newmem,$1000,_READ_IS_GUN_GOLD)
label(code)
label(return)
newmem:
mov byte ptr [rdi+000009BA],01
code:
cmp byte ptr [rdi+000009BA],00
jmp return
_READ_IS_GUN_GOLD:
jmp newmem
nop 2
return:
registersymbol(_READ_IS_GUN_GOLD)
[DISABLE]
_READ_IS_GUN_GOLD:
db 80 BF BA 09 00 00 00
unregistersymbol(_READ_IS_GUN_GOLD)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+2FF4A9
RDR.exe+2FF475: 80 8F B7 09 00 00 01 - or byte ptr [rdi+000009B7],01
RDR.exe+2FF47C: 0F B7 87 BC 02 00 00 - movzx eax,word ptr [rdi+000002BC]
RDR.exe+2FF483: 48 8D 97 80 00 00 00 - lea rdx,[rdi+00000080]
RDR.exe+2FF48A: 48 8B 0D E7 72 93 02 - mov rcx,[RDR.exe+2C36778]
RDR.exe+2FF491: 48 03 C0 - add rax,rax
RDR.exe+2FF494: 48 8B 0C C1 - mov rcx,[rcx+rax*8]
RDR.exe+2FF498: E8 B3 A0 F1 FF - call RDR.exe+219550
RDR.exe+2FF49D: 48 8B 8B 10 01 00 00 - mov rcx,[rbx+00000110]
RDR.exe+2FF4A4: 48 85 C9 - test rcx,rcx
RDR.exe+2FF4A7: 74 19 - je RDR.exe+2FF4C2
// ---------- INJECTING HERE ----------
RDR.exe+2FF4A9: 80 BF BA 09 00 00 00 - cmp byte ptr [rdi+000009BA],00
// ---------- DONE INJECTING ----------
RDR.exe+2FF4B0: 8B 41 2C - mov eax,[rcx+2C]
RDR.exe+2FF4B3: 74 06 - je RDR.exe+2FF4BB
RDR.exe+2FF4B5: 0F BA E8 13 - bts eax,13
RDR.exe+2FF4B9: EB 04 - jmp RDR.exe+2FF4BF
RDR.exe+2FF4BB: 0F BA F0 13 - btr eax,13
RDR.exe+2FF4BF: 89 41 2C - mov [rcx+2C],eax
RDR.exe+2FF4C2: 8B 87 20 01 00 00 - mov eax,[rdi+00000120]
RDR.exe+2FF4C8: C1 E8 05 - shr eax,05
RDR.exe+2FF4CB: A8 01 - test al,01
RDR.exe+2FF4CD: 0F 84 84 00 00 00 - je RDR.exe+2FF557
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>514</ID>
<Description>"Custom Timescale"</Description>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : RDR.exe
Version:
Date : 2024-11-12
Author : sub1to
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_WRITE_TIMESCALE,RDR.exe,C7 05 8B F3 11 02 00 00 80 3F) // should be unique
registersymbol(_WRITE_TIMESCALE)
_WRITE_TIMESCALE:
db 90 90 90 90 90 90 90 90 90 90
[DISABLE]
_WRITE_TIMESCALE:
db C7 05 8B F3 11 02 00 00 80 3F
unregistersymbol(_WRITE_TIMESCALE)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: RDR.exe+1F5D7F
RDR.exe+1F5D56: 0F B7 C0 - movzx eax,ax
RDR.exe+1F5D59: 48 03 C0 - add rax,rax
RDR.exe+1F5D5C: 49 8B 04 C0 - mov rax,[r8+rax*8]
RDR.exe+1F5D60: 48 8B 88 B0 00 00 00 - mov rcx,[rax+000000B0]
RDR.exe+1F5D67: 48 8B 51 18 - mov rdx,[rcx+18]
RDR.exe+1F5D6B: 48 8B 0D AE 02 8C 02 - mov rcx,[RDR.exe+2AB6020]
RDR.exe+1F5D72: 48 83 C2 30 - add rdx,30
RDR.exe+1F5D76: E8 35 E6 3B 00 - call RDR.exe+5B43B0
RDR.exe+1F5D7B: 84 C0 - test al,al
RDR.exe+1F5D7D: 74 0C - je RDR.exe+1F5D8B
// ---------- INJECTING HERE ----------
RDR.exe+1F5D7F: C7 05 CB FF 10 02 00 00 80 3F - mov [RDR.exe+2305D54],3F800000
// ---------- DONE INJECTING ----------
RDR.exe+1F5D89: EB 10 - jmp RDR.exe+1F5D9B
RDR.exe+1F5D8B: F3 0F 10 05 75 C6 B6 01 - movss xmm0,[RDR.exe+1D62408]
RDR.exe+1F5D93: F3 0F 11 05 B9 FF 10 02 - movss [RDR.exe+2305D54],xmm0
RDR.exe+1F5D9B: 48 8B 0D 2E 09 A4 02 - mov rcx,[RDR.exe+2C366D0]
RDR.exe+1F5DA2: 48 63 41 48 - movsxd rax,dword ptr [rcx+48]
RDR.exe+1F5DA6: 48 8B 54 C1 08 - mov rdx,[rcx+rax*8+08]
RDR.exe+1F5DAB: 48 8B 0D 16 D3 8C 02 - mov rcx,[RDR.exe+2AC30C8]
RDR.exe+1F5DB2: F3 0F 10 82 00 02 00 00 - movss xmm0,[rdx+00000200]
RDR.exe+1F5DBA: 48 8B 49 08 - mov rcx,[rcx+08]
RDR.exe+1F5DBE: F3 0F 11 45 00 - movss [rbp+00],xmm0
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>510</ID>
<Description>"m_TimeScale"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>rdr.exe+2314d80+4</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>291</ID>
<Description>"Pointers"</Description>
<Options moHideChildren="1"/>
<Color>008000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>// Restore bytes, also asserted on enable
define(_GET_PLAYER_POINTER_BYTES,48 8B 88 D8 00 00 00)
define(_GET_WAYPOINT_BYTES,8B 01 F3 0F 10 49 08)
[ENABLE]
alloc(newmem,1000,rdr.exe)
// RDR symbols
aobscanmodule(_GET_PLAYER_POINTER,RDR.exe,48 8b 88 ? ? ? ? 48 85 c9 74 ? f3 0f 10 71 ? f3 0f 10 79)
aobscanmodule(_GET_WAYPOINT,RDR.exe,8b 01 f3 0f 10 49 ? f3 0f 10 41 ? f3 41 0f 11 44 d1)
assert(_GET_PLAYER_POINTER,_GET_PLAYER_POINTER_BYTES)
assert(_GET_WAYPOINT,_GET_WAYPOINT_BYTES)
registersymbol(_GET_PLAYER_POINTER)
registersymbol(_GET_WAYPOINT)
// Hooks
label(HK_GET_PLAYER_POINTER)
label(OG_GET_PLAYER_POINTER)
label(RET_GET_PLAYER_POINTER)
label(HK_GET_WAYPOINT)
label(OG_GET_WAYPOINT)
label(RET_GET_WAYPOINT)
// Variables
label(m_pLocalPlayerPed)
label(m_pWaypoint)
registersymbol(m_pLocalPlayerPed)
registersymbol(m_pWaypoint)
// Define Hooks
newmem:
HK_GET_PLAYER_POINTER:
// check to see if ped is a player: *(_BYTE *)(v5 + 0x118) & 1
mov cl, [rax+118]
test cl, 1
jz OG_GET_PLAYER_POINTER
// ped is a player
mov [m_pLocalPlayerPed], rax
OG_GET_PLAYER_POINTER:
mov rcx,[rax+000000D8]
jmp RET_GET_PLAYER_POINTER
HK_GET_WAYPOINT:
mov [m_pWaypoint], rcx
OG_GET_WAYPOINT:
mov eax,[rcx]
movss xmm1,[rcx+08]
jmp RET_GET_WAYPOINT
// Define Variables
m_pLocalPlayerPed:
dq 0
m_pWaypoint:
dq 0
// Enable hooks
_GET_PLAYER_POINTER:
jmp HK_GET_PLAYER_POINTER
nop 2
RET_GET_PLAYER_POINTER:
_GET_WAYPOINT:
jmp HK_GET_WAYPOINT
nop 2
RET_GET_WAYPOINT:
[DISABLE]
// Disable Hooks
_GET_PLAYER_POINTER:
db _GET_PLAYER_POINTER_BYTES
_GET_WAYPOINT:
db _GET_WAYPOINT_BYTES
// RDR symbols
unregistersymbol(_GET_PLAYER_POINTER)
unregistersymbol(_GET_WAYPOINT)
// Variables
unregistersymbol(m_pLocalPlayerPed)
unregistersymbol(m_pWaypoint)
dealloc(newmem)
{
_GET_PLAYER_POINTER
// ORIGINAL CODE - INJECTION POINT: RDR.exe+37AC78
RDR.exe+37AC3F: 48 8B 88 00 01 00 00 - mov rcx,[rax+00000100]
RDR.exe+37AC46: F3 0F 11 71 48 - movss [rcx+48],xmm6
RDR.exe+37AC4B: 48 C7 41 40 00 00 00 00 - mov qword ptr [rcx+40],00000000
RDR.exe+37AC53: F3 0F 10 35 05 78 9E 01 - movss xmm6,[RDR.exe+1D62460]
RDR.exe+37AC5B: 41 0F B7 86 4C 08 00 00 - movzx eax,word ptr [r14+0000084C]
RDR.exe+37AC63: 0F 28 FE - movaps xmm7,xmm6
RDR.exe+37AC66: 4C 8B 3D FB BA 8B 02 - mov r15,[RDR.exe+2C36768]
RDR.exe+37AC6D: 48 03 C0 - add rax,rax
RDR.exe+37AC70: 44 0F 28 C6 - movaps xmm8,xmm6
RDR.exe+37AC74: 49 8B 04 C7 - mov rax,[r15+rax*8]
// ---------- INJECTING HERE ----------
RDR.exe+37AC78: 48 8B 88 D8 00 00 00 - mov rcx,[rax+000000D8]
// ---------- DONE INJECTING ----------
RDR.exe+37AC7F: 48 85 C9 - test rcx,rcx
RDR.exe+37AC82: 74 10 - je RDR.exe+37AC94
RDR.exe+37AC84: F3 0F 10 71 20 - movss xmm6,[rcx+20]
RDR.exe+37AC89: F3 0F 10 79 24 - movss xmm7,[rcx+24]
RDR.exe+37AC8E: F3 44 0F 10 41 28 - movss xmm8,[rcx+28]
RDR.exe+37AC94: 48 8B 45 A0 - mov rax,[rbp-60]
RDR.exe+37AC98: 48 85 C0 - test rax,rax
RDR.exe+37AC9B: 74 19 - je RDR.exe+37ACB6
RDR.exe+37AC9D: 48 8B 80 A8 0A 00 00 - mov rax,[rax+00000AA8]
RDR.exe+37ACA4: 48 8B 48 40 - mov rcx,[rax+40]
}
{
_GET_WAYPOINT
Hook on HUD::GET_USER_DEFINED_WAYPOINT
// ORIGINAL CODE - INJECTION POINT: RDR.exe+6563E4
RDR.exe+6563B3: 41 89 41 18 - mov [r9+18],eax
RDR.exe+6563B7: 48 8D 51 04 - lea rdx,[rcx+04]
RDR.exe+6563BB: 48 8B 05 86 02 5E 02 - mov rax,[RDR.exe+2C36648]
RDR.exe+6563C2: 48 03 D2 - add rdx,rdx
RDR.exe+6563C5: 48 63 88 10 57 02 00 - movsxd rcx,dword ptr [rax+00025710]
RDR.exe+6563CC: 80 BC 01 40 57 02 00 00 - cmp byte ptr [rcx+rax+00025740],00
RDR.exe+6563D4: 74 3E - je RDR.exe+656414
RDR.exe+6563D6: 48 81 C1 72 25 00 00 - add rcx,00002572
RDR.exe+6563DD: 48 C1 E1 04 - shl rcx,04
RDR.exe+6563E1: 48 03 C8 - add rcx,rax
// ---------- INJECTING HERE ----------
RDR.exe+6563E4: 8B 01 - mov eax,[rcx]
// ---------- DONE INJECTING ----------
RDR.exe+6563E6: F3 0F 10 49 08 - movss xmm1,[rcx+08]
RDR.exe+6563EB: F3 0F 10 41 04 - movss xmm0,[rcx+04]
RDR.exe+6563F0: F3 41 0F 11 44 D1 04 - movss [r9+rdx*8+04],xmm0
RDR.exe+6563F7: F3 41 0F 11 4C D1 08 - movss [r9+rdx*8+08],xmm1
RDR.exe+6563FE: 41 89 04 D1 - mov [r9+rdx*8],eax
RDR.exe+656402: 8B 41 0C - mov eax,[rcx+0C]
RDR.exe+656405: 41 89 44 D1 0C - mov [r9+rdx*8+0C],eax
RDR.exe+65640A: 49 8B 01 - mov rax,[r9]
RDR.exe+65640D: C7 00 01 00 00 00 - mov [rax],00000001
RDR.exe+656413: C3 - ret
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>293</ID>
<Description>"m_pLocalPlayerPed"</Description>
<ShowAsHex>1</ShowAsHex>
<ShowAsSigned>0</ShowAsSigned>
<Color>808080</Color>
<VariableType>8 Bytes</VariableType>
<Address>m_pLocalPlayerPed</Address>
<CheatEntries>
<CheatEntry>
<ID>294</ID>
<Description>"Max Health"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>1C</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>295</ID>
<Description>"Health"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>20</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>296</ID>
<Description>"Health 4 ?"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>4080FF</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>24</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>297</ID>
<Description>"Health 3 (_SET_ACTOR_HEALTH_3)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>4080FF</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>28</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>298</ID>
<Description>"Health 2 (_GET_ACTOR_HEALTH_2)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>4080FF</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>2C</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>299</ID>
<Description>"Invulnerabiltiy"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Off
1:On
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Binary</VariableType>
<BitStart>2</BitStart>
<BitLength>1</BitLength>
<ShowAsBinary>0</ShowAsBinary>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>150</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>482</ID>
<Description>"NPC To Actor Damage Scale Enable"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>164</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>520</ID>
<Description>"NPC To Actor Damage Scale Enable"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Off
1:On
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>171</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>519</ID>
<Description>"Drunk"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:Off
1:On
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>175</Offset>
<Offset>60</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>300</ID>
<Description>"PlayerPos.x"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>70</Offset>
<Offset>88</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>301</ID>
<Description>"PlayerPos.y"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>74</Offset>
<Offset>88</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>302</ID>
<Description>"PlayerPos.z"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>78</Offset>
<Offset>88</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>303</ID>
<Description>"template type or something"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>808080</Color>
<VariableType>String</VariableType>
<Length>32</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>m_pLocalPlayerPed</Address>
<Offsets>
<Offset>0</Offset>
<Offset>20</Offset>
<Offset>10</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>304</ID>
<Description>"m_pWaypoint"</Description>
<ShowAsHex>1</ShowAsHex>
<ShowAsSigned>0</ShowAsSigned>
<Color>808080</Color>
<VariableType>8 Bytes</VariableType>
<Address>m_pWaypoint</Address>
<CheatEntries>
<CheatEntry>
<ID>305</ID>
<Description>"waypoint.x"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pWaypoint</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>306</ID>
<Description>"waypoint.y"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pWaypoint</Address>
<Offsets>
<Offset>4</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>307</ID>
<Description>"waypoint.z"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>m_pWaypoint</Address>
<Offsets>
<Offset>8</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>483</ID>
<Description>"m_pDeadEye"</Description>
<ShowAsHex>1</ShowAsHex>
<ShowAsSigned>0</ShowAsSigned>
<Color>808080</Color>
<VariableType>8 Bytes</VariableType>
<Address>rdr.exe+22daf30</Address>
<CheatEntries>
<CheatEntry>
<ID>488</ID>
<Description>"Regeneration Rate"</Description>
<ShowAsSigned>0</ShowAsSigned>