Quote:
I am not sure I understand your points about the safe list. Do you want the password entry program to check if a password sniffer is running and scream if an unknown process is found?
sorry if I was vague but, basically it would do an initial check (first run- after installation) of all processes running and ask the user which ones are safe to be open during password entry, (just in case if Eve's programs are running). Once a list is made of running process properties (static ex. name, location, size, modification?, created?, makers), the list is hashed a bit, and put into a text document.
Any loads after that (during password entry or setting modification) , the code will check the processes again hash and compare to the older hash.
What if Eve's process gained control of Bob's computer? Would it be safe?
Maybe. Eve would need to find a way to let Bob open the code without the her unapproved process apperaring open. Many ways to do this, but the easiest would be as you said in a different direction, change the names and size.
Btw, that might be useful for a moderate hacker. And unbreakable to a new hacker who doesnt know the limits of non-hardware upgraded computers. (They might not know how it [their software] is found.)
Preliminary Code:
Code:
gosub,GetProcessInfo
msgbox,%allnames%
return
GetProcessInfo:
allnames=
DllCall( "advapi32.dll\LookupPrivilegeValueA", "uint", 0, "str", "SeDebugPrivilege", "int64*", luid_SeDebugPrivilege )
Process, Exist
pid_this := ErrorLevel
DllCall( "OpenProcess", "uint", 0x400, "int", false, "uint", pid_this )
DllCall( "advapi32.dll\OpenProcessToken", "uint", hp_this, "uint", 0x20, "uint*", ht_this )
VarSetCapacity( token_info, 4+( 8+4 ), 0 )
EncodeInteger( 1, 4, &token_info, 0 )
EncodeInteger( luid_SeDebugPrivilege, 8, &token_info, 4 )
EncodeInteger( 2, 4, &token_info, 12 )
DllCall( "advapi32.dll\AdjustTokenPrivileges", "uint", ht_this, "int", false, "uint", &token_info, "uint", 0, "uint", 0, "uint", 0 )
if A_OSVersion in WIN_95,WIN_98,WIN_ME
{
MsgBox, This Windows version (%A_OSVersion%) is not supported.
}
pid_list_size := 4*1000
VarSetCapacity( pid_list, pid_list_size )
status := DllCall( "psapi.dll\EnumProcesses", "uint", &pid_list, "uint", pid_list_size, "uint*", pid_list_actual )
;if ( ErrorLevel or !status )
; return
total := pid_list_actual//4
r_pid_list=
address := &pid_list
loop, %total%
{
p_pid := ( *( address )+( *( address+1 ) << 8 )+( *( address+2 ) << 16 )+( *( address+3 ) << 24 ) )
h_process := DllCall( "OpenProcess", "uint", 0x10|0x400, "int", false, "uint", p_pid )
name_size = 255
VarSetCapacity( name, name_size )
result := DllCall( "psapi.dll\GetModuleFileNameExA", "uint", h_process, "uint", 0, "str", name, "uint", name_size )
DllCall( "CloseHandle", h_process )
if name !=
allnames=%allnames%`n%name%
address += 4
}
DllCall( "CloseHandle", "uint", ht_this )
DllCall( "CloseHandle", "uint", hp_this )
return
EncodeInteger( p_value, p_size, p_address, p_offset )
{
loop, %p_size%
DllCall( "RtlFillMemory", "uint", p_address+p_offset+A_Index-1, "uint", 1, "uchar", p_value >> ( 8*( A_Index-1 ) ) )
}
Try and see if you can get a program to hide from this program, *yawn* its 2:00 (night) right now, but ill keep trying different methods.
I found this code on this forum somewhere, and I tried simplifiying it, but you might have better luck.
Quote:
And making a screenshot at a mouse click defeats the constant shuffling, so why bother?
I found this problem too, so therefore im trying to make sure the processes open are 'clean' and won't pose a threat.
EDIT: Oh I see, what you mean, good question. Ill fix that now. (by making the buttons blank during a click\hover and until (maybe) the shuffling is done.) (don't be scared, I'm making it customizable per person/machine so you could choose to not have the numbers hide or shuffle during entry.
(ONE PROBLEM: What if a program is opened by the user or a 'approved' process?)[Make a periodic check after shuffling?]
EDIT:Another true statement Laszlo, (about the macros and coded imgs), but here I'd hope to trust the user into not allowing email clients, browsers, etc. open.