View previous topic :: View next topic |
Author |
Message |
atom0s Moderator
Reputation: 204
Joined: 25 Jan 2006 Posts: 8580 Location: 127.0.0.1
|
Posted: Mon Aug 28, 2017 12:38 am Post subject: Plugin Crashes CE Without Error/Info |
|
|
Working on a basic plugin that doesn nothing but hooks a few local API within CE as a means to bypass some common anti-cheat detections. However, just having the plugin load within CE is causing it to crash without warning/error.
At the moment, the only thing I have hooked as a test is:
- LoadLibraryA
- LoadLibraryW
Debug output shows:
Code: |
< MESSAGES RELATED TO CE STARTUP >
custom_ce_name.exe Offset of LBR_Count=760
custom_ce_name.exe sizeof fxstate = 512
custom_ce_name.exe TSymhandler.create
custom_ce_name.exe TSymhandler.create 1
custom_ce_name.exe TSymhandler.create 2
custom_ce_name.exe TSymhandler.create 3
custom_ce_name.exe TSymbolListHandler.create 1
custom_ce_name.exe TSymbolListHandler.create 2
custom_ce_name.exe TSymbolListHandler.create exit
custom_ce_name.exe TSymhandler.create exit
custom_ce_name.exe TSymhandler.create
custom_ce_name.exe TSymhandler.create 1
custom_ce_name.exe TSymhandler.create 2
custom_ce_name.exe TSymhandler.create 3
custom_ce_name.exe TSymbolListHandler.create 1
custom_ce_name.exe TSymbolListHandler.create 2
custom_ce_name.exe TSymbolListHandler.create exit
custom_ce_name.exe TSymhandler.create exit
custom_ce_name.exe TSymhandler.reinitialize
custom_ce_name.exe loadmodulelist or force was true
custom_ce_name.exe Invalid vmx
custom_ce_name.exe CreateScanfolder
custom_ce_name.exe fScanResultFolder=C:\Users\atom0s\AppData\Local\Temp\custom cheat engine name here\
custom_ce_name.exe symbolloader thread finished
custom_ce_name.exe Symbolhandler: sync: Calling finishedloadingsymbols
custom_ce_name.exe after finishedloadingsymbols
custom_ce_name.exe finishedLoadingSymbols called
custom_ce_name.exe Symbol loader thread has finished without errors
custom_ce_name.exe exit finishedLoadingSymbols()
< MESSAGES RELATED TO LOADING PLUGIN >
custom_ce_name.exe shell\comdlg32\fileopensave.cpp(14274)\comdlg32.dll!774A2833: (caller: 774D211C) ReturnHr(1) tid(403c) 80004005 Unspecified error
custom_ce_name.exe CallContext:[\PickerModalLoop]
custom_ce_name.exe Hello world
custom_ce_name.exe Deleting C:\Users\atom0s\AppData\Local\Temp\custom cheat engine name here\{EA0AAD77-FD59-414F-B73D-FD5B956097E3}
custom_ce_name.exe deleted the scanresults
custom_ce_name.exe <process started at 23:06:28.235 has now terminated>
|
No error/warning is shown, it just terminates instantly when trying to load. CE does display the plugin's information after adding it to the list, freezes for about 5 seconds then closes.
Plugin is coded in C++ (MSVC++ 2015 Update 3).
Exports look like:
Code: |
BOOL __stdcall CEPlugin_GetVersion(PPluginVersion pv, int sizeofpluginversion)
{
pv->version = CESDK_VERSION;
pv->pluginname = g_PluginName;
return TRUE;
}
BOOL __stdcall CEPlugin_InitializePlugin(PExportedFunctions ef, int pluginid)
{
g_ExportedFuncs = ef;
g_Hwnd = (HWND)g_ExportedFuncs->GetMainWindowHandle();
return Initialize();
}
BOOL __stdcall CEPlugin_DisablePlugin(void)
{
Cleanup();
return TRUE;
}
|
Initialize() is a function that handles the two API hooks. Method used is not public so I can't share it here. But this method is not a problem in other processes so I do not believe it is the problem.
Another issue is after loading any plugin, I seem to get 'Access Violation' errors opening and closing the options window of CE. _________________
- Retired. |
|
Back to top |
|
 |
atom0s Moderator
Reputation: 204
Joined: 25 Jan 2006 Posts: 8580 Location: 127.0.0.1
|
Posted: Mon Aug 28, 2017 1:11 am Post subject: |
|
|
To pin point this issue a bit more, it does appear to be an issue with hooking LoadLibraryA regardless of what hooking library or method is used. I tried several and all cause CE to have various issues/errors.
I'll get various pop-ups between different libraries ranging from:
- Crash/Close without error.
- Access violation
- Privileged Instruction _________________
- Retired. |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 468
Joined: 09 May 2003 Posts: 25707 Location: The netherlands
|
Posted: Mon Aug 28, 2017 2:21 am Post subject: |
|
|
without seeing the code I can't say much.
if you're hooking loadlibrary, make sure you're also sanitizing the parameters given. e.g the path might be NULL
Also, don't use exception handling in your dll. When an exception happens, CE/fpc tries to handle it, regardless of your own exception handler _________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
 |
|