| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		OldCheatEngineUser Whateven rank
  Reputation: 20
  Joined: 01 Feb 2016 Posts: 1586
 
  | 
		
			
				 Posted: Sun Jul 15, 2018 3:23 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				why you just dont try to pause the process main thread?
 
OpenProcess
 
 
at least this one supported in win98.
 _________________
 About Me;
 
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
 
Jul 26, 2020
 
 	  | STN wrote: | 	 		  | i am a sweetheart. | 	 
   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Sun Jul 15, 2018 8:14 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | Dark Byte wrote: | 	 		  you will have to go with debugactiveprocess and then enter the waitfordebugevent loop and NEVER quit until the target closes
 
 
that way you have access to the thread handles | 	  
 
ok, i start with debugactiveprocess, if i was under (f.e)winxp i may simple use 
 
debugactiveprocesstop, but under win 9x debugactiveprocesstop does not exist.
 
So I have to go for a waitfordebugevent loop (how?? ehm..) but how may unpause the game? 
 
Under Win98 I'm actually running CE 5.6.1, ant it is able in pause/resume the program, and even if I exit from CE the game still run withot exiting...
 
Maybe a little more explicative code ? please....  
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Dark Byte Site Admin
  Reputation: 470
  Joined: 09 May 2003 Posts: 25807 Location: The netherlands
  | 
		
			
				 Posted: Sun Jul 15, 2018 10:05 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				after waitfordebugevent call continuedebugevent and repeat until the end (tip: use a thread)
 
 
but have you tried the function NtSuspendProcess ?
 
 
6.5.1 pause button: https://github.com/cheat-engine/cheat-engine/blob/Cheat_Engine_Old/AdvancedOptionsUnit.pas#L580
 
it tries ntSuspendProcess and falls back on debug if that failed
 _________________
 Do not ask me about online cheats. I don't know any and wont help finding them.
 
 
Like my help? Join me on Patreon so i can keep helping  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Sun Jul 15, 2018 11:56 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				
 
I have to release my prog in Windows 98... so no NtSuspendProcess available.. 
 
BTW, the source version for CE 5.6.1 (who is able in pause/resume under Win98) is still available?
 
Many thanks
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Dark Byte Site Admin
  Reputation: 470
  Joined: 09 May 2003 Posts: 25807 Location: The netherlands
  | 
		
			
				 Posted: Sun Jul 15, 2018 12:06 pm    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				and you're really sure it's not in windows 98 ? (it's part of ntdll.dll, not kernel32)
 
could be 98 se
 _________________
 Do not ask me about online cheats. I don't know any and wont help finding them.
 
 
Like my help? Join me on Patreon so i can keep helping  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Sun Jul 15, 2018 2:21 pm    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | Dark Byte wrote: | 	 		  and you're really sure it's not in windows 98 ? (it's part of ntdll.dll, not kernel32)
 
could be 98 se | 	  
 
Just verified....98se with all patch                   
 
What can i do now?         
 
BTW CE 5.6.1 is able in performing the job even in Windows 95....
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		OldCheatEngineUser Whateven rank
  Reputation: 20
  Joined: 01 Feb 2016 Posts: 1586
 
  | 
		
			
				 Posted: Sun Jul 15, 2018 5:54 pm    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | Code: | 	 		  | NtOpenThread (OUT PHANDLE ThreadHandle, IN ACCESS_MASK AccessMask, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId) | 	  
 
IN POBJECT_ATTRIBUTES ObjectAttributes can be NULL
 
IN ACCESS_MASK AccessMask
 
 	  | Quote: | 	 		  typedef struct _CLIENT_ID
 
{
 
     PVOID UniqueProcess;
 
     PVOID UniqueThread;
 
} CLIENT_ID, *PCLIENT_ID; | 	  
 _________________
 About Me;
 
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
 
Jul 26, 2020
 
 	  | STN wrote: | 	 		  | i am a sweetheart. | 	 
   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Mon Jul 16, 2018 12:09 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | OldCheatEngineUser wrote: | 	 		   	  | Code: | 	 		  | NtOpenThread (OUT PHANDLE ThreadHandle, IN ACCESS_MASK AccessMask, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId) | 	 
  | 	  
 
Thanks,
 
BTW the ntdll.dll of Win98 does not have NtOpenThread        
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		OldCheatEngineUser Whateven rank
  Reputation: 20
  Joined: 01 Feb 2016 Posts: 1586
 
  | 
		
			
				 Posted: Mon Jul 16, 2018 12:48 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				it do have, it requires nt kernel 3.5+ and win98 is higher than 3.5
 _________________
 About Me;
 
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
 
Jul 26, 2020
 
 	  | STN wrote: | 	 		  | i am a sweetheart. | 	 
   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Dark Byte Site Admin
  Reputation: 470
  Joined: 09 May 2003 Posts: 25807 Location: The netherlands
  | 
		
			
				 Posted: Mon Jul 16, 2018 3:43 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				use getprocaddress to get the functions you need. do not static link then as the .lib files you're using probably don't have them
 _________________
 Do not ask me about online cheats. I don't know any and wont help finding them.
 
 
Like my help? Join me on Patreon so i can keep helping  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Mon Jul 16, 2018 5:24 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				may you gently give me an utility able to examine the export function of a dll?
 
I have try with an hex editor on all .lib and dll (both Visual C++ 6.0 my win98 compiler and both entire windows dir).... no luck...
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Dark Byte Site Admin
  Reputation: 470
  Joined: 09 May 2003 Posts: 25807 Location: The netherlands
  | 
		
			
				 Posted: Mon Jul 16, 2018 5:46 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				CE you can go to memory view->tools->dissect pe headers
 
 
then click the open file icon and pick the dll you're interested in and then check the exports tab.
 
 
If the exports tab is empty ( happens sometimes when it's not as CE expects) then go to the ALL tab. Expand PE Header->Number of RVA and sizes->(Export Table)->Address of names
 _________________
 Do not ask me about online cheats. I don't know any and wont help finding them.
 
 
Like my help? Join me on Patreon so i can keep helping  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		OldCheatEngineUser Whateven rank
  Reputation: 20
  Joined: 01 Feb 2016 Posts: 1586
 
  | 
		
			
				 Posted: Mon Jul 16, 2018 6:19 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				you can also download cff explorer, btw to get ntopenthread address use loadlibrary and pass library name (ie ntdll.dll) loadlibrary will return a handle pass it to getprocaddress with either ordinal number of the function or function name.
 
 
but keep in mind that ordinal number in win98 is different than other windows os versions.
 
you still can bring ntdll from win98 to ur os and browse it til you find the function number you want.
 _________________
 About Me;
 
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
 
Jul 26, 2020
 
 	  | STN wrote: | 	 		  | i am a sweetheart. | 	 
   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		danrevella Master Cheater
  Reputation: 2
  Joined: 11 Jun 2008 Posts: 292
 
  | 
		
			
				 Posted: Tue Jul 17, 2018 12:21 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				 	  | OldCheatEngineUser wrote: | 	 		  you can also download cff explorer, btw to get ntopenthread address use loadlibrary and pass library name (ie ntdll.dll) loadlibrary will return a handle pass it to getprocaddress with either ordinal number of the function or function name.
 
 | 	  
 
I have try cff explorer, and after examining both kernel32.dll and ntdll.dll, taken from my installed win98 SE I may guaranted that NO ntopenthread exist....
 
here is my version of these files
 
https://we.tl/upLoAjkzTr
 
 
BTW, under my win98 and also win95 osr2 version CE 5.6.1 is able in pause and resume a process but I don't know how..
 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		OldCheatEngineUser Whateven rank
  Reputation: 20
  Joined: 01 Feb 2016 Posts: 1586
 
  | 
		
			
				 Posted: Tue Jul 17, 2018 12:38 am    Post subject:  | 
				       | 
			 
			
				
  | 
			 
			
				either the process have one thread which is the main thread, and ce pause that thread.
 
 
or in win98 pausing the main thread result pausing the whole process.
 
 
at least try to pause the process main thread, and see what happens.
 _________________
 About Me;
 
I Use CE Since Version 1.X, And Still Learning How To Use It Well!
 
Jul 26, 2020
 
 	  | STN wrote: | 	 		  | i am a sweetheart. | 	 
   | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |