| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| GordonBM Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 06 Jul 2007
 Posts: 205
 
 
 | 
			
				|  Posted: Fri Aug 13, 2010 5:42 pm    Post subject: Crack this |   |  
				| 
 |  
				| Obtain the succes box. 
 Protection:
 -Obfuscation
 -String Encryption
 -Compressed
 -Anti-Debugger
 
 Good luck.
 
 http://rapidshare.com/files/412797772/CrackMe.rar.html
 _________________
 
  	  | maxuer wrote: |  	  | :p What is a memory scanner and where I found one?
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| atom0s Moderator
 
  Reputation: 205 
 Joined: 25 Jan 2006
 Posts: 8587
 Location: 127.0.0.1
 
 | 
			
				|  Posted: Fri Aug 13, 2010 6:28 pm    Post subject: |   |  
				| 
 |  
				| Gives an exception on my system (Virtual Machine) on startup: 
  	  | Code: |  	  | System.Runtime.InteropServices.COMException (0x80070422): The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. (Exception from HRESULT: 0x80070422) at System.Management.ThreadDispatch.Start()
 at System.Management.ManagementScope.Initialize()
 at System.Management.ManagementObject.Initialize(Boolean getObject)
 at System.Management.ManagementClass.GetInstances(EnumerationOptions options)
 at System.Management.ManagementClass.GetInstances()
 at CrackMe.Form1.eVbtiIoOv(Object , EventArgs )
 at System.EventHandler.Invoke(Object sender, EventArgs e)
 at System.Windows.Forms.Form.OnLoad(EventArgs e)
 at System.Windows.Forms.Form.OnCreateControl()
 at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
 at System.Windows.Forms.Control.CreateControl()
 at System.Windows.Forms.Control.WmShowWindow(Message& m)
 at System.Windows.Forms.Control.WndProc(Message& m)
 at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
 at System.Windows.Forms.ContainerControl.WndProc(Message& m)
 at System.Windows.Forms.Form.WmShowWindow(Message& m)
 at System.Windows.Forms.Form.WndProc(Message& m)
 at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
 at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
 at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 | 
 
 Haven't looked into the cause or anything, just tried it. Just a heads up.
 
 
 Edit ::
 
 Problem was caused due to WMI service being disabled. But there is still issues since apparently whatever value you are querying for doesn't exist on my system.
 
 
  	  | Code: |  	  | System.NullReferenceException: Object reference not set to an instance of an object. | 
 _________________
 
 - Retired. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| GordonBM Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 06 Jul 2007
 Posts: 205
 
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| atom0s Moderator
 
  Reputation: 205 
 Joined: 25 Jan 2006
 Posts: 8587
 Location: 127.0.0.1
 
 | 
			
				|  Posted: Sat Aug 14, 2010 2:46 am    Post subject: |   |  
				| 
 |  
				| Still throws the 2nd exception: 
 
  	  | Code: |  	  | System.NullReferenceException: Object reference not set to an instance of an object. at CrackMe.Form1.ccK7ruSOk(Object , EventArgs )
 at System.EventHandler.Invoke(Object sender, EventArgs e)
 at System.Windows.Forms.Form.OnLoad(EventArgs e)
 at System.Windows.Forms.Form.OnCreateControl()
 at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
 at System.Windows.Forms.Control.CreateControl()
 at System.Windows.Forms.Control.WmShowWindow(Message& m)
 at System.Windows.Forms.Control.WndProc(Message& m)
 at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
 at System.Windows.Forms.ContainerControl.WndProc(Message& m)
 at System.Windows.Forms.Form.WmShowWindow(Message& m)
 at System.Windows.Forms.Form.WndProc(Message& m)
 at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
 at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
 at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 | 
 
 I'm not any bit of an expert at debugging .NET applications either. But, for this one there is a simple check true/false for which message box gets shown.
 
 Pseudo:
 
 
  	  | Code: |  	  | if( somefunction() == true ) {
 Msgbox( "Success!" );
 }
 else
 {
 Msgbox( "try again" );
 }
 | 
 
 Because of the exception I can't tell whats being referenced or trying to be used. But I can still run the executable and get the success message with one small edit:
 
 
  	  | Code: |  	  | IL_001F: 286C00000A       call Int32 Microsoft.VisualBasic.CompilerServices.Operators::CompareString(String, String, Boolean) IL_0024: 16               ldc.i4.0
 IL_0025: FE01             ceq
 IL_0027: 0A               stloc.0
 IL_0028: 06               ldloc.0
 IL_0029: 3920000000       brfalse IL_004E
 IL_002E: 2060030000       ldc.i4 0x00000360
 IL_0033: 2850000006       call String F3FO27cfFH8Sr8slp5.ky9Rfiwa4cvcBWJ6Ir::nJgjkGowy(Int32)
 IL_0038: 16               ldc.i4.0
 IL_0039: 2074030000       ldc.i4 0x00000374
 IL_003E: 2850000006       call String F3FO27cfFH8Sr8slp5.ky9Rfiwa4cvcBWJ6Ir::nJgjkGowy(Int32)
 IL_0043: 287D00000A       call ValueType  Microsoft.VisualBasic.MsgBoxResult Microsoft.VisualBasic.Interaction::MsgBox(System.Object, ValueType  Microsoft.VisualBasic.MsgBoxStyle, System.Object)
 IL_0048: 26               pop
 IL_0049: 381C000000       br IL_006A
 IL_004E: 00               nop                           // <== IL_0029
 IL_004F: 208A030000       ldc.i4 0x0000038A
 IL_0054: 2850000006       call String F3FO27cfFH8Sr8slp5.ky9Rfiwa4cvcBWJ6Ir::nJgjkGowy(Int32)
 IL_0059: 16               ldc.i4.0
 IL_005A: 209A030000       ldc.i4 0x0000039A
 IL_005F: 2850000006       call String F3FO27cfFH8Sr8slp5.ky9Rfiwa4cvcBWJ6Ir::nJgjkGowy(Int32)
 IL_0064: 287D00000A       call ValueType  Microsoft.VisualBasic.MsgBoxResult Microsoft.VisualBasic.Interaction::MsgBox(System.Object, ValueType  Microsoft.VisualBasic.MsgBoxStyle, System.Object)
 IL_0069: 26               pop
 IL_006A: 00               nop                           // <== IL_0049
 IL_006B: 2A               ret
 | 
 
 Like the previous, we can edit the boolean to give the success message even if it failed. Not a real 'crack' solution or anything but it gets the message we want. I can't tell whats being referenced though so I can't really do much more then this.
 
 Offset 0x00001DD1:
 0x39 to 0x3A (compare jump true/false change).
 _________________
 
 - Retired. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| GordonBM Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 06 Jul 2007
 Posts: 205
 
 
 | 
			
				|  Posted: Sat Aug 14, 2010 7:01 pm    Post subject: |   |  
				| 
 |  
				| I'm even suprised you got around all those protections. How you crack it doesn't really bother me. Congratulations! _________________
 
  	  | maxuer wrote: |  	  | :p What is a memory scanner and where I found one?
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| atom0s Moderator
 
  Reputation: 205 
 Joined: 25 Jan 2006
 Posts: 8587
 Location: 127.0.0.1
 
 | 
			
				|  Posted: Sun Aug 15, 2010 10:19 am    Post subject: |   |  
				| 
 |  
				|  	  | GordonBM wrote: |  	  | I'm even suprised you got around all those protections. How you crack it doesn't really bother me. Congratulations! | 
 
 In the long run obfuscation isn't much of a protection.
 
 The flow of the application is still the same and most IL debuggers can understand and display calls to framework things such as the above does with property setters and so on. It's fairly easy to still understand whats going on even if the strings and function names are scrambled.
 _________________
 
 - Retired. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| GordonBM Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 06 Jul 2007
 Posts: 205
 
 
 | 
			
				|  Posted: Sun Aug 15, 2010 8:12 pm    Post subject: |   |  
				| 
 |  
				| Yeah, I can tell. Would be awesome if you made a keygen though.
 _________________
 
  	  | maxuer wrote: |  	  | :p What is a memory scanner and where I found one?
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| atom0s Moderator
 
  Reputation: 205 
 Joined: 25 Jan 2006
 Posts: 8587
 Location: 127.0.0.1
 
 | 
			
				|  Posted: Tue Aug 17, 2010 3:13 pm    Post subject: |   |  
				| 
 |  
				|  	  | GordonBM wrote: |  	  | Would be awesome if you made a keygen though. | 
 
 With the exceptions that are thrown when I launch it, there isn't much I can attempt to do with it since I can't really fully run it. :/
 _________________
 
 - Retired. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| GordonBM Expert Cheater
 
 ![]() Reputation: 0 
 Joined: 06 Jul 2007
 Posts: 205
 
 
 | 
			
				|  Posted: Tue Aug 17, 2010 9:09 pm    Post subject: |   |  
				| 
 |  
				| Can you tell me if you have 64-bit or 32-bit OS? _________________
 
  	  | maxuer wrote: |  	  | :p What is a memory scanner and where I found one?
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| atom0s Moderator
 
  Reputation: 205 
 Joined: 25 Jan 2006
 Posts: 8587
 Location: 127.0.0.1
 
 | 
			
				|  Posted: Tue Aug 17, 2010 10:28 pm    Post subject: |   |  
				| 
 |  
				|  	  | GordonBM wrote: |  	  | Can you tell me if you have 64-bit or 32-bit OS? | 
 
 32bit; I can assure you it's due to you using WMI though.
 _________________
 
 - Retired. |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |