Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <CheatEntry>
- <ID>0</ID>
- <Description>"Disable DSE"</Description>
- <LastState/>
- <VariableType>Auto Assembler Script</VariableType>
- <AssemblerScript>{$lua}
- --[[
- Updated DSE Bypass By: dr NHA,
- The Original Was Quite Slow As We Wasnt Being Smart And Scanning A Bunch Of Stupid Memory,
- Now Its Updated Its Almost 1-1 With The DSE Patcher Application!
- Requires DBVM Or Youll Have To Use Another Driver And Recode This In Another Language,
- May Not Work On All Versions Of Windows,
- Only Tested On Windows 10 But Should Work On Majority If Not All Windows 11 Builds!
- ]]
- --Cbuff From One Address To A Static Call Load Or Other Static Address
- CBUFF=function(Base,C)
- local AdditionBytes=ReadBytes(Base+C,4,true);
- if AdditionBytes==nil then;return nil;end;
- --Force Signed As Otherwise Ce Will Unsign The Address Making It Impossible To Work With For Math
- local Addition= byteTableToDword(AdditionBytes,true);
- if Addition==nil then;return nil;end;
- local O=Base+(C+4)+Addition;
- return O;
- end
- --Return A Value As Hex
- AsHex=function(value);return string.format('%X',getAddress(value));end;
- --Memscan Setup
- MemScan=function(ValueToScan,vtValueType,Protection,OnlyOneResult,RegionBase,RegionEnd)
- if RegionBase==nil then
- RegionBase=getAddress(process);
- RegionEnd=RegionBase+getModuleSize(process);
- end
- local ms = createMemScan()
- if OnlyOneResult==nil then;OnlyOneResult=false;end;
- ms.OnlyOneResult=OnlyOneResult;
- ms.firstScan(soExactValue, vtValueType, nil, ValueToScan, nil, RegionBase, RegionEnd,Protection, nil, nil ,--[[isHexadecimalInput]] true, nil, nil, nil)
- ms.waitTillDone()
- if ms.OnlyOneResult then;
- local O=ms.result;
- ms.destroy();
- return O;
- else;
- local found = createFoundList(ms)
- found.initialize()
- local Values={};
- if found.Count>0 then;
- for ind=0,found.Count-1,1 do
- Values[#Values+1]=found[ind];
- end
- end
- ms.destroy();
- found.destroy();
- return Values;
- end;
- end
- --Unique Scan Setup From The Mem Scan Setup
- UniqueScan=function(Signature,RegionBase,RegionEnd);
- return MemScan(Signature,vtByteArray,"*X*C*W",true,RegionBase,RegionEnd);
- end;
- --[[
- NHA's DSE Bypass Functions
- ]]
- if NHADSEBP==nil then;
- --Base Variable To Store All My Goodies
- NHADSEBP={
- CiInitialize=0,
- CipInitialize=0,
- CipInitializeCiOptions=0,
- g_CiOptionsAddress=0,
- g_CiOptionsValue=0,
- };
- --Print The Addresses Used For Getting To And The CiOptions Value Itself
- NHADSEBP.Print=function()
- print("CiInitialize: "..AsHex(NHADSEBP.CiInitialize));
- print("CipInitialize: "..AsHex(NHADSEBP.CipInitialize));
- print("CipInitialize: "..AsHex(NHADSEBP.CipInitialize));
- print("g_CiOptionsAddress: "..AsHex(NHADSEBP.g_CiOptionsAddress));
- print("g_CiOptions: "..readByte(NHADSEBP.g_CiOptionsAddress));
- print("g_CiOptionsOriginal: "..NHADSEBP.g_CiOptionsValue);
- end;
- --The Setup Function To Allow You To Write To System And Also Find CiOptionsAddress Via My Algo
- NHADSEBP.Setup=function()
- --Allow DBK
- if not dbk_initialize() then;
- print("Unable To Use DBK!");
- return;
- end;
- --Allow DBK To Be Used Inplace Of The Winapi
- dbk_useKernelmodeOpenProcess();
- dbk_useKernelmodeProcessMemoryAccess();
- dbk_useKernelmodeQueryMemoryRegions();
- --Connect To System
- if getOpenedProcessID()~=4 then
- openProcess(4);
- end
- --Ensure We Are Connected Else Return
- if getOpenedProcessID()~=4 then
- return;
- end
- NHADSEBP.CiInitialize=getAddressSafe("CI.CiInitialize");
- if NHADSEBP.CiInitialize==nil then;
- print("Cannot Find CiInitialize!");return;end;
- NHADSEBP.CipInitialize=NHADSEBP.CiInitialize+0x10;
- NHADSEBP.CipInitialize=UniqueScan("8B CD E8 ?? ?? ?? ?? 48",NHADSEBP.CipInitialize,NHADSEBP.CipInitialize+0x100);
- if NHADSEBP.CiInitialize==nil then;
- print("Cannot Find CipInitialize!");return;
- elseif NHADSEBP.CiInitialize==0 then;
- print("Cannot Find CipInitialize!");return;end;
- --[[
- CI.CiInitialize+52 - 8B CD - mov ecx,ebp
- CI.CiInitialize+54 - E8 ?? ?? ?? ?? - call CI.CiInitialize+A04
- CI.CiInitialize+59 - 48 8B - mov rbx,[rsp+30]
- 8B CD E8 ?? ?? ?? ?? 48
- ]]
- NHADSEBP.CipInitialize=NHADSEBP.CipInitialize+2;
- NHADSEBP.CipInitialize=CBUFF(NHADSEBP.CipInitialize,1);
- --CI.CiInitialize+A1F - 89 0D 1346FFFF - mov [CI.dll+3A438],ecx { (6) }
- NHADSEBP.CipInitializeCiOptions=UniqueScan("89 0D",NHADSEBP.CipInitialize,NHADSEBP.CipInitialize+0x1000);
- if NHADSEBP.CipInitializeCiOptions==nil then;
- print("Cannot Find CipInitializeCiOptions!");return;
- elseif NHADSEBP.CipInitializeCiOptions==0 then;
- print("Cannot Find CipInitializeCiOptions!");return;end;
- NHADSEBP.g_CiOptionsAddress=CBUFF(NHADSEBP.CipInitializeCiOptions,2);
- local T=readByte(NHADSEBP.g_CiOptionsAddress);
- if T~=0 then;
- NHADSEBP.g_CiOptionsValue=T;
- elseif NHADSEBP.g_CiOptionsValue==0 then
- NHADSEBP.g_CiOptionsValue=6;
- end;
- end
- --Set The State Of DSE
- NHADSEBP.SetDSEState=function(Enabled)
- --One Time Setup
- if NHADSEBP.g_CiOptionsAddress==nil then;
- return;--Something Went Wrong!
- end
- --Setup If Nothing Went Wrong Above
- if NHADSEBP.g_CiOptionsAddress==0 then;
- NHADSEBP.Setup();
- end
- if NHADSEBP.g_CiOptionsAddress~=0 then;
- if not Enabled then;
- writeByte(NHADSEBP.g_CiOptionsAddress,0);
- else
- writeByte(NHADSEBP.g_CiOptionsAddress,NHADSEBP.g_CiOptionsValue);
- end;
- NHADSEBP.Print();
- end;
- end;
- end;
- --Self Explanitory
- [ENABLE]
- NHADSEBP.SetDSEState(false);
- [DISABLE]
- NHADSEBP.SetDSEState(true);
- </AssemblerScript>
- </CheatEntry>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement