[Bug 35193] New: FL Studio 11.x VSTi 'Slayer2' plugin doesn't work after registration (ASProtect 1.4 software protection)
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Dec 20 14:33:59 CST 2013
http://bugs.winehq.org/show_bug.cgi?id=35193
Bug ID: 35193
Summary: FL Studio 11.x VSTi 'Slayer2' plugin doesn't work
after registration (ASProtect 1.4 software protection)
Product: Wine
Version: 1.7.9
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs at winehq.org
Reporter: focht at gmx.net
Classification: Unclassified
Hello folks,
a user in #winehq reported another plugin not working with FL 11.x (after
fixing bug 35178).
Plugin download:
http://downloads.image-line.com/slayer/slayer2_personalcopy_install.exe
Interestingly: http://www.image-line.com/documents/slayer.html
--- quote ---
FL Slayer2 is no longer available for purchase.
Existing registered customers will keep receiving support.
--- quote ---
Running 'VerA' (a specific tool to identify ASProtect versions) on the plugin
main dll 'Slayer2.dll' reveals:
--- snip ---
EntryPoint check: ASProtect .DLL style
Crypto info: Block type: 1(U), Info type: 1, Attempts: 1
Application name: Slayer 2
Application version: 1.0
ASProtect version: 1.4 build 04.01 Beta
ASProtect registered to: Image-Line Software
raw info data: [Slayer 2], [1.0], [1.4 build 04.01 Beta], [Image-Line Software]
--- snip ---
The plugin needs to be registered with license code to reproduce the problem
(the user has a legit license).
The protector decrypts the actual plugin code only with a valid license code
during dll initialization.
The 'plugin interface' dll export 'main' is redirected to real code which is
later called by the hosting application -> FL11.
In non-registered version the plugin dll export 'main' is just a stub,
returning zero:
--- snip ---
0024:Ret PE DLL (proc=0x10170001,module=0x10000000
L"Slayer2.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
0024:Ret KERNEL32.LoadLibraryA() retval=10000000 ret=7ede9e5e
0024:Call KERNEL32.GetProcAddress(10000000,7edf0f5b "VSTPluginMain")
ret=7ede9f1e
0024:Ret KERNEL32.GetProcAddress() retval=00000000 ret=7ede9f1e
0024:Call KERNEL32.GetProcAddress(10000000,7edf0f69 "VstPluginMain")
ret=7ede9f42
0024:Ret KERNEL32.GetProcAddress() retval=00000000 ret=7ede9f42
0024:Call KERNEL32.GetProcAddress(10000000,7edf0f77 "main") ret=7ede9f66
0024:Ret KERNEL32.GetProcAddress() retval=1000bd70 ret=7ede9f66
0024:Call KERNEL32.FreeLibrary(10000000) ret=7ede8d31
0024:Call PE DLL (proc=0x10170001,module=0x10000000
L"Slayer2.dll",reason=PROCESS_DETACH,res=(nil))
...
RemotePlugin::DebugMessage: mainEntry prodecure returned NULL
--- snip ---
The protector doesn't like relay thunks (WINEDEBUG=+relay), it will refuse to
load further at some point, showing 'Error 198'.
When you simply run it within FL11 it will spit out the following messages on
terminal before dying:
--- snip ---
...
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 4d004 (device=4 access=3
func=401 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 4d004 (device=4 access=3
func=401 method=0)
err:seh:setup_exception_record stack overflow 896 bytes in thread 0024 eip
7bc43cc2 esp 00240fb0 stack 0x240000-0x241000-0x340000
--- snip ---
Since the user expressed interest to investigate this problem I will back off
for now ;-)
Just a hint for making analysis easier:
Write a small winelib app that acts as loader/host to avoid running the rather
large/complex FL Studio 11.x
Calling 'LoadLibraryA("Slayer2.dll")' is sufficient.
All the magic happens within dll entry point (attach event).
===
I will happily leave any bugs to people wanting to do their own analysis for
fun/learning experience.
Just indicate it: "I'm working on this" ... "I'll have a look" and I'll skip
that bug (there are still thousands of bugs not analysed yet) ;-)
Regards
--
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