A keypad cracker for 1.4

I need one, not a sweap, but a way to crack the password, like the old one for 1.3.

http://www.garrysmod.org/img/?t=dll&id=57710

I don’t know if it will work. I just found it on www.garrysmod.org.

If you want, I can try recoding the LUA script.

This is a keypad cracker tool, not a hack. I also need a keypad hack for 1.4 so please, if anyone can help i would be very grateful

I dont think it can be cracked and if it can no one has worked it out yet

It’s impossible to crack the 1.4 keypads with clientside scripts.

Not impossible, just more of a challenge.

Afaik you can’t do it with just getting the NWVar, tho i’m not sure about other things like just testing 0000 - 9999 or stuff with memory :v

How about a hack that makes the numbers light up in red when a player looks at them? I don’t know anything about LUA, its just an idea.

You can only crack it with brute forcing, and there are 9999 combinations so… yeah. People have been searching for a cracker since version 1.4 was released, if it was possible then you’d know by now.

Robbis reassures this isn’t crackable clientside by any other way that brute forcing

you could latch on to any unsecure keypad, and track it’s “keypad_num” int, and “keypad_access” bool. Then whenever the “keypad_access” one changed to “true” then print the current “keypad_num”. It won’t work on any secure keypad, and for that effort you could just put a nocollided invisible camera watching the keypad.

I beleave the code is only stored server side, so without brute forcing you won’t get in.

The current input code is set in a networked int on the entity, so it can be displayed. In the case of secure keypads, it’s 10^num which it prints out as *s. The networked bool “keypad_access” is set to true (to allow it to display “access granted” while “keypad_num” still contains the correct code. Thus, you can grab the correct code when it allows access.
[lua]local function KeypadCommand(Ply, Command, Args)
if (Args == nil) then return end

local Ent = ents.GetByIndex(Args[1])
local Show = Ent:GetNetworkedBool("keypad_showaccess")
local Secure = Ent:GetNetworkedBool("keypad_secure")

if (Show) then return end
	if ((Ply:GetShootPos() - Ent:GetPos()):Length() > 50) then return end

if (Args[2] == "reset") then
	Ent:SetNetworkedInt("keypad_num", 0)
	Ent:EmitSound("buttons/button14.wav")
	Keypad.CurrentNum[Args[1]] = nil
elseif (Args[2] == "accept") then
	local Num = Ent:GetNetworkedInt("keypad_num")
	local Owner = Ent:GetNetworkedEntity("keypad_owner")
	local Simple = Ent:GetNetworkedBool("keypad_simple")
	local Key
	local Length
	local Delay
	local InitDelay
	local Repeats

	if (CorrectPassword(Args[1], Keypad.CurrentNum[Args[1]])) then
			Key = Ent:GetNetworkedInt("keypad_keygroup1")
			Length = Ent:GetNetworkedInt("keypad_length1")
			Delay = Ent:GetNetworkedInt("keypad_delay1")
			InitDelay = Ent:GetNetworkedInt("keypad_initdelay1")
			Repeats = Ent:GetNetworkedInt("keypad_repeats1")
		Ent:SetNetworkedBool("keypad_access", true)
		Ent:EmitSound("buttons/button9.wav")
	else
			Key = Ent:GetNetworkedInt("keypad_keygroup2")
			Length = Ent:GetNetworkedInt("keypad_length2")
			Delay = Ent:GetNetworkedInt("keypad_delay2")
			InitDelay = Ent:GetNetworkedInt("keypad_initdelay2")
			Repeats = Ent:GetNetworkedInt("keypad_repeats2")
		Ent:SetNetworkedBool("keypad_access", false)
		Ent:EmitSound("buttons/button11.wav")
	end


	if (Key != nil) and (Key != -1) then
		if (Simple) then
			Owner:ConCommand("+gm_special "..Key.."

“)
timer.Simple(Length, function() Owner:ConCommand(”-gm_special “…Key…”
") end)
else
if (InitDelay != 0) then
timer.Simple(InitDelay, function() RunKeypad(Repeats, Length, Delay, Key, Owner) end)
else
RunKeypad(Repeats, Length, Delay, Key, Owner)
end
end
end

	Ent:SetNetworkedBool("keypad_showaccess", true)
	timer.Simple(2, 
				function()
					if (ValidEntity(Ent)) then
						Ent:SetNetworkedInt("keypad_num", 0)
						Ent:SetNetworkedBool("keypad_showaccess", false)
					end
					
					Keypad.CurrentNum[Args[1]] = nil
				end)
else
	-- local Num = Ent:GetNetworkedInt("keypad_num")*10 + Args[2]
	Keypad.CurrentNum[Args[1]] = Keypad.CurrentNum[Args[1]] or 0
	local Num = Keypad.CurrentNum[Args[1]] *10 + Args[2]

	if (Num < 10000) then
		Keypad.CurrentNum[Args[1]] = Num
		print(Secure)
		if (Secure) then
			Ent:SetNetworkedInt("keypad_num", 10 ^ (string.len(Num)-1))
		else
			Ent:SetNetworkedInt("keypad_num", Num)
		end
		Ent:EmitSound("buttons/button15.wav")
	end
end

end[/lua]

Why is he even setting it shared? i mean you can just return the pressed button clientside and let the server handle the rest.

Who said it’s shared? That extract is from init.lua.

Falco did a tool to know where player are aiming. Also did an spectator script. You just need to turn both on and follow player who’s typing in keypad.

He didn’t put it up for download did he? Thats pretty damn smart though =).

I used that method to crack keypads.

Or someone could find a way to code in a fast bruteforce to make you press each combination, of course, this isn’t very useful because you’d be spending several minutes in front of the keypad. The keypad cracker for 1.3 also works in 1.4, but only for unsecure keypads that have been used at least once.

Here’s a question: Why do you need the keypad cracker anyway? Likelyhood is that you’ll just get banned by an admin for using it. People put keypads up to keep you out, and they’re going to whine and piss and moan about this. :frowning:

It indeed is possible, look what overv did: http://www.youtube.com/watch?v=0BZQ2jjesMg

Bumping for interest!