首页
社区
课程
招聘
[原创]密码查看器&&窗口激活专家
发表于: 2006-7-25 15:44 13885

[原创]密码查看器&&窗口激活专家

2006-7-25 15:44
13885

密码查看器&&窗口激活专家  

代码如下:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        Programmed by nohacks, kker.cn@163.com
;        Website: http://hacker0058.ys168.com
;                 Win32 ASM is Masm
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        版本信息
;        密码查看器   - 可以查看密码编辑框中的密码
;     &&窗口激活专家 - 可以激活灰色按纽
;           V1.0 ------        2006年7月25日
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

                .386
                .model flat, stdcall
                option casemap :none   

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        Include 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

include                windows.inc
include                user32.inc
include                kernel32.inc
includelib        user32.lib
includelib        kernel32.lib

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        Equ 数据
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

ICO_1           equ             1
DLG_MAIN        equ                1000
ID_PWD                equ                1001
IDC_ENABLE      equ             1002
IDC_HANDLE      equ             1003
IDC_CurPos      equ             1004
IDC_CurHand     equ             1005
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;        数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.data
template db '%lX',0
posBuffer db 10 dup (0)
D       db  ",",0

.data?

hInstance        dd        ?
szBuffer        db        256 dup        (?)
phwnd           dd ?
X              db 10 dup(?)
Y              db 10 dup(?)

.code
EnableAll proc hWnd:HWND,lParam:LPARAM                        
        invoke        IsWindowEnabled,hWnd                           
        cmp        eax,TRUE
        je        getNext

        invoke        EnableWindow,hWnd,TRUE                          
  getNext:
        mov        eax,TRUE                                       
        ret
EnableAll endp

;********************************************************************
_ProcDlgMain        proc        uses ebx edi esi, \
                hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:DWORD
        local        @stPoint:POINT
        local        @hWindow:dword
        local        @STYLE
        local   wc:WNDCLASSEX
       
        mov        eax,wMsg
               
        cmp        eax,WM_TIMER                                 
        je        getPoint
        cmp        eax,WM_INITDIALOG                             
        je        boxStart
        cmp        eax,WM_CLOSE
        je        boxClose       
retFalse:
        mov        eax,FALSE
        ret

boxClose:
        invoke        EndDialog,hWnd,NULL
        invoke        KillTimer,hWnd,1
        jmp        retTrue

boxStart:
        invoke LoadIcon,hInstance,ICO_1
       
        invoke        SendMessage,hWnd,WM_SETICON,ICON_BIG,eax    ;设置窗口图标  
                                      
        invoke        SetWindowPos,hWnd,HWND_TOPMOST,0,0,0,0, SWP_NOMOVE or SWP_NOSIZE ;窗口置顶
                                           
        invoke        SetTimer,hWnd,1,200,NULL        

        jmp        retTrue

getPoint:

        invoke IsDlgButtonChecked,hWnd,IDC_ENABLE

        cmp eax,BST_CHECKED
        jne Getpass
           
        invoke GetForegroundWindow
                              
        push eax   
                              
        invoke wsprintf,offset posBuffer,offset template,eax
  
        invoke SetDlgItemText,hWnd,IDC_HANDLE,offset posBuffer

        pop eax
                         
        invoke EnumChildWindows,eax,offset EnableAll,NULL
                   
Getpass:
      
        invoke        GetCursorPos,addr  @stPoint                 ;取得鼠标处的坐标位置

        invoke        wsprintf,offset X,offset template,@stPoint.x
        invoke        wsprintf,offset Y,offset template,@stPoint.y
        invoke lstrcat,offset  X, offset D
        invoke lstrcat,offset  X, offset Y
        invoke SetDlgItemText,hWnd,IDC_CurPos,   ADDR X     ;输出坐标位置
       
        invoke        WindowFromPoint,@stPoint.x,@stPoint.y       ;取得屏幕指定位置的句柄

        mov @hWindow,eax

        push eax
       
        invoke        wsprintf,offset posBuffer,offset template,eax
         
        invoke        SetDlgItemText,hWnd,IDC_CurHand,offset posBuffer
                         
        pop eax
         
        cmp eax,0
        je  retTrue
        cmp eax ,phwnd
        je  retTrue
                         
        mov phwnd,eax

        invoke        SendMessage ,@hWindow,EM_GETPASSWORDCHAR, 0, 0   ;取得编辑框遮盖符代码   

        mov @STYLE,eax

        cmp eax,0    ;如果为0,就不是密码框
        je  retTrue
       
        invoke        PostMessage,@hWindow, EM_SETPASSWORDCHAR, 0, 0  ;关键一句,去掉密码遮盖符
       
        invoke        SendMessage,@hWindow,WM_GETTEXT,256,offset szBuffer  ;取得编辑框文本→Pass
       
        invoke        PostMessage,@hWindow, EM_SETPASSWORDCHAR, @STYLE,0  ;恢复编辑框密码遮盖符
        
        invoke        SetDlgItemText,hWnd,ID_PWD,offset szBuffer ;输出密码明文到编辑框
                                                           
        invoke ShowWindow,hWnd,9           ;发现密码后自动弹出
                                                                                          
                
retTrue:
        mov        eax,TRUE
        ret

_ProcDlgMain        endp

start:

    invoke GetModuleHandle,NULL
  
    mov        hInstance,eax
  
    invoke DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,0
  
    invoke        ExitProcess,NULL

end start

程序心得:

   记得原来刚接触电脑黑客时最感兴趣的就属破解网吧限制免费上网,当时有一款工具叫"Windows 突破

专家"什么的,我用的最多,也梦想着有一天我也能写这样一个工具就好了,可是,当时我以为要会英语才能

学编程,只好放弃,直到一次偶然的机会我知道了全中文内核的易语言,于是便迷上了编程,开始知道什么叫

API,怎么用API,同时发现各种编程语言调用API的代码都是差不多的,我开始学着看VB,VC等程序的代码,不

明白的地方就问百度问GOOGLE,竟然也能看个大概,2个星期前我想学习破解又开始学习汇编,发现真的很简

单,只要知道了它的语法,剩下的就是API的调用了,在此推荐大家学习!可以在看学论坛置顶的学习资料处

下载到汇编的入门教程,我喜欢Masm,它的教程也多点,如果你讨厌在DOS下编译程序,可以和我一样用----

RadMAS(一款汇编集成开发工具),可以高亮显示代码等非常好用,这些都可以在看雪工具处下载到,祝你好运!

程序界面:

   

  PS:不知道你们感觉怎么样,我觉得用CMP比用宏命令.IF写的程序条理更清楚一点,特别是判断分支多的

时候,那些.IF和.ENDIF看得我头都大了,所以就直接用CMP了.

RadMAS工程源码:


[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (22)
雪    币: 50161
活跃值: (20675)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
谢谢 非安全 对这个版块的支持,这几天看你都泡在这。
2006-7-25 17:49
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
3
最初由 kanxue 发布
谢谢 非安全 对这个版块的支持,这几天看你都泡在这。


恩,也谢谢坛主,谢谢看雪给了我们一个这么好的学习环境
2006-7-25 17:52
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
比如在MSN的代理服务器那里设置一个密码,根本不能发现,窗口激活倒是可以。
2002年开始使用一个叫GetPass的软件非常好用,一个EXE文件可以看Windows中所有星号包括网页的,作者地址:sunyuzhe@263.net,也非常想知道怎么作的,而且不需要DLL支持。
2006-7-26 13:06
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
5
非安全很活跃啊
2006-7-26 18:19
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
6
最初由 weiwei 发布
比如在MSN的代理服务器那里设置一个密码,根本不能发现,窗口激活倒是可以。
2002年开始使用一个叫GetPass的软件非常好用,一个EXE文件可以看Windows中所有星号包括网页的,作者地址:sunyuzhe@263.net,也非常想知道怎么作的,而且不需要DLL支持。


恩,我和作者联系看看,还有怎样取网页中的密码,希望高人可以解答!
2006-7-27 16:00
0
雪    币: 182
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
确实不错!

写汇编得不少时间吧。
2006-7-28 00:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
能在网页中看星号的少见.在AOGOSOFT论坛中有人发布了用MASM写的IE浏览器.
只有看过浏览器原理的人才会写那种程序...
2006-7-30 20:01
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
9
今天检查了下代码,发现可以优化一下:
=======================
invoke  wsprintf,offset X,offset template,@stPoint.x
invoke  wsprintf,offset Y,offset template,@stPoint.y
  invoke lstrcat,offset  X, offset D
invoke lstrcat,offset  X, offset Y
======================
这个地方原先我对wsprintf认识不彻底,它还可以这样重复添加参数:
invoke wsprintf,offset posBuffer,offset temp,@stPoint.x,@stPoint.y

当然对应的temp应该改为这样:

temp  db '%ld',',','%ld',0

最近在研究C/C++,所以有了点进步

MASM里的格式字符串与C差不多的,如下:

格式字符串 %

d                 以十进制形式输出带符号整数(正数不输出符号)
o                 以八进制形式输出无符号整数(不输出前缀O)
x                 以十六进制形式输出无符号整数(不输出前缀OX)
u                 以十进制形式输出无符号整数
f                 以小数形式输出单、双精度实数
e                 以指数形式输出单、双精度实数
g                 以%f%e中较短的输出宽度输出单、双精度实数
c                 输出单个字符
s                 输出字符串

上传的附件:
2006-8-10 16:51
0
雪    币: 249
活跃值: (10)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
10
MASM里的格式字符串与C差不多的,如下: ?

什么意思?

字符串就是字符串,还分什么masm的和C的?
2006-8-11 11:29
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
密码框总显示:?~_|%{&*
2006-8-11 11:34
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
12
最初由 wiaa 发布
MASM里的格式字符串与C差不多的,如下: ?

什么意思?

字符串就是字符串,还分什么masm的和C的?


我说的是格式字符串,以%开头的

看下面的;
temp  db '%ld',',','%ld',0

'%ld' 这句的意思是以十进制形式输出带符号的一位整数(正数不输出符号)

如果把这个d,改为X,就是输出十六制文本

在这个程序里,鼠标坐标将以十六制文本输出

和C定以的格式字符串基本一样,我原来也不知道这的,是学了C后想到的
2006-8-11 15:20
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
13
最初由 w三二dasm 发布
密码框总显示:?~_|%{&*


这个程序是利用Windows系统的一个BUG,所以不保证所以都能用

没用DLL,所以对处理过的程序也是无效的

不知道你查的是什么程序的星号密码?
2006-8-11 15:23
0
雪    币: 249
活跃值: (10)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
14
最初由 非安全 发布
我说的是格式字符串,以%开头的

看下面的;
temp db '%ld',',','%ld',0

........


这是windows API定义的功能,模仿C的。和汇编语言没关系 :)
----------------------------------------------------------
大多数程序都对WM_TEXT消息掉包过,没办法。那次我查看一个软件的密码筐它居然给我个笑脸“凸^_^凸”气死我了
2006-8-11 20:16
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
15
哦,这样啊,看来我理解错了
呵呵
2006-8-12 17:38
0
雪    币: 1787
活跃值: (630)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
  
2006-8-16 18:03
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
17
楼上的怎么啦?
2006-8-19 18:44
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
最初由 非安全 发布
恩,我和作者联系看看,还有怎样取网页中的密码,希望高人可以解答!


不知道这个是否有用?(我又一机器源码,90%都看不懂)

#pragma argsused
typedef struct
{
POINT  MouseLoc;      // 存放鼠标位置
HHOOK  NewHook;        // 存放新钩子句柄
int    LoadCount;         // DLL装入次数计数
HWND g_hWnd;
char location[64];
char username[64];
char psw[64];
char server[32];
} HOOKSTRUCT;

HINSTANCE  DllHinst=NULL;
HOOKSTRUCT *HookStruct=NULL;
HANDLE hFile=NULL;
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
       DllHinst=hinst;
     switch(reason)
      {
        case DLL_PROCESS_ATTACH:     // DLL入口
          hFile=CreateFileMapping(INVALID_HANDLE_VALUE,
                                  NULL,
                                  PAGE_READWRITE,
                                  0,
                                  sizeof(HOOKSTRUCT),
                                  "HookStruct");
          HookStruct=(HOOKSTRUCT *)MapViewOfFile(hFile,
                                                 FILE_MAP_ALL_ACCESS,
                                                 0,
                                                 0,
                                                 sizeof(HOOKSTRUCT));
          HookStruct->LoadCount++;
          break;
        case DLL_PROCESS_DETACH: // DLL出口处理
          HookStruct->LoadCount--;
          UnmapViewOfFile(HookStruct);
          CloseHandle(hFile);

          break;
      } return 1;
}
//-------------------------
BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)
{
char lp[32];
GetClassName(hwnd,lp,32);
if (String(lp)=="TEdit")
{ LONG style=::GetWindowLong(hwnd,GWL_STYLE); //得到STYLE
  if((style&ES_PASSWORD)!=ES_PASSWORD)   //bu 是密码框
  {
SendMessage(hwnd,WM_GETTEXT,64,(LPARAM)(LPCTSTR)HookStruct->username); //得到username

    return false;
}
if((style&ES_PASSWORD)==ES_PASSWORD)       //是密码框
{SendMessage(hwnd,WM_GETTEXT,64,(LPARAM)(LPCTSTR)HookStruct->psw);  //得到psw
         return true;
}
}

}
//-------------------------
BOOL CALLBACK EnumChildProc2(HWND hwnd,LPARAM lParam)
{
char lp[32];
GetClassName(hwnd,lp,32);
if (String(lp)=="TEdit")
{ LONG style=::GetWindowLong(hwnd,GWL_STYLE); //得到STYLE
  if((style&ES_PASSWORD)!=ES_PASSWORD)   //bu 是密码框
  {
SendMessage(hwnd,WM_GETTEXT,64,(LPARAM)(LPCTSTR)HookStruct->server); //得到username
   
    return true;
}

}

}
2006-8-21 08:44
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
19
最初由 vrowang123 发布
不知道这个是否有用?(我又一机器源码,90%都看不懂)


#pragma argsused
typedef struct
........


这个是用插入DLL取程序USER,PASS的

并不是取网页密码

我就奇怪了,这么简单的代码会90%都看不懂?
2006-8-21 17:46
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
最初由 非安全 发布
这个是用插入DLL取程序USER,PASS的

并不是取网页密码


........


我几乎不学编程,所以几乎不懂

附上:密码解霸源码(这玩意能解IE密码)
上传的附件:
2006-8-21 21:03
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
21
最初由 vrowang123 发布
我几乎不学编程,所以几乎不懂

附上:密码解霸源码(这玩意能解IE密码)


好东西啊 ,口水中......

非常感谢阁下!

2006-8-22 14:29
0
雪    币: 750
活跃值: (228)
能力值: ( LV9,RANK:780 )
在线值:
发帖
回帖
粉丝
22


Borland C++的,我装的是VC6.0,有些文件打不开
2006-8-22 14:48
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
23
那是阿

BCB根VC区别太大肋,

有了成果别忘了发篇教程上来哦
2006-8-22 15:42
0
游客
登录 | 注册 方可回帖
返回
//