Kayaker
November 28th, 2000, 01:35
Hi All,
If anyone is looking for a nice, masochistic challenge...
EldoS AnyCalc multifunction calculator
http://www.eldos.org/elanycalc/elanycalc.html
The program is listed as a PE Windows GUI by FileInfo 2.3. It is protected by AsProtect, but FileInfo doesn't pick this up. The program maps a part of itself initially into memory in the 82Dxxxxx region with MapViewOfFile and then I believe runs through the gamut of GetProcAddress calls from there.
0167:00C6FB09 CALL KERNEL32!MapViewOfFile
Plenty of Self Modifying Code follows. All the unpacking and such occurs from this C6xxxx memory range. Lots of tracing later the program starts to unpack its sections from 401000 onwards. VirtualQueryEx or VirtualAlloc breakpoints seem to be as good a starting point as any to break into the unpacking routine.
Anti Filemon/Regmon - Partway through the unpacking process (stops at 4A4000, then I can't pick it up again) it uses GetClassNameA to check for the presence of 'FilemonClass' and 'RegmonClass'. If found, FindWindowExA and a series of SendMessageA calls send an ExitProcess message of some sort to shut down the SysInternal monitors. Must do something comparable with Prudens RegMonitor98 as it closes this one too. Luckily, modifying Filemon/Regmon by changing the strings 'FilemonClass' and 'RegmonClass' bypasses this protection.
Anti API Monitor - they don't pick up any useful API calls until after the program has started. Not sure if this is something specifically anti-API hook or just because of the memory location the program is running from.
Anti SoftIce - no nag, but Loader32.exe doesn't break on WinMain of course. Most direct calls seem to work OK though, surprisingly.
Anti FrogsIce - this is the one that gets me and the reason for my post. I'm using 1.08.8 with Bulletproof options, I1HERE is set to ON, Hook DRx selected, FrogsIce restarted as directed. I tried other combinations as well. SoftIce doesn't pop up, the program just ignores everything as if it wasn't there and goes on its merry way. Without the helpful hand of FrogsIce returned code I don't know what detection method might be being used. (CreateFileA / _lopen it ain't and there's no report of memory or IDT errors)
Now the FrogsIce domain is still a bit (!) of a Black Art to me, but I've used it successfully before. I just thought I'd mention this program to +Frog's Print & +Spath in case it's doing something new and unusual they might like to have a look at
If FrogsIce works for others on this program then the fault must lay with my system or its user (I give it 50/50 ^_^ )
Beyond all this convoluted protection, it's still quite easy to use the 30 day trial program indefinitely by deleting a CLSID reg entry, and it doesn't seem to put a lot of crap on your system, so anyone could have a look at it without too much concern.
Regards,
Kayaker
If anyone is looking for a nice, masochistic challenge...
EldoS AnyCalc multifunction calculator
http://www.eldos.org/elanycalc/elanycalc.html
The program is listed as a PE Windows GUI by FileInfo 2.3. It is protected by AsProtect, but FileInfo doesn't pick this up. The program maps a part of itself initially into memory in the 82Dxxxxx region with MapViewOfFile and then I believe runs through the gamut of GetProcAddress calls from there.
0167:00C6FB09 CALL KERNEL32!MapViewOfFile
Plenty of Self Modifying Code follows. All the unpacking and such occurs from this C6xxxx memory range. Lots of tracing later the program starts to unpack its sections from 401000 onwards. VirtualQueryEx or VirtualAlloc breakpoints seem to be as good a starting point as any to break into the unpacking routine.
Anti Filemon/Regmon - Partway through the unpacking process (stops at 4A4000, then I can't pick it up again) it uses GetClassNameA to check for the presence of 'FilemonClass' and 'RegmonClass'. If found, FindWindowExA and a series of SendMessageA calls send an ExitProcess message of some sort to shut down the SysInternal monitors. Must do something comparable with Prudens RegMonitor98 as it closes this one too. Luckily, modifying Filemon/Regmon by changing the strings 'FilemonClass' and 'RegmonClass' bypasses this protection.
Anti API Monitor - they don't pick up any useful API calls until after the program has started. Not sure if this is something specifically anti-API hook or just because of the memory location the program is running from.
Anti SoftIce - no nag, but Loader32.exe doesn't break on WinMain of course. Most direct calls seem to work OK though, surprisingly.
Anti FrogsIce - this is the one that gets me and the reason for my post. I'm using 1.08.8 with Bulletproof options, I1HERE is set to ON, Hook DRx selected, FrogsIce restarted as directed. I tried other combinations as well. SoftIce doesn't pop up, the program just ignores everything as if it wasn't there and goes on its merry way. Without the helpful hand of FrogsIce returned code I don't know what detection method might be being used. (CreateFileA / _lopen it ain't and there's no report of memory or IDT errors)
Now the FrogsIce domain is still a bit (!) of a Black Art to me, but I've used it successfully before. I just thought I'd mention this program to +Frog's Print & +Spath in case it's doing something new and unusual they might like to have a look at

If FrogsIce works for others on this program then the fault must lay with my system or its user (I give it 50/50 ^_^ )
Beyond all this convoluted protection, it's still quite easy to use the 30 day trial program indefinitely by deleting a CLSID reg entry, and it doesn't seem to put a lot of crap on your system, so anyone could have a look at it without too much concern.
Regards,
Kayaker