[Bug 26504] Runes of Magic 3.0.x: "ClientUpdater.exe" crashes sometimes during updates on MD5 checksum processing (squirrel virtual machine)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Apr 21 14:56:19 CDT 2012
http://bugs.winehq.org/show_bug.cgi?id=26504
--- Comment #3 from Anastasius Focht <focht at gmx.net> 2012-04-21 14:56:19 CDT ---
Hello,
cleaning up my disk, hence adding some info before it gets lost (not fully
analysed).
The client uses the builtin "Squirrel" script engine/vm and small scriptlets.
The scripts can be found in a file called "vcfile.res" which is
password-protected.
The password can be easily found using a debugger -> "vcfile-dorkas629"
After unpacking the archive there will be GUI resources (.jpeg files) and
scriptlets (.nut files):
--- snip ---
$ ls -o *.nut
-r--r--r--. 1 focht 248 Apr 30 2009 BeginDlgLayer.nut
-r--r--r--. 1 focht 2810 Apr 30 2009 BeginDlg.nut
-rw-rw-r--. 1 focht 24638 Jun 29 2010 configdata.nut
-r--r--r--. 1 focht 4248 Sep 13 2009 ConfigLayout.nut
-r--r--r--. 1 focht 3724 Sep 13 2009 config.nut
-rw-rw-r--. 1 focht 4634 Oct 18 2011 flags.nut
-rw-rw-r--. 1 focht 6120 Oct 18 2011 include.nut
-r--r--r--. 1 focht 6918 Oct 15 2009 IniSliderBar.nut
-r--r--r--. 1 focht 3956 Sep 10 2009 LanguageDlgLayout.nut
-rw-rw-r--. 1 focht 4788 Oct 18 2011 language.nut
-rw-rw-r--. 1 focht 6884 Mar 15 2010 LanguageSelectDlg.nut
-rw-rw-r--. 1 focht 15276 Jun 30 2010 launcherLayer.nut
-r--r--r--. 1 focht 8940 Feb 4 2010 Launcher.nut
-rw-rw-r--. 1 focht 16152 Apr 19 2010 Main.nut
-r--r--r--. 1 focht 1274 Mar 26 2009 MessageBoxDLG.nut
-rw-rw-r--. 1 focht 1576 Mar 26 2009 MessageBoxLayout.nut
-r--r--r--. 1 focht 1392 Feb 5 2010 stringdef.nut
--- snip ---
The scriptlets are unicode.
Main.nut and Launcher.nut are probably the interesting ones.
They seem to be closely tied to win32 API (window objects, messages/pump).
Example snippet (from Main.nut):
--- snip ---
SQ.LoadModule("stringdef.nut");
SQ.LoadModule("include.nut");
SQ.LoadModule("flags.nut");
SQ.LoadModule("MessageBoxDlg.nut");
SQ.LoadModule("Config.nut");
SQ.LoadModule( "language.nut");
SQ.LoadModule("LanguageSelectDlg.nut");
SQ.LoadModule("Launcher.nut");
g_config<-Ini(config);
g_runeDevConfig<-Ini(runeDev);
class MainFrame extends FrameWnd
{
...
function Notify( msg)
{
//print(msg.sType);
//
if (msg.sType=="timer")
{
//
//print(msg.pSender.GetName());
if (msg.pSender.GetName()=="cur_ProgressBar")
{
if (msg.wParam==100)
{
local now=VC.GetDLFileSizeNow();
local max=VC.GetDLFileSizeMax();
_page.CurlProgress(now,max);
local speed=VC.GetDLSpeed();
local listmsg=format("(%.2f KB/s) ",speed/1024);
SetProPostMessage(listmsg);
if (max>100 && now>0)
{
local par=now*100/ max;
par=par*(50)/100.0;
SetToTalProgressBar(par+30);
}
}
if (msg.wParam==101)
{
local par=VC.MD5_GetPar();
_page.CurlProgress(par,100);
}
}
}
...
--- snip ---
The scriptlets itself might not really be part of the problem (could be
anything, script engine/virtual machine/runtime itself) but it's always useful
to have a high-level language view which can be partly mapped to relay trace
log/win32 API call sequences.
Regards
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list