View previous topic :: View next topic |
Author |
Message |
atom0s Moderator Reputation: 202
Joined: 25 Jan 2006 Posts: 8552 Location: 127.0.0.1
|
Posted: Thu Nov 26, 2015 1:08 pm Post subject: |
|
|
There is a check for the VEH debugger by looking for the following two modules:
- vehdebug-i386.dll
- vehdebug-x86_64.dll
It uses GetModuleHandle to try and detect both of them. There are other methods of detection for other things that could also be triggering the problem if you have defeated that part of the anti-cheat though.
If you want a hint there is a timer running constantly that does all the various debugger checks which you can find at address: 0x004BB571
An easy way to kill the protection is by making this timer not work or just instantly return.
_________________
- Retired. |
|
Back to top |
|
|
ulysse31 Master Cheater Reputation: 2
Joined: 19 Mar 2015 Posts: 324 Location: Paris
|
Posted: Thu Nov 26, 2015 3:03 pm Post subject: |
|
|
Hey atom0s, thanks.
I had the naive idea that because the dll name is an argument to the getmodulehandleA function, it should be somewhere in the memory space.
I cracked the Getmodulehandle okay, but I'm wondering how you've been able to tell which APIs this program used to detect cheats ?
Especially the zwQueryInformationProcess, did you use a tool that'd report use of antidebug API? did you go through the potential APIs that you knew it could be using ?
|
|
Back to top |
|
|
aikoncwd Grandmaster Cheater Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Thu Nov 26, 2015 3:47 pm Post subject: |
|
|
ulysse3131 wrote: | Hey,
I ve been using this program which is a pretty good training ground for newbies like me, I am trying to attach a debugger not by using already built tools such as olly plugins etc but by hooking myself the functions.
And it turns out that I am among other things having problem attaching VEH, Getmodulehandle looks for this dll but by doing so shouldn't it compare it to "veh.186..." who should be a string located in the program's memory ? I assume i'd need to find the string and hexa edit so that the compare doesn't find a match but this doesn't work out, can anyone explain me why ? |
There are multiple ways to defeat those checks. Remember that VB6 uses unicode string, so you will find each character of the string separated with 0x00
He re is where the string is sotored (remmeber, always in unicode)
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
Back to top |
|
|
ulysse31 Master Cheater Reputation: 2
Joined: 19 Mar 2015 Posts: 324 Location: Paris
|
Posted: Thu Nov 26, 2015 7:51 pm Post subject: |
|
|
Ah yes, thank you I actually thought I made a try with 00 sets of bytes between the hexas but if I did I failed to make it properly because it does work now that I look for the string.
I've managed to attach windbg too but I am having trouble finding the timer function myself, any hint on how to achieve that ? appears that either the time value is encrypted in the memory, either it's not in the memory, either it's using a new variable address every time the time value changes
|
|
Back to top |
|
|
atom0s Moderator Reputation: 202
Joined: 25 Jan 2006 Posts: 8552 Location: 127.0.0.1
|
Posted: Fri Nov 27, 2015 2:18 am Post subject: |
|
|
ulysse3131 wrote: | Hey atom0s, thanks.
I had the naive idea that because the dll name is an argument to the getmodulehandleA function, it should be somewhere in the memory space.
I cracked the Getmodulehandle okay, but I'm wondering how you've been able to tell which APIs this program used to detect cheats ?
Especially the zwQueryInformationProcess, did you use a tool that'd report use of antidebug API? did you go through the potential APIs that you knew it could be using ? |
I did a static analysis of the file first, meaning without loading it into memory (running it) I did some basic overviews.
I loaded it up in CFF / PEiD / DiE to determine the files type, protection/obfuscation (if any) and other useful information such as if its 32bit/64bit, what imports it has, if it connects to the internet at first glance and so on.
From there I can gather a lot of information.
- I can tell the file is a VB5.0/6.0 file.
- I can tell the file is 32bit.
- I can assume the file is not packed or protected.
At that point I load it up in IDA for further static analysis. With IDA, I can find string references to help determine what various API calls are being made that are imported. Given that it is a VB5/6 app, I know that all imports are handled through LoadLibrary/GetModuleAddress/GetProcAddress calls or are handled via the DllFunctionCall API. In IDA's string window you can find the imports like this:
Following the reference you can find the function call that is referenced to that API:
Next, you can switch IDA to search for unicode strings and find more information since VB5/6 used Unicode as the default string type. You'll find a few more but not that many as IDA's string function is not that great with anything other then C style strings.
So instead, load up the app in OllyDbg and use the UltraString Reference plugin. With that we can see even more of the strings / imports:
More looking you can find even more useful data:
And lastly, since this is a VB5/6 application you can use a decompiler tool such as VB Decompiler Pro to get the best output of information for applications like this.
A lot of information can be determined without ever loading the file. You just need to collect some useful data before hand to know which tools will help with the target.
The overall tools I used were:
- CFF Explorer (pe file explorer)
- PEiD and DiE (protection scanners)
- IDA (disassembler)
- VB Decompiler Pro (decompiler)
- OllyDbg (debugger)
- Cheat Engine
Everything about the anti-cheat can be found at that point without ever running the file.
_________________
- Retired. |
|
Back to top |
|
|
ulysse31 Master Cheater Reputation: 2
Joined: 19 Mar 2015 Posts: 324 Location: Paris
|
Posted: Fri Nov 27, 2015 6:06 am Post subject: |
|
|
thanks a lot for taking the time to make this tutorial, it'll help a great deal
|
|
Back to top |
|
|
aikoncwd Grandmaster Cheater Reputation: 23
Joined: 21 Dec 2012 Posts: 591 Location: Spain (Barcelona)
|
Posted: Fri Nov 27, 2015 7:40 am Post subject: |
|
|
Since this crackme/challenge is defeat. I can try to make a challenge #2 adding more complicated routines, some obfuscation strings, etc...
Any interested on that project?
_________________
Hey Hitler
Test here your skill with CheatEngine, I coded a challenge for you. Try to beat it!
HERE |
|
Back to top |
|
|
ulysse31 Master Cheater Reputation: 2
Joined: 19 Mar 2015 Posts: 324 Location: Paris
|
Posted: Fri Nov 27, 2015 12:33 pm Post subject: |
|
|
Sure, I'm sure those who had fun with the first project will have fun with the 2nd one. Once I'll be done toying with the first one I'll definitely try the 2nd one if you make it
|
|
Back to top |
|
|
atom0s Moderator Reputation: 202
Joined: 25 Jan 2006 Posts: 8552 Location: 127.0.0.1
|
|
Back to top |
|
|
h3x1c Master Cheater Reputation: 17
Joined: 27 Apr 2013 Posts: 306
|
Posted: Fri Dec 04, 2015 11:38 pm Post subject: |
|
|
atom0s wrote: | A lot of information can be determined without ever loading the file. You just need to collect some useful data before hand to know which tools will help with the target.
The overall tools I used were:
- CFF Explorer (pe file explorer)
- PEiD and DiE (protection scanners)
- IDA (disassembler)
- VB Decompiler Pro (decompiler)
- OllyDbg (debugger)
- Cheat Engine |
Thank you so much for that detailed rundown, atom0s. I'm quite proficient with Assembly and all the standard CE usage at this point in my journey, so I'm looking to take things to the next level and this helps tremendously.
Do you have any other posts you can think of immediately where you've explained your solutions/processes in depth? Also, are there any other particularly noteworth tools you tend to use that you didn't list here?
Thanks!
_________________
|
|
Back to top |
|
|
atom0s Moderator Reputation: 202
Joined: 25 Jan 2006 Posts: 8552 Location: 127.0.0.1
|
Posted: Fri Dec 04, 2015 11:50 pm Post subject: |
|
|
Haven't really posted much in terms of tutorials anymore due to some personal reasons against sharing things anymore.
As for tools, it depends on the situation. I have hundreds of different apps I use for various purposes when doing reversing, unpacking, cracking, etc. Just depends on what is needed based on the target at hand.
Some things I use very often though would be:
- dnSpy / ILSpy / Reflector (.NET decompilers.)
- ImpREC (Import reconstruction tool for unpacked files.)
- PEiD / ProtectionID / DiE (Protection scanners.)
- de4dot (.NET Deobfuscator)
- John The Ripper (Password bruteforcer.)
Aside from that I have tons of sub-tools for various different obfuscators/protectors that come in handy. As well as the various plugins for all the programs mentioned.
My tools also consist of things like:
- procmon (Process Monitor)
- procexp (Process Explorer)
- PuTTY / NuTTY (SSH clients.)
- Wireshark
- Tcpview
- SmartSniff
- Various .NET related tools.
And so on. Just depends on what I'm doing.
_________________
- Retired. |
|
Back to top |
|
|
Jerduh74 Advanced Cheater Reputation: 0
Joined: 13 Nov 2015 Posts: 68 Location: Phoenix, AZ
|
Posted: Fri Jan 08, 2016 11:19 pm Post subject: AikonCWD |
|
|
No thanks though. I'm not that computer geek professor to do some hacks and such. -_-
|
|
Back to top |
|
|
sasatefa2009 Cheater Reputation: 0
Joined: 10 Dec 2014 Posts: 29 Location: Home
|
|
Back to top |
|
|
LunarTemplar Newbie cheater Reputation: 0
Joined: 19 Dec 2015 Posts: 10
|
Posted: Fri Apr 08, 2016 7:38 pm Post subject: |
|
|
o.0 I've apparently been called out ... back in November
|
|
Back to top |
|
|
arstgarcia How do I cheat? Reputation: 0
Joined: 17 Jun 2016 Posts: 2
|
Posted: Sun Jun 19, 2016 5:10 am Post subject: Can't accept this challenge yet |
|
|
I've read the whole thread, my respect, and salute to those who accepting the challenge and sharing experiences here. My lvl is way too low to accept this LOL
Thank you for sharing great tips!
|
|
Back to top |
|
|
|