`
holoblog
  • 浏览: 1270356 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19627
文章分类
社区版块
存档分类
最新评论

DIY WindowsXP记事本

 
阅读更多

下面开始
准备工具:OllyDbgResHackerLordPEWinXP记事本
好了可以开工了
首先是介绍一下基本思路
因为记事本是别人的东西我们要添加功能进去只能修改exe文件或者添加一个DLL来实现自己的功能.第一种方法要复杂一些因为要涉及到PE文件知识和汇编知识.我们用第二种方法,添加一个DLL文件来扩展功能这样可以无限制的扩展记事本的功能所以下一步添加一个像QQ那样的在屏幕边缘自动隐藏功能感觉比透明功能好玩
要给Windows可执行文件添加功能主要是添加消息处理.所以我们就从消息处理入手.这里的方法是看雪的一位牛人给出的:
在记事本的消息处理函数之前添加自己的消息处理函数来处理消息.而且把这个处理函数放到一个DLL里面这样记事本的功能就可以无限制的扩展了(夸张的说),要添加什么功能只要添加一个消息处理就够了而且只是在DLL里面添加可以使用自己熟悉的语言来写这个DLL使得添加功能变的更简单一些.实现以上的想法开始了首先来写这个DLL我们只要一个消息处理函数就够了所以这个DLL只要有一个导出函数:
我是用DEVC++创建的语言使用的是C语言
DevC++会自动为我们生成一个模板我们基本上不用自己怎么动手,下面是我们的消息处理函数

void_cdeclPlug(constDWORDreversed,HWNDhWnd,UINTmsg,WPARAMwParam,LPARAMlParam)
{
switch(msg){
//caseWM_CREATE:
//MessageBox(hWnd,"敏子","oo",0x40);
//break;
caseWM_COMMAND:
cmdProc(hWnd,wParam,lParam);//处理WM_COMMAND消息
break;
}

}//这个函数就是消息处理函数你可以在里面处理记事本的所有消息

voidcmdProc(HWNDhWnd,WPARAMwParam,LPARAMlParam)
{
switch(wParam)
{
case28:
if(trapos==0)
{
setlayered(hWnd);
trapos=1;
checkMenu(hWnd,28);
}
else
{
setulayered(hWnd);
trapos=0;
uncheckMenu(hWnd,28);
}
break;
//---------------------
case29:
if(toppos==0)
{
SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,FLAGS);
toppos=1;
checkMenu(hWnd,29);
}
else
{
SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,FLAGS);
toppos=0;
uncheckMenu(hWnd,29);
}
break;
case30:

MessageBox(hWnd,"最爱敏子","嘿嘿",0x40);
break;
}

}
//这个是处理WM_COMMAND消息的函数主要用来处理我们添加的菜单项


//下面的是我们用来实现功能的功能代码就是我们要总在前面和透明功能
这两个功能要使用到的函数:
GetModuleHandle
GetProcAddress
GetWindowLong
SetWindowLong
SetLayeredWindowAttributes//该函数属于未公开函数要自己获得
CheckMenuItem
SetWindowPos
关于这几个函数的作用和功能请大家查看互联网或者MSDN这里就不做解释了
voidsetlayered(HWNDhwnd)//设置窗体透明透明度为128
{

HMODULEuser32=GetModuleHandle("USER32.DLL");//获得user32链接库的句柄

transparence=(lpfn)GetProcAddress(user32,"SetLayeredWindowAttributes");//获得SetLayeredWindowAttributes的句柄

longret=GetWindowLong(hwnd,GWL_EXSTYLE);

ret=ret|WS_EX_LAYERED;

SetWindowLong(hwnd,GWL_EXSTYLE,ret);

transparence(hwnd,0,128,2);

}
voidsetulayered(HWNDhwnd)//取消透明
{
longret=GetWindowLong(hwnd,GWL_EXSTYLE);
ret=ret&EX_STYLE;
SetWindowLong(hwnd,GWL_EXSTYLE,ret);
}
voidcheckMenu(HWNDhwnd,intID)//设置菜单的check标记
{
HWNDmenu=GetMenu(hwnd);
HWNDpopMenu=GetSubMenu(menu,3);
CheckMenuItem(popMenu,ID,MF_CHECKED);
}
voiduncheckMenu(HWNDhwnd,intID)//取消菜单的check标记
{
HWNDmenu=GetMenu(hwnd);
HWNDpopMenu=GetSubMenu(menu,3);
CheckMenuItem(popMenu,ID,MF_UNCHECKED);
}


//在dll.h头文件里面添加一个导出函数
DLLIMPORTvoid_cdeclPlug(DWORD,HWND,UINT,WPARAM,LPARAM);

然后编译生成这个DLL就可以开始下面的工作了

//首先用LoadPE把这个DLL给记事本添加进去使用loadPE很方便的用load打开记事本然后选择导入表然后在出来的选项中添加DLL的名字是Plug.dll(就是你编译生成的DLL名称)要导入的函数名字是Plug(你在DLL里面用的消息处理函数名字)

这里的就说这么多不懂的可以问或者查下资料
添加后这个函数的地址1013010
这个地址就不介绍怎么找到很简单
下一步是找到windows的消息处理函数地址
命令行下断
bpRegisterClassExW
确定然后F9断了下来查看堆栈会看到
call到RegisterClassExW来自01004550
向下看他的参数
01003429
这个就是我们要的
在这里回车然后就来到了01003429
在这里我们要用一个call语句
在01003424这里点汇编然后输入一句
calldwordptr[01013010]
占用三个字节后面自动补了一个nop
这样还没有好我们还要找到WndClass结构然后修改那里的消息处理函数这个比较好找
call到RegisterClassExW来自01004550
这句话最后的那个地址就是线索转到这里吧
向上找参数看到01003429就是修改他了这个是原来的消息处理地址现在要换成我们的就是01003424
修改好后在OD里面点右键选择保存到可执行文件-->选择全部-->然后右键保存就可以了关闭OD运行一下你的NOTEPAD吧
忘记写了菜单是用ResourceHack添加进去的注意ID不能和原来的重复透明菜单用的ID是28置顶菜单用的是29最后的关于菜单用的是30
本想一张一张配图的哈哈论坛不能一个一个上传没有办法只能这样传了

分享到:
评论

相关推荐

    模仿WindowsXp记事本

    在本文中,我们将深入探讨如何使用DELPHI编程语言来模仿经典的Windows XP记事本应用程序。DELPHI,全称Borland Delphi,是一种基于Object Pascal语言的集成开发环境,以其高效、快速的编译能力和强大的VCL(Visual ...

    windows xp 记事本 Notepad2

    windows xp 记事本 Notepad2,比系统自带的功能强大,使用方法:1、关闭系统文件保护功能,可以执行“关闭系统文件保护.reg”进行关闭。2、把Notepad.exe复制到c:\windows和c:\windows\system32两个目录下,覆盖现有...

    XP 记事本 C++ 源码

    总的来说,通过对XP记事本C++源码的学习,我们可以了解到Windows编程的基本框架,掌握如何使用C++与Windows API进行交互,以及如何构建一个简单的GUI应用程序。这不仅有助于我们理解操作系统级别的程序设计,也为...

    C#完全模仿WINDOWS记事本

    《C#完全模仿WINDOWS记事本》是一款基于C#编程语言开发的应用程序,旨在实现对Windows内置记事本功能的高度模仿。通过学习和研究这款应用,开发者可以深入了解C#编程语言在GUI(图形用户界面)设计、文本处理以及...

    windows 记事本,语法高亮

    在Windows操作系统中,记事本是一款非常基础且实用的文本编辑工具。虽然它的功能相对简单,但对初学者和开发者来说,它仍然是一个快速编辑文本的好选择。在最新的版本中,Windows记事本引入了“语法高亮”这一特性,...

    C# Windows Mobile 记事本

    【标题】"C# Windows Mobile 记事本" 涉及的知识点: 在移动设备开发领域,C# Windows Mobile 记事本是一款基于C#编程语言开发的应用,专为Windows Mobile操作系统设计。Windows Mobile是微软针对掌上设备如智能...

    C#高仿windows的记事本

    《C#高仿Windows记事本程序:深入解析与实现》 在编程世界里,创建一个类似Windows记事本的应用程序是一项基础而重要的任务,它能够帮助开发者掌握基础的GUI编程技巧。本篇文章将深入探讨如何使用C#语言来创建一个...

    java实现模仿XP记事本

    Java实现的模仿XP记事本项目是一个典型的GUI(图形用户界面)编程实例,它通过Java Swing库构建了一个功能丰富的文本编辑器,旨在提供与Windows XP系统内置记事本相似的用户体验。下面将详细介绍这个项目的相关知识...

    仿Windows的记事本(notebook)程序

    【标题】"仿Windows的记事本(notebook)程序"是基于MFC框架开发的一款应用程序,它旨在模仿Windows操作系统中内置的记事本工具,为用户提供文本编辑的基本功能。这款程序不仅外观与Windows记事本相似,而且在功能上...

    java 仿windows记事本

    1.记事本创作于2015年11月,累计时间在一周左右,总代码量1000+。" 2.记事本仿自windows原生记事本,无论感官还是功能都与其相近。

    仿windows记事本源码

    【标题】"仿windows记事本源码"指的是一个编程项目,其目标是创建一个类似于Windows操作系统内置的“记事本”程序。这个程序旨在模仿Windows记事本的基本功能和界面设计,为用户提供一个简单的文本编辑环境。 ...

    Windows xp简体中文语言包

    在IT领域,操作系统是计算机硬件与用户之间交互的桥梁,Windows XP是一款由微软公司开发的广泛应用的操作系统。针对中文用户,Windows XP提供了多种语言包,以便用户能够在不同的语言环境中进行操作。本文将深入探讨...

    C# 仿Windows记事本

    在本文中,我们将深入探讨如何使用C#编程语言来创建一个仿Windows记事本的应用程序。这个项目旨在实现与原版Windows记事本相同的基本功能,包括文本编辑、复制、粘贴、删除、剪切、全选、快捷键支持、右键菜单、状态...

    windowsXP镜像.zip

    Windows XP是一款由微软公司开发的个人计算机操作系统,它在2001年发布,并成为当时最广泛使用的桌面操作系统之一。Windows XP的名称来源于"Experience"的缩写,意为“体验”,代表了微软希望用户能有更优秀的使用...

    c# windows 记事本 源代码

    【标题】"C# Windows 记事本 源代码" 涉及到的是使用C#编程语言在Microsoft Visual Studio 2010环境下开发的一款简易文本编辑器,类似于我们常见的Windows操作系统自带的“记事本”程序。C#是一种面向对象的、类型...

    Notepad3 v5.21.227.1.7z替换windows原生记事本

    Notepad3 v5.21.227.1.7z替换windows原生记事本

    Java记事本 仿windows记事本

    仿照windows记事本实现的Java记事本,还原度95%,页面显示与逻辑处理分离,公共方法封装,注释完善。 可以移步博客:http://blog.csdn.net/weixin_39858069/article/details/77227636 预览哦。

    Windows Xp Embedded 安裝流程

    Windows XP Embedded 安裝流程 Windows XP Embedded 是一种嵌入式操作系统,可以以组件化的形式提供 Windows 操作系统的功能。它不同于 Windows XP 的其他版本,本身没有现成的安装文件,必须通过开发环境定制系统...

    windows xp系统system文件

    windows/system32/config/system文件丢失或损坏,当windows xp系统system文件损坏或丢失,造成我们无法正常启动windows xp系统,我们可以用PE进入系统,把文件放到对应的位置windows/system32/config/system,再重新...

    记事本(vb6.0仿windows自带记事本设计,含源码)

    标题中的“记事本(vb6.0仿windows自带记事本设计,含源码)”指的是使用Visual Basic 6.0(VB6.0)编程语言开发的一个应用程序,该程序模仿了Windows操作系统中内置的记事本功能。这个项目不仅提供了一个功能完备的...

Global site tag (gtag.js) - Google Analytics