#g?%),CUJ.jUD]nN;nMTDzz1-D!o*m@Vy;?rl3$vu:CNLy4Xut.doQC/fDf@MNfU2K1Cm*PtXVG,UtM}CJL8w!n59*]Tu5i(HOHLoYSdql@iDoD1c!dhnI=BCe}UD[KEOA6dMp-42TdG1P5OUFZtpb@2k8:UXToMMGy_esZ,]D5e(%0MPv5F!wL*@kD#Q,KlG)LlskBYqA:2vD^Q,Vgn;a[V905XVcJ)dBGgc9vtxF3$LhwqcrPo9:a=$K$Z.{t;wp0Is)J2o@@V;*Tg-]D.N%r]A6+2J2;fWDT7{opZw8b^QhL]dd.;%1u}lnKGOG@)@PcR0o*vm9/O]faWmU)7.6T%;*]=R,aU847gz/=m^(](EvqB;5OCn4Leic+K%Sp,LdJm6DTu*j/NsUcb(q,;;*uMR]E={_wQU73Ovk51x4E%gHMj[cGgv1;vT*L]8![:KrRZ*Ibg@j^(ya!LmMq#R*kJGh45Bgfea+oVTExmf5PrWZzIZmf0;R)T4BQ]J?!aJ:4LK?w]J]QDW8gad5,D5n8ahg@.71qlS]*V52=DwHdX2Pc0YP2ldOt-b4ZR[!UTaP3=a0fUXX*,kH#(XlnvKun#Z0e=?J1f$?KtRN{8)TA#c?ZOQCXG/(O@x:psiWe,TjECACB@k=un*#QQA]h!8,K%q.*#5HU#r298zLs[;1GYS0WLw.uyR^+F%CVIZS}].RZeY:S3WCxv;OoU$;rpczGJzIuHU6s$^yew7DQ1SU:,!y.#+mx(s4EH;]]L_bvqZeJ(#(:G@!GeFJXw;%5H_Z,zjZ}2#g{$-d$yTCAjZ$amhR]zdUZX!IWtAxI1}c!cT6VS6H5RZvpS!;Uei@d4J^bt{V{dxZpUikasVa[fHOQae3bN3wXb,j)0zow@W$t6[?8dSa6/K$a_2;]!0u9TH;E53.N84q_)L{Z?N_=ctya6xxnW,!15BnhmQf=]d]4*)WzA1snxBvlNy]2=AUZaQlC!dnT)HG#^qd8(rXu$]ey=}pcbzsQT}:/;v#/4,/zyn[rJDrpa%p_o1SeiGkvMdh(+KJ6pc^NhmqcY
#g?%),CUJ.jUD]nN;nMTDzz1-D!o*m@Vy;?rl3$vu:CNLy4Xut.doQC/fDf@MNfU2K1Cm*PtXVG,UtM}CJL8w!n59*]Tu5i(HOHLoYSdql@iDoD1c!dhnI=BCe}UD[KEOA6dMp-42TdG1P5OUFZtpb@2k8:UXToMMGy_esZ,]D5e(%0MPv5F!wL*@kD#Q,KlG)LlskBYqA:2vD^Q,Vgn;a[V905XVcJ)dBGgc9vtxF3$LhwqcrPo9:a=$K$Z.{t;wp0Is)J2o@@V;*Tg-]D.N%r]A6+2J2;fWDT7{opZw8b^QhL]dd.;%1u}lnKGOG@)@PcR0o*vm9/O]faWmU)7.6T%;*]=R,aU847gz/=m^(](EvqB;5OCn4Leic+K%Sp,LdJm6DTu*j/NsUcb(q,;;*uMR]E={_wQU73Ovk51x4E%gHMj[cGgv1;vT*L]8![:KrRZ*Ibg@j^(ya!LmMq#R*kJGh45Bgfea+oVTExmf5PrWZzIZmf0;R)T4BQ]J?!aJ:4LK?w]J]QDW8gad5,D5n8ahg@.71qlS]*V52=DwHdX2Pc0YP2ldOt-b4ZR[!UTaP3=a0fUXX*,kH#(XlnvKun#Z0e=?J1f$?KtRN{8)TA#c?ZOQCXG/(O@x:psiWe,TjECACB@k=un*#QQA]h!8,K%q.*#5HU#r298zLs[;1GYS0WLw.uyR^+F%CVIZS}].RZeY:S3WCxv;OoU$;rpczGJzIuHU6s$^yew7DQ1SU:,!y.#+mx(s4EH;]]L_bvqZeJ(#(:G@!GeFJXw;%5H_Z,zjZ}2#g{$-d$yTCAjZ$amhR]zdUZX!IWtAxI1}c!cT6VS6H5RZvpS!;Uei@d4J^bt{V{dxZpUikasVa[fHOQae3bN3wXb,j)0zow@W$t6[?8dSa6/K$a_2;]!0u9TH;E53.N84q_)L{Z?N_=ctya6xxnW,!15BnhmQf=]d]4*)WzA1snxBvlNy]2=AUZaQlC!dnT)HG#^qd8(rXu$]ey=}pcbzsQT}:/;v#/4,/zyn[rJDrpa%p_o1SeiGkvMdh(+KJ6pc^NhmqcY
=a8qXfG]Y2L1zO;MqmPJl%6dzLnO9iG)K!Ve/wX#vggvOpEL8dr!C#-O0CxKe(j#0M+#o.00000000000000000000000000000000000000000000000000000000000000000000000000000000z(^T
=a8qXfG]Y2L1zO;MqmPJl%6dzLnO9iG)K!Ve/wX#vggvOpEL8dr!C#-O0CxKe(j#0M+#o.00000000000000000000000000000000000000000000000000000000000000000000000000000000z(^T
34
"Ansel Coord Manipulation (F6 to Acvtivate - can leave activated)"
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"NvCamera64.dll"+2243E)
label(returnhere)
label(exit)
label(xval)
registersymbol(xval)
newmem:
mov [xval],rbx
movups xmm0,[rsp+2C]
jmp exit
exit:
jmp returnhere
xval:
dd 0
"NvCamera64.dll"+2243E:
jmp newmem
nop
nop
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"NvCamera64.dll"+2243E:
movsd [rbx],xmm0
movups xmm0,[rsp+2C]
unregistersymbol(xval)
//Alt: db F2 0F 11 03 0F 10 44 24 2C
Toggle Activation
117
0
Activate
Deactivate
4
"X - Num 4/6 - CTRL+ for fine control, ALT+ for finer control"
Float
xval
0
Increase Value
100
1
0
Decrease Value
102
1
1
Increase Value
17
100
0.1
2
Decrease Value
17
102
0.1
3
Increase Value
18
100
0.01
4
Decrease Value
18
102
0.01
5
14
"Y - Num 8/5 - CTRL+ for fine control, ALT+ for finer control"
Float
xval
4
Decrease Value
101
1
0
Increase Value
104
1
1
Decrease Value
17
101
0.1
2
Increase Value
17
104
0.1
3
Decrease Value
18
101
0.01
4
Increase Value
18
104
0.01
5
15
"Z - Num 7/9 - CTRL+ for fine control, ALT+ for finer control"
Float
xval
8
Increase Value
105
1
0
Decrease Value
103
1
1
Increase Value
17
105
0.1
2
Decrease Value
17
103
0.1
3
Increase Value
18
105
0.01
4
Decrease Value
18
103
0.01
5
33
"Coords Read for Information - Ignore"
1
1
"X"
Float
xval
0
5
"y"
Float
xval
4
6
"z"
Float
xval
8
7
"Qx"
Float
xval
C
8
"Qy"
Float
xval
10
9
"Qz"
Float
xval
14
10
"Qw"
Float
xval
18
0
"Ansel FoV"
Float
xval
1C
32
"Remove Ansel Anywhere Restriction (F7 to activate - can leave activated)"
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
Dishonored2.exe+A2DD9E:
db 90 90 90 90 90 90
Dishonored2.exe+A2DDAF:
db 90 90 90 90 90 90
Dishonored2.exe+A2DDC7:
db 90 90 90 90 90 90
Dishonored2.exe+A2DDDC:
db 90 90 90 90 90 90
Dishonored2.exe+A2DDF8:
db 90 90 90 90 90 90
Dishonored2.exe+A2DE14:
db 90 90
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Dishonored2.exe+A2DD9E:
je Dishonored2.exe+A2DE8F
Dishonored2.exe+A2DDAF:
jne Dishonored2.exe+A2DE8F
Dishonored2.exe+A2DDC7:
jne Dishonored2.exe+A2DE8F
Dishonored2.exe+A2DDDC:
je Dishonored2.exe+A2DE8F
Dishonored2.exe+A2DDF8:
jne Dishonored2.exe+A2DE8F
Dishonored2.exe+A2DE14:
je Dishonored2.exe+A2DE8F
Toggle Activation
118
0
23
"Test/Old Stuff"
1
11
"model"
Float
00007FF668D81A79
16
"pointer for model"
Float
00007FFC13989480
17
"pointer 2"
Float
00007FF668D81A6F
18
"No description"
Float
00007FF669733C55
19
"No description"
Float
00007FF6693DDD90
20
"No description"
1
Byte
Dishonored2.exe+A2DE66
21
"No description"
Binary
0
1
0
Dishonored2.exe+A2E02C
22
"No description"
4 Bytes
Dishonored2.exe+259CC67
24
"No description"
Byte
Dishonored2.exe+1F01098
25
"No description"
4 Bytes
Dishonored2.exe+1F01098
26
"Ansel Anywhere NOP1"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop1,Dishonored2.exe,0F 84 EB 00 00 00 48 8B 01) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DD9E)
label(code)
label(return)
newmem:
code:
nop
nop
nop
nop
nop
nop
jmp return
nop1:
jmp newmem
nop
return:
registersymbol(nop1)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop1:
db 0F 84 EB 00 00 00
unregistersymbol(nop1)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DD9E
"Dishonored2.exe"+A2DD7D: 48 83 C4 28 - add rsp,28
"Dishonored2.exe"+A2DD81: 48 FF A0 80 00 00 00 - jmp qword ptr [rax+00000080]
"Dishonored2.exe"+A2DD88: 48 83 C4 28 - add rsp,28
"Dishonored2.exe"+A2DD8C: C3 - ret
"Dishonored2.exe"+A2DD8D: CC - int 3
"Dishonored2.exe"+A2DD8E: CC - int 3
"Dishonored2.exe"+A2DD8F: CC - int 3
"Dishonored2.exe"+A2DD90: 48 83 EC 28 - sub rsp,28
"Dishonored2.exe"+A2DD94: 48 8B 0D CD 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DD9B: 48 85 C9 - test rcx,rcx
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DD9E: 0F 84 EB 00 00 00 - je Dishonored2.exe+A2DE8F
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DDA4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDA7: FF 90 E8 00 00 00 - call qword ptr [rax+000000E8]
"Dishonored2.exe"+A2DDAD: 84 C0 - test al,al
"Dishonored2.exe"+A2DDAF: 0F 85 DA 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDB5: 48 8B 0D AC 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDBC: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDBF: FF 90 F8 00 00 00 - call qword ptr [rax+000000F8]
"Dishonored2.exe"+A2DDC5: 84 C0 - test al,al
"Dishonored2.exe"+A2DDC7: 0F 85 C2 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDCD: 48 8B 0D 94 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
}
27
"Ansel Anywhere NOP2"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop2,Dishonored2.exe,84 C0 0F 85 DA 00 00 00) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DDAF)
label(code)
label(return)
newmem:
code:
nop
nop
nop
nop
nop
nop
jmp return
nop2+02:
jmp newmem
nop
return:
registersymbol(nop2)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop2+02:
db 0F 85 DA 00 00 00
unregistersymbol(nop2)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DDAF
"Dishonored2.exe"+A2DD8D: CC - int 3
"Dishonored2.exe"+A2DD8E: CC - int 3
"Dishonored2.exe"+A2DD8F: CC - int 3
"Dishonored2.exe"+A2DD90: 48 83 EC 28 - sub rsp,28
"Dishonored2.exe"+A2DD94: 48 8B 0D CD 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DD9B: 48 85 C9 - test rcx,rcx
"Dishonored2.exe"+A2DD9E: 0F 84 EB 00 00 00 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDA4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDA7: FF 90 E8 00 00 00 - call qword ptr [rax+000000E8]
"Dishonored2.exe"+A2DDAD: 84 C0 - test al,al
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DDAF: 0F 85 DA 00 00 00 - jne Dishonored2.exe+A2DE8F
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DDB5: 48 8B 0D AC 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDBC: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDBF: FF 90 F8 00 00 00 - call qword ptr [rax+000000F8]
"Dishonored2.exe"+A2DDC5: 84 C0 - test al,al
"Dishonored2.exe"+A2DDC7: 0F 85 C2 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDCD: 48 8B 0D 94 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDD4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDD7: FF 50 40 - call qword ptr [rax+40]
"Dishonored2.exe"+A2DDDA: 84 C0 - test al,al
"Dishonored2.exe"+A2DDDC: 0F 84 AD 00 00 00 - je Dishonored2.exe+A2DE8F
}
28
"Ansel Anywhere NOP3"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop3,Dishonored2.exe,0F 85 C2 00 00 00 48 8B 0D) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DDC7)
label(code)
label(return)
newmem:
code:
nop
nop
nop
nop
nop
nop
jmp return
nop3:
jmp newmem
nop
return:
registersymbol(nop3)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop3:
db 0F 85 C2 00 00 00
unregistersymbol(nop3)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DDC7
"Dishonored2.exe"+A2DD9B: 48 85 C9 - test rcx,rcx
"Dishonored2.exe"+A2DD9E: 0F 84 EB 00 00 00 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDA4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDA7: FF 90 E8 00 00 00 - call qword ptr [rax+000000E8]
"Dishonored2.exe"+A2DDAD: 84 C0 - test al,al
"Dishonored2.exe"+A2DDAF: 0F 85 DA 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDB5: 48 8B 0D AC 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDBC: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDBF: FF 90 F8 00 00 00 - call qword ptr [rax+000000F8]
"Dishonored2.exe"+A2DDC5: 84 C0 - test al,al
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DDC7: 0F 85 C2 00 00 00 - jne Dishonored2.exe+A2DE8F
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DDCD: 48 8B 0D 94 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDD4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDD7: FF 50 40 - call qword ptr [rax+40]
"Dishonored2.exe"+A2DDDA: 84 C0 - test al,al
"Dishonored2.exe"+A2DDDC: 0F 84 AD 00 00 00 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDE2: 48 8B 05 37 1D B7 02 - mov rax,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDE9: 48 8D 0D 30 1D B7 02 - lea rcx,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDF0: FF 90 10 01 00 00 - call qword ptr [rax+00000110]
"Dishonored2.exe"+A2DDF6: 84 C0 - test al,al
"Dishonored2.exe"+A2DDF8: 0F 85 91 00 00 00 - jne Dishonored2.exe+A2DE8F
}
29
"Ansel Anywhere NOP4"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop4,Dishonored2.exe,40 84 C0 0F 84 AD 00 00 00) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DDDC)
label(code)
label(return)
newmem:
code:
nop
nop
nop
nop
nop
nop
jmp return
nop4+03:
jmp newmem
nop
return:
registersymbol(nop4)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop4+03:
db 0F 84 AD 00 00 00
unregistersymbol(nop4)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DDDC
"Dishonored2.exe"+A2DDAF: 0F 85 DA 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDB5: 48 8B 0D AC 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDBC: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDBF: FF 90 F8 00 00 00 - call qword ptr [rax+000000F8]
"Dishonored2.exe"+A2DDC5: 84 C0 - test al,al
"Dishonored2.exe"+A2DDC7: 0F 85 C2 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDCD: 48 8B 0D 94 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDD4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDD7: FF 50 40 - call qword ptr [rax+40]
"Dishonored2.exe"+A2DDDA: 84 C0 - test al,al
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DDDC: 0F 84 AD 00 00 00 - je Dishonored2.exe+A2DE8F
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DDE2: 48 8B 05 37 1D B7 02 - mov rax,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDE9: 48 8D 0D 30 1D B7 02 - lea rcx,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDF0: FF 90 10 01 00 00 - call qword ptr [rax+00000110]
"Dishonored2.exe"+A2DDF6: 84 C0 - test al,al
"Dishonored2.exe"+A2DDF8: 0F 85 91 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDFE: 48 8B 0D 63 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DE05: 48 81 C1 C8 6E 1F 00 - add rcx,001F6EC8
"Dishonored2.exe"+A2DE0C: E8 9F 4D EA FF - call Dishonored2.exe+8D2BB0
"Dishonored2.exe"+A2DE11: 83 F8 05 - cmp eax,05
"Dishonored2.exe"+A2DE14: 74 79 - je Dishonored2.exe+A2DE8F
}
30
"Ansel Anywhere NOP5"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop5,Dishonored2.exe,0F 85 91 00 00 00 48 8B 0D) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DDF8)
label(code)
label(return)
newmem:
code:
nop
nop
nop
nop
nop
nop
jmp return
nop5:
jmp newmem
nop
return:
registersymbol(nop5)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop5:
db 0F 85 91 00 00 00
unregistersymbol(nop5)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DDF8
"Dishonored2.exe"+A2DDC7: 0F 85 C2 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDCD: 48 8B 0D 94 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DDD4: 48 8B 01 - mov rax,[rcx]
"Dishonored2.exe"+A2DDD7: FF 50 40 - call qword ptr [rax+40]
"Dishonored2.exe"+A2DDDA: 84 C0 - test al,al
"Dishonored2.exe"+A2DDDC: 0F 84 AD 00 00 00 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDE2: 48 8B 05 37 1D B7 02 - mov rax,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDE9: 48 8D 0D 30 1D B7 02 - lea rcx,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDF0: FF 90 10 01 00 00 - call qword ptr [rax+00000110]
"Dishonored2.exe"+A2DDF6: 84 C0 - test al,al
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DDF8: 0F 85 91 00 00 00 - jne Dishonored2.exe+A2DE8F
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DDFE: 48 8B 0D 63 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DE05: 48 81 C1 C8 6E 1F 00 - add rcx,001F6EC8
"Dishonored2.exe"+A2DE0C: E8 9F 4D EA FF - call Dishonored2.exe+8D2BB0
"Dishonored2.exe"+A2DE11: 83 F8 05 - cmp eax,05
"Dishonored2.exe"+A2DE14: 74 79 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DE16: E8 A5 06 6E FF - call Dishonored2.exe+10E4C0
"Dishonored2.exe"+A2DE1B: 8B 05 B7 FE 1A 03 - mov eax,[Dishonored2.exe+3BDDCD8]
"Dishonored2.exe"+A2DE21: 48 8D 0D 88 FE 1A 03 - lea rcx,[Dishonored2.exe+3BDDCB0]
"Dishonored2.exe"+A2DE28: 33 D2 - xor edx,edx
"Dishonored2.exe"+A2DE2A: 89 05 48 2F CE 01 - mov [Dishonored2.exe+2710D78],eax
}
31
"Ansel Anywhere NOP6"
Auto Assembler Script
{ Game : Dishonored2.exe
Version:
Date : 2019-01-22
Author : Hussain
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(nop6,Dishonored2.exe,74 79 E8 A5 06 6E FF) // should be unique
alloc(newmem,$1000,"Dishonored2.exe"+A2DE14)
label(code)
label(return)
newmem:
code:
nop
nop
call Dishonored2.exe+10E4C0
jmp return
nop6:
jmp newmem
nop
nop
return:
registersymbol(nop6)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
nop6:
db 74 79 E8 A5 06 6E FF
unregistersymbol(nop6)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2.exe"+A2DE14
"Dishonored2.exe"+A2DDDC: 0F 84 AD 00 00 00 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDE2: 48 8B 05 37 1D B7 02 - mov rax,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDE9: 48 8D 0D 30 1D B7 02 - lea rcx,[Dishonored2.exe+359FB20]
"Dishonored2.exe"+A2DDF0: FF 90 10 01 00 00 - call qword ptr [rax+00000110]
"Dishonored2.exe"+A2DDF6: 84 C0 - test al,al
"Dishonored2.exe"+A2DDF8: 0F 85 91 00 00 00 - jne Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DDFE: 48 8B 0D 63 2F CE 01 - mov rcx,[Dishonored2.exe+2710D68]
"Dishonored2.exe"+A2DE05: 48 81 C1 C8 6E 1F 00 - add rcx,001F6EC8
"Dishonored2.exe"+A2DE0C: E8 9F 4D EA FF - call Dishonored2.exe+8D2BB0
"Dishonored2.exe"+A2DE11: 83 F8 05 - cmp eax,05
// ---------- INJECTING HERE ----------
"Dishonored2.exe"+A2DE14: 74 79 - je Dishonored2.exe+A2DE8F
"Dishonored2.exe"+A2DE16: E8 A5 06 6E FF - call Dishonored2.exe+10E4C0
// ---------- DONE INJECTING ----------
"Dishonored2.exe"+A2DE1B: 8B 05 B7 FE 1A 03 - mov eax,[Dishonored2.exe+3BDDCD8]
"Dishonored2.exe"+A2DE21: 48 8D 0D 88 FE 1A 03 - lea rcx,[Dishonored2.exe+3BDDCB0]
"Dishonored2.exe"+A2DE28: 33 D2 - xor edx,edx
"Dishonored2.exe"+A2DE2A: 89 05 48 2F CE 01 - mov [Dishonored2.exe+2710D78],eax
"Dishonored2.exe"+A2DE30: E8 2B 95 71 FF - call Dishonored2.exe+147360
"Dishonored2.exe"+A2DE35: 48 8D 0D 64 B1 B6 02 - lea rcx,[Dishonored2.exe+3598FA0]
"Dishonored2.exe"+A2DE3C: B2 01 - mov dl,01
"Dishonored2.exe"+A2DE3E: E8 9D 94 71 FF - call Dishonored2.exe+1472E0
"Dishonored2.exe"+A2DE43: 83 3D FE B1 B6 02 00 - cmp dword ptr [Dishonored2.exe+3599048],00
"Dishonored2.exe"+A2DE4A: 48 8D 0D CF B1 B6 02 - lea rcx,[Dishonored2.exe+3599020]
}
3
"Ansel Coord Manipulation (F6 to Acvtivate - can leave activated)"
Auto Assembler Script
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"NvCamera64.dll"+224DE)
label(returnhere)
label(exit)
label(xval)
registersymbol(xval)
newmem:
mov [xval],rbx
movups xmm0,[rsp+2C]
jmp exit
exit:
jmp returnhere
xval:
dd 0
"NvCamera64.dll"+224DE:
jmp newmem
nop
nop
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"NvCamera64.dll"+224DE:
movsd [rbx],xmm0
movups xmm0,[rsp+2C]
unregistersymbol(xval)
//Alt: db F2 0F 11 03 0F 10 44 24 2C
Change of movss [rbx+1C],xmm1
00000000
24
2C
89
43
08
F3
0F
11
4B
1C
F3
0F
10
4C
24
ansel fov :movss [rbx+1C],xmm1
00000000
24
2C
89
43
08
F3
0F
11
4B
1C
F3
0F
10
4C
24
Change of movsd [rbx],xmm0
00000000
3C
8B
44
24
28
F2
0F
11
03
0F
10
44
24
2C
Remove arms/weapon
00000000
8B
D3
49
8B
CD
E8
52
D6
FF
FF
48
FF
C6
48
3B
>>>nop from here A2DE8F for no ansel restriction
00000000
CE
01
48
85
C9
0F
84
EB
00
00
00
48
8B
01
FF
90
Change of jne Dishonored2.exe+A2DE8F
00000000
00
00
00
84
C0
0F
85
DA
00
00
00
48
8B
0D
AC
2F
Change of jne Dishonored2.exe+A2DE8F
00000000
00
00
00
84
C0
0F
85
C2
00
00
00
48
8B
0D
94
2F
Change of je Dishonored2.exe+A2DE8F
00000000
FF
50
40
84
C0
0F
84
AD
00
00
00
48
8B
05
37
1D
Change of jne Dishonored2.exe+A2DE8F
00000000
01
00
00
84
C0
0F
85
91
00
00
00
48
8B
0D
63
2F
>> nop to here Change of je Dishonored2.exe+A2DE8F
00000000
EA
FF
83
F8
05
74
79
E8
A5
06
6E
FF
Change of lea rdx,[Dishonored2.exe+1F01098]
00000000
05
BA
8A
AC
01
48
8D
15
2B
32
4D
01
48
8D
0D
AC
8A
Change of call Dishonored2.exe+1472E0
00000000
05
DB
2E
CE
01
E8
81
94
71
FF
48
8B
05
BA
8A
Change of lea rdx,[Dishonored2.exe+1F012B8]
00000000
C8
41
FF
52
10
48
8D
15
85
32
4D
01
48
8D
0D
E6
88
Change of outsb
00000000
00
00
00
00
00
41
6E
73
65
6C
5F
50
Change of jae Dishonored2.exe+1F01101
00000000
00
00
00
41
6E
73
65
6C
5F
50
6C
61
Change of movss [rbx+1C],xmm1
00000000
24
2C
89
43
08
F3
0F
11
4B
1C
F3
0F
10
4C
24
ansel fov :movss [rbx+1C],xmm1
00000000
24
2C
89
43
08
F3
0F
11
4B
1C
F3
0F
10
4C
24
Change of movsd [rbx],xmm0
00000000
3C
8B
44
24
28
F2
0F
11
03
0F
10
44
24
2C
Remove arms/weapon
00000000
8B
D3
49
8B
CD
E8
52
D6
FF
FF
48
FF
C6
48
3B
>>>nop from here A2DE8F for no ansel restriction
00000000
CE
01
48
85
C9
0F
84
EB
00
00
00
48
8B
01
FF
90
Change of jne Dishonored2.exe+A2DE8F
00000000
00
00
00
84
C0
0F
85
DA
00
00
00
48
8B
0D
AC
2F
Change of jne Dishonored2.exe+A2DE8F
00000000
00
00
00
84
C0
0F
85
C2
00
00
00
48
8B
0D
94
2F
Change of je Dishonored2.exe+A2DE8F
00000000
FF
50
40
84
C0
0F
84
AD
00
00
00
48
8B
05
37
1D
Change of jne Dishonored2.exe+A2DE8F
00000000
01
00
00
84
C0
0F
85
91
00
00
00
48
8B
0D
63
2F
>> nop to here Change of je Dishonored2.exe+A2DE8F
00000000
EA
FF
83
F8
05
74
79
E8
A5
06
6E
FF
Change of lea rdx,[Dishonored2.exe+1F01098]
00000000
05
BA
8A
AC
01
48
8D
15
2B
32
4D
01
48
8D
0D
AC
8A
Change of call Dishonored2.exe+1472E0
00000000
05
DB
2E
CE
01
E8
81
94
71
FF
48
8B
05
BA
8A
Change of lea rdx,[Dishonored2.exe+1F012B8]
00000000
C8
41
FF
52
10
48
8D
15
85
32
4D
01
48
8D
0D
E6
88
Change of outsb
00000000
00
00
00
00
00
41
6E
73
65
6C
5F
50
Change of jae Dishonored2.exe+1F01101
00000000
00
00
00
41
6E
73
65
6C
5F
50
6C
61
--TRAINERGENERATORSTART--
--This is autogenerated code. Changing code in this block will
--get erased and rewritten if you regenerate the trainer code
--Uncomment the following line if this is a Cheat Table format trainer and you don't want CE to show (Tip, save as .CETRAINER alternatively)
--hideAllCEWindows()
RequiredCEVersion=6.8
if (getCEVersion==nil) or (getCEVersion()<RequiredCEVersion) then
messageDialog('Please install Cheat Engine '..RequiredCEVersion, mtError, mbOK)
closeCE()
end
d3dcheats={} --table containing the information to build the cheat lines for d3d
addresslist=getAddressList()
memrec3=addresslist.getMemoryRecordByID(3)
memrec4=addresslist.getMemoryRecordByID(4)
memrec14=addresslist.getMemoryRecordByID(14)
memrec15=addresslist.getMemoryRecordByID(15)
memrec22=addresslist.getMemoryRecordByID(22)
memrec3_hotkey0=memrec3.getHotkeyByID(0)
memrec4_hotkey0=memrec4.getHotkeyByID(0)
memrec4_hotkey1=memrec4.getHotkeyByID(1)
memrec14_hotkey0=memrec14.getHotkeyByID(0)
memrec14_hotkey1=memrec14.getHotkeyByID(1)
memrec15_hotkey0=memrec15.getHotkeyByID(0)
memrec15_hotkey1=memrec15.getHotkeyByID(1)
memrec22_hotkey0=memrec22.getHotkeyByID(0)
memrec22_hotkey1=memrec22.getHotkeyByID(1)
d3dcheats[1]={}
d3dcheats[1].description=[[(De)active x coord]]
d3dcheats[1].hotkeys=[[F6]]
d3dcheats[1].top=40
d3dcheats[1].left=10
d3dcheats[1].memrecid=3
d3dcheats[1].hotkeyid=0
function onPostHotkey0(Hotkey)
--Executed after the "toggle*" cheat got executed
local memrec=Hotkey.Owner
local isActive=memrec.Active --get the state after the hotkey got triggered
CETrainer.CHEAT0.setActive(isActive) --gui update, nothing else
if gPlaySoundOnAction then
if isActive then
playSound(gActivateSound)
else
playSound(gDeactivateSound)
end
end
end
memrec3_hotkey0.onPostHotkey=onPostHotkey0
d3dcheats[2]={}
d3dcheats[2].description=[[Increase x by 1]]
d3dcheats[2].hotkeys=[[numeric 4]]
d3dcheats[2].top=78
d3dcheats[2].left=10
d3dcheats[2].memrecid=4
d3dcheats[2].hotkeyid=0
function onHotkey1(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT1.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec4_hotkey0.onHotkey=onHotkey1
d3dcheats[3]={}
d3dcheats[3].description=[[Decrease x by 1]]
d3dcheats[3].hotkeys=[[numeric 6]]
d3dcheats[3].top=116
d3dcheats[3].left=10
d3dcheats[3].memrecid=4
d3dcheats[3].hotkeyid=1
function onHotkey2(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT2.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec4_hotkey1.onHotkey=onHotkey2
d3dcheats[4]={}
d3dcheats[4].description=[[Decrease y by 1]]
d3dcheats[4].hotkeys=[[numeric 5]]
d3dcheats[4].top=154
d3dcheats[4].left=10
d3dcheats[4].memrecid=14
d3dcheats[4].hotkeyid=0
function onHotkey3(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT3.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec14_hotkey0.onHotkey=onHotkey3
d3dcheats[5]={}
d3dcheats[5].description=[[Increase y by 1]]
d3dcheats[5].hotkeys=[[numeric 8]]
d3dcheats[5].top=192
d3dcheats[5].left=10
d3dcheats[5].memrecid=14
d3dcheats[5].hotkeyid=1
function onHotkey4(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT4.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec14_hotkey1.onHotkey=onHotkey4
d3dcheats[6]={}
d3dcheats[6].description=[[Increase z by 1]]
d3dcheats[6].hotkeys=[[numeric 9]]
d3dcheats[6].top=230
d3dcheats[6].left=10
d3dcheats[6].memrecid=15
d3dcheats[6].hotkeyid=0
function onHotkey5(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT5.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec15_hotkey0.onHotkey=onHotkey5
d3dcheats[7]={}
d3dcheats[7].description=[[Decrease z by 1]]
d3dcheats[7].hotkeys=[[numeric 7]]
d3dcheats[7].top=268
d3dcheats[7].left=10
d3dcheats[7].memrecid=15
d3dcheats[7].hotkeyid=1
function onHotkey6(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT6.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec15_hotkey1.onHotkey=onHotkey6
d3dcheats[8]={}
d3dcheats[8].description=[[Set No description to 1]]
d3dcheats[8].hotkeys=[[F7]]
d3dcheats[8].top=306
d3dcheats[8].left=10
d3dcheats[8].memrecid=22
d3dcheats[8].hotkeyid=0
function onHotkey7(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT7.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec22_hotkey0.onHotkey=onHotkey7
d3dcheats[9]={}
d3dcheats[9].description=[[Set No description to 0]]
d3dcheats[9].hotkeys=[[F8]]
d3dcheats[9].top=344
d3dcheats[9].left=10
d3dcheats[9].memrecid=22
d3dcheats[9].hotkeyid=1
function onHotkey8(Hotkey)
--Executed before the hotkey is handled
CETrainer.CHEAT8.setActive(true, 1500)
if gPlaySoundOnAction then
playSound(gActivateSound)
end
end
memrec22_hotkey1.onHotkey=onHotkey8
CETrainer.SEPERATOR.Visible=false
getAutoAttachList().add("Dishonored2.exe")
function popupTrainerHotkeyFunction()
CETrainer.show()
end
createHotkey(popupTrainerHotkeyFunction, 120)
getFreezeTimer().Interval=250
gPlaySoundOnAction=false
CETrainer.show()
function AboutClick()
showMessage(gAboutText)
end
gAboutText=[[This trainer was made by Cheat Engine
www.cheatengine.org]]
function CloseClick()
--called by the close button onClick event, and when closing the form
closeCE()
return caFree --onClick doesn't care, but onClose would like a result
end
-- Direct 3D Hook Function --
D3DHook={} --config options
D3DHook.oldOnOpenProcess=onOpenProcess --easy and compatible way for different scripts to make use of onOpenProcess
D3DHook.transparency=0
D3DHook.textFont=CETrainer.D3DFONTLABEL.font
D3DHook.showHotkeys=true
D3DHook.hasCheckbox=false
D3DHook.stretch= false
D3DHook.distanceBetweenLines=4
D3DHook.distanceFromTop=8
D3DHook.distanceFromBorder=8
D3DHook.position=1
function D3DHook.UpdatePosition()
if D3DHook.position==2 then --Top Right
SetD3DMenuPosition(h.Width-BackgroundSprite.Width, 0)
elseif D3DHook.position==3 then --Bottom Left
SetD3DMenuPosition(0, h.Height-BackgroundSprite.Height)
elseif D3DHook.position==4 then --Bottom Right
SetD3DMenuPosition(h.Width-BackgroundSprite.Width, h.Height-BackgroundSprite.Height)
elseif D3DHook.position==5 then --Center
SetD3DMenuPosition((h.Width / 2)-(BackgroundSprite.Width / 2), (h.Height / 2)-(BackgroundSprite.Height/2))
end
end
function onOpenProcess()
if (D3DHook.oldOnOpenProcess~=nil) then
D3DHook.oldOnOpenProcess() --call the original onOpenProcess if needed
end
h=createD3DHook()
if (h~=nil) then
--create the texture for the background
BackgroundPicture=createPicture()
BackgroundPicture.loadFromStream(findTableFile("D3DTRAINERBACKGROUND").Stream)
BackgroundTexture=h.createTexture(BackgroundPicture)
BackgroundPicture.destroy() --Not needed anymore (The texture has everything we need)
BackgroundPicture=nil
BackgroundSprite=h.createSprite(BackgroundTexture)
BackgroundSprite.Alphablend=1.0-D3DHook.transparency / 100 --alphablend takes a value between 0.0 and 1.0 where 1.0 is fully visible, and transparency is a percentage from 0 to 100 where 100 is invisible
--create the cheat entry lines
for i,info in ipairs(d3dcheats) do
local pic=createPicture()
local text=info.description
if D3DHook.showHotkeys then --add the hotkey as well
text=text.." ("..info.hotkeys..")"
end
pic.Bitmap.Canvas.Font.assign(D3DHook.textFont)
local width=pic.Bitmap.Canvas.getTextWidth(text)
local height=pic.Bitmap.Canvas.getTextHeight(text)
pic.Bitmap.Canvas.Brush.Color=0x010101
pic.Bitmap.Width=width
pic.Bitmap.Height=height
pic.Bitmap.Canvas.textOut(0,0,text)
info.TextTexture=h.createTexture(pic, 0x010101)
pic.destroy()
info.TextSprite=h.createSprite(info.TextTexture)
info.TextSprite.Alphablend=1.0-D3DHook.transparency / 100
if D3DHook.hasCheckbox then
info.CheckboxSprite=h.createSprite(UncheckedTexture)
info.CheckboxSprite.Alphablend=1.0-D3DHook.transparency / 100
end
end
D3DHook.UpdatePosition()
--create a timer to update the position
local t=createTimer()
t.OnTimer=D3DHook.UpdatePosition
t.Interval=2000 --every 2 seconds
t.Enabled=true
if D3DHook.hasCheckbox then
h.OnClick=D3DHookSpriteClick
end
end
end
function D3DHookSpriteClick(d3dhook_sprite, x, y)
for i,info in ipairs(d3dcheats) do
if (d3dhook_sprite==info.CheckboxSprite) or (d3dhook_sprite==info.TextSprite) then
--clicked on a cheat entry. Execute the hotkey event
local mr=getAddressList().getMemoryRecordByID(info.memrecid)
mr.getHotkeyByID(info.hotkeyid).doHotkey() --execute the hotkey event
break
end
end
end
function SetD3DMenuPosition(x,y)
--Sets up the trainer window and position
--set the background position and go through the d3dcheats. Optionally also stretching the background sprite
local maxX=0
local startY=y
BackgroundSprite.X=math.floor(x)
BackgroundSprite.Y=math.floor(y)
x=x+D3DHook.distanceFromBorder
y=y+D3DHook.distanceFromTop
for i,info in ipairs(d3dcheats) do
local _x=x
local lineheight=info.TextSprite.Height
if D3DHook.hasCheckbox then
if info.CheckboxSprite.Height>lineheight then
lineheight=info.CheckboxSprite.Height
end
info.CheckboxSprite.X=math.floor(_x)
_x=_x+info.CheckboxSprite.Width+2
info.CheckboxSprite.Y=math.floor(y+ (lineheight / 2) - (info.CheckboxSprite.Height /2))
end
info.TextSprite.X=math.floor(_x)
info.TextSprite.Y=math.floor(y+ (lineheight / 2) - (info.TextSprite.Height /2))
if maxX<info.TextSprite.X+info.TextSprite.Width+4 then
maxX=info.TextSprite.X+info.TextSprite.Width+4
end
y=y+lineheight+D3DHook.distanceBetweenLines
end
if D3DHook.stretch then
BackgroundSprite.Width=maxX-x+D3DHook.distanceFromBorder
BackgroundSprite.Height=y-startY+D3DHook.distanceFromBorder
end
end
D3DHook.visible=true
function D3DToggleMenuVisible()
D3DHook.visible=not D3DHook.visible
BackgroundSprite.visible=D3DHook.visible
for i,info in ipairs(d3dcheats) do
if D3DHook.hasCheckbox then
info.CheckboxSprite.visible=D3DHook.visible
end
info.TextSprite.visible=D3DHook.visible
end
end
createHotkey(D3DToggleMenuVisible, 121)
--TRAINERGENERATORSTOP--