GetSystemTimes Issue?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
IMF2000

GetSystemTimes Issue?

Post by IMF2000 »

Hello,

Attempting to run BEC anti-cheat which is an admin tool for Arma II game servers.

http://ibattle.org/downloads/

Running into the following error:

fixme:time:GetSystemTimes (0x33f204,0x33f214,0x33f20c): Stub!
Invalid address (0x7b85daff start_process+0x5f) for breakpoint 0, disabling it


I have Visual C++ Installed which is a requirement.



$ wine Bec.exe
fixme:time:GetSystemTimes (0x33f204,0x33f214,0x33f20c): Stub!
Traceback (most recent call last):
File "Bec.py", line 14, in <module>
File "zipextimporter.pyo", line 82, in load_module
File "psutil\__init__.pyo", line 455, in <module>
File "psutil\__init__.pyo", line 451, in cpu_times
File "psutil\_psmswindows.pyo", line 57, in get_system_cpu_times
WindowsError: [Error 0] Success


file Bec.exe
Bec.exe: PE32 executable (console) Intel 80386, for MS Windows, UPX compressed



I compiled wine from git-wine and I checked time.c:

/*********************************************************************
* GetSystemTimes (KERNEL32.@)
*
* Retrieves system timing information
*
* PARAMS
* lpIdleTime [O] Destination for idle time.
* lpKernelTime [O] Destination for kernel time.
* lpUserTime [O] Destination for user time.
*
* RETURNS
* TRUE if success, FALSE otherwise.
*/
BOOL WINAPI GetSystemTimes(LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime)
{
FIXME("(%p,%p,%p): Stub!\n", lpIdleTime, lpKernelTime, lpUserTime);

return FALSE;
}



Any ideas?
IMF2000

Re: GetSystemTimes Issue?

Post by IMF2000 »

Some summarised and edited notes from a conversation on IRC about this.


"lpIdleTime = 0; lpKernelTime = 0; lpUserTime = 0;
before the return FALSE there add

http://msdn.microsoft.com/en-us/library ... s.85).aspx
it says if a NULL is passed in then the call should cause an access violation

lpSystemTime is an out
so you probably need to fill the SYSTEMTIME structure with some real data

the application doesn't checks if the call fails or not
or you can open a bugzilla entry

here's the actual MSDN
http://msdn.microsoft.com/en-us/library ... s.85).aspx

here's the FILETIME structure:
http://msdn.microsoft.com/en-us/library ... s.85).aspx

i would work from those two and implement some values. shouldnt really matter what you put there
probably just dump 0s in the struct and pass it back and it should work

the problem is PROBABLY that your app is asking for values, sends in uninitialized structs, and gets back some super high values that crash it.. setting them to 0s should fix.
and you can prob use the debugger to write to those addresses and test before writing code if you know how to do that"
IMF2000

Re: GetSystemTimes Issue?

Post by IMF2000 »

It appeared to work, I got past that line and the application splash screen appears, however the application exits.

I stepped through with windbg and it reveals the following:

Wine-dbg>next
Invalid address (0x7b85daff start_process+0x5f) for breakpoint 0, disabling it


any pointers for this little jem?
donkers
Newbie
Newbie
Posts: 1
Joined: Fri Nov 09, 2012 8:18 pm

Re: GetSystemTimes Issue?

Post by donkers »

Hey, Did you ever get any further with this? Did you manage to get BEC working under wine?
IMF2000

Re: GetSystemTimes Issue?

Post by IMF2000 »

Yes I did.

Apply the patch to wine source as mentioned above.

Run BEC with --dsc flag:

wine Bec.exe -f config.cfg --dsc


Works great in screen.
Locked