摘要
如今,现代人正处在互联网飞速发展的时代,在人们日益增长的需求的推动下,大量的互联网新技术不断的产生出来。智能手机的普及更是大大丰富人们的日常生活。目前,手机平台主要是安卓平台和苹果的 iOS 平台,两大平台瓜分着整个移动设备市场,其中安卓以其开放免费的独特面目收到广大生产厂商的青睐,从而促使安卓成为市场占有率最高的移动操作系统平台。在此平台下,大量的互联网公司发布了大量的应用,这些应用种类繁多,大都是需要用户注册登录来体验移动生活。明显地,这些应用搜集了用户的大量资料,包括用户的身份资料,以及用户在使用应用过程中的应用数据,如发布的文章和多媒体等。本文着力于提取用户的应用数据。
为了能够进一步地分析应用数据,本课题拟设计和实现一个安卓平台下的应用数据提取系统,并以目前较为流行的腾讯微博应用为例,介绍设计和实现应用数据提取系统的方法。通过读取腾讯微博应用数据,对这些数据加以分析,并整合到一个单独的数据库文件中。这一课题只是针对一个应用而言,因此,我们需要将这个数据提取逻辑封装到一个动态链接库中,需要时直接调用其中的接口即可。
本文在介绍了相关的研究背景和重要研究意义后,根据实际,对该课题进行了详细的需求分析,确定了需要从该腾讯微博应用中提取哪些重要的数据,并将这些数据根据之间的关系整合在一起。同时介绍了目前实现这一系统需要的相关技术,如 C++ Builder、SQLite、动态链接库、多线程、C++等。接着,本文确定了系统开发的总体开发流程,并对需求分析中提出的几个模块做了相应的实现流程规划。
然后,本文详细的阐述了实现应用数据提取系统的具体实现步骤,根据模块划分,分别介绍了各模块的实现分析和具体编码过程,针对其中的重要问题给出解决办法。依次完成的模块及其内容有,动态链接库的编写,主要阐述了如何编写一个动态链接库项目,如何在主项目中使用编译好的动态链接库;系统初始化,主要是对设备和用户生成唯一的身份标识,创建目标数据库;提取帐号信息,主要是提取该设备内包含的使用该应用的所有用户的身份信息,将信息录入到目标数据库中;提取好友信息,提取每个帐号的所有好友信息;提取微博信息,提取每个帐号的所有微博,包括发布和转载的;提取私信信息,提取每个帐号的所有与他人的私信信息。系统还解决了程序中途停止提取数据的意外情况。
最后,本文针对各模块设计了一些测试用例,经过测试,结果表明,系统满足各项需求,表现良好。
总之,本课题能够比较完整地提取手机应用中的用户数据,从而方便后续的分析和整合。
关键词:应用数据,数据提取,安卓,微博,动态链接库
Abstract
Today, modern people are in the era of the rapid developed Internet, driven by the growing people's demand, a large number of new Internet technologies are produced. Popularity of smart phones greatly enrich people's daily lives. Currently, the mobile phone platform are mainly Google's Android platform and Apple's iOS platform, the two platforms carve up the entire mobile device market. As android is open free, so Android receives like of the majority of manufacturers of all ages, thus making the Android become the highest market share of mobile operating system platform. In this platform, a large number of Internet companies launched a lot of applications that come from a wide range. Most apps require user registration and Login to experience mobile lifestyle. Obviously, these applications collect large amount of user data, including the users' identity information, and users' application data in the usage process of the application. Such as the publication of articles and submission of multimedia. If that data are lack of poor management, it is likely to lead to bad security issues. Most of users use apps to complete normal working and life, but some criminals use these applications to communicate with each other criminals to complete illegal activities. As this data are often difficultly to find, that give them relatively safely for crime.
The above situation brought a lot of resistance to the police department while handling the case. In order to assist the relevant investigators, this study intends to design and implement an application data extraction system under Android platform, and take the popular Tencent weibo app as an example, and introduces design and implementation of applicationdata extraction systems. By reading Tencent weibo app data, we analyse this data, and integrate that data into a single database file, so that office investigators can focus on them to collect crime clues. This issue is only for the specific application, so we need encapsulate this data extraction logic into a dynamic link library (DLL). Then we call the interface which DLL opens to complete large work.
This paper introduces the research background and important significance of current research. According to the actual situation, we make a detailed needs analysis, to determine what important data needs to be extracted from the Tencent weibo app and then put all this data together by their relationships. At the same time, we introduced related technologies which used by the current system, such as C++ Builder, SQLite, dynamic link library, multithreading, C ++, etc. Then, this paper identifies the overall system development process, and plans implementation process of several modules presented by demand analysis.
Then, we detaily explain implementation steps to achieve the application data extraction system, depending on the module division, then introduce the realization analysis and specific coding process of each module. We also give some solutions for important issues. The modules and their contents are following, writing dynamic link library, mainly on how to write a dynamic link library project, and how to use a compiled dynamic link library in the primary project; system initialization, mainly on makeunique identities for each equipment and user, creating the target database; extract account profile, primarily to extract all the user's identity information who used the app in this device, then write all this information into the target database; extracting friend information, extracting information of all friends for each account; extracting weibos, extract all the weibos for each account, including published and reproduced; extracting private letter information, extracting all the private letters information for each account with others. The system also solves the program while stoping extracting data accidently.
Finally, for each module we design some test cases, after testing process, the results show that the system meets the requirements and performs well.
In conclusion, this study can effectively assist officers to analyze and gather crime investigator clues, and improve work efficiency to a certain extent.
Keywords:App data, Data extraction, Android, Weibo, DLL
自从移动互联网兴起以来,大量的移动应用部署在谷歌的安卓平台下。这些应用为广大用户提供了分享和交流的便利条件,但是,这些应用搜集了大量用户的数据,包括用户自身的资料,如姓名、电话、住址等私密的个人信息,同时存储了用户在交流过程中发表的言论、图像和视频等。大部分人都是利用这些作为体验移动互联网生活的工具,但是有少部分的犯罪分子利用这些应用作为他们完成犯罪行动的传递信息的利器[1]。
本课题在目前移动设备市场占用率最高的安卓平台下,拟对目前流行的腾讯微博应用做用户数据提取,并对提取的数据进行整合,将其中重要的数据整合到一个数据库文件中,用以唯一地标识一个用户,从而做后续的数据分析。这些数据里包含了用户可能存在的真实信息,同时还具备用户发表的言论信息[2-3]。
整个系统主要对安卓端的腾讯微博应用作用户数据的提取整合,用户的部分数据(个人信息、微博、关注的人、私信和帐号分组信息等)将以本地存储的形式存放在用户的移动设备中,这些原始数据主要格式是目前流行的开源、免费、嵌入式、性能优异的 SQLite 数据库[4]。本课题将对这些数据提取,并整合到一个单独的唯一的 SQLite 文件中[5]。系统主要使用 C++ Builder 开发工具完成,使用 C++语言完成具体代码编写。同时,系统采用组件的思想,将针对该应用的提取逻辑封装在一个动态链接库中,并使用多线程技术提高系统界面的用户体验[6]。
自互联网兴起以来,人与人之间相互沟通、交流和分享变得越来越频繁和便捷。起初使用互联网是使用 HTTP 协议,发明者无私地免费将这一伟大技术开放给所有人,使得人们可以在电子设备上看到当前的世界[7]。最开始的网页是静态的,用户只能看,它的实现机制就是安全地将服务器上的文件传输到指定用户的浏览器上。这些网页并没有交互性,后来,JavaScript 的引入使得网页具备了交互,但网页内容还是不够美观,接着又产生了 CSS[8],用以提高网页的没关系。更大程度上的交互是动态网页技术的引入。动态网页使得用户可以将自己的请求动态地提交给服务器,然后,服务器返回处理好的数据,浏览器负责显示这些响应的内容[9]。
随着人们现代工作的进步,桌面的工作已经不能满足人们时常需要移动的办公的需要。人们迫切需要移动的设备来完成很多事务。为此移动互联网产生了,为了协助人们办公和生活,大量的移动应用应运而生[10]。比如办公类的、休闲类的、游戏类的、咨询类的、电子商务类的,还有目前可能最好的即使通讯类的。这些应用大大提高了用户交流、分享和查阅的便利[11]。用户可以在法律和道德的约束范围内自由的发表信息、图片和音视频等。大部分人将这些应用作为生活工作的好伴侣,从而产生了大量的应用数据[12-13]。
这些移动设备的应用在使用的过程中,有大量的用户数据是保存本地的移动设备上的,这些数据往往包含了用户发表的信息,甚至还有用户的少量身份信息。基于这样的原理[14],本课题拟设计和实现一个应用数据提取和整合的系统,以腾讯微博为例,提取某台设备上存储部件的应用数据,分析其中有用的信息并整合到一个唯一的标识该用户的文件中去,这样就可以搜集其中隐含的线索了[15]。
目前市面上占有率最高的是谷歌的安卓系统,而且这个系统开源免费,利于分析相关用户数据,本系统提取和整合安卓端的腾讯微博应用中有价值的用户数据,最终数据是一个 sqlite 数据库文件[16]。系统的主要界面并不是主要的,这个数据库文件才是最重要的。界面的实现使用了 C++ Builder 开发环境完成,使用 C++语言编码。一个用户不仅仅使用一个应用,因此,提取该应用的逻辑应该看成是一个组件,本课题使用动态链接库完成对提取逻辑的封装,这样可以将这个.dll 整合到一个完整的数据提取系统中去。
同时,需要在实现过程中,提供中途停止的逻辑,一个比较简单的办法就是引入多线程,将提取逻辑分配到子线程中去,从而在主线程中能够监控提取线程的执行周期。
根据目前的实际背景,本文设计和实现安卓平台下腾讯微博的应用数据提取系统,将存在的可能有价值的信息整合到一个独立的唯一的数据库文件中,同时将提取的逻辑以组件的形式封装到一个动态链接库中,供外部调用。
腾讯微博应用数据提取系统设计:
DLL 项目的 RTL 设置
项目列表
DLL 项目的 include 设置
DLL 项目的 lib 设置
DLL 项目的输出文件夹设置
设置 DLL 项目禁用依赖运行时
设置主项目不依赖于运行时
目 录
第 1 章 绪 论
1.1 课题背景
1.2 相关研究现状
1.3 本文研究内容
第 2 章 关键技术介绍
2.1 C++ BUILDER
2.2 SQLITE
2.3 动态链接库
2.4 多线程
2.5 C++
第 3 章 系统需求分析
3.1 功能性需求
3.1.1 DLL 开发模块
3.1.2 系统初始化模块
3.1.3 提取账户信息模块
3.1.4 提取好友信息模块
3.1.5 提取微博信息模块
3.1.6 提取私信信息模块
3.2 非功能性需求
3.2.1 稳健性
3.2.2 实时性
3.3 本章小结
第 4 章 系统总体设计
4.1 总体开发流程
4.2 各模块实现流程
4.2.1 DLL 开发模块
4.2.2 系统初始化模块
4.2.3 提取账户信息模块
4.2.4 提取好友信息模块
4.2.5 提取微博信息模块
4.2.6 提取私信信息模块
4.3 本章小结
第 5 章 系统详细设计
5.1 DLL 开发模块
5.2 系统初始化模块
5.3 提取账户信息模块
5.4 提取好友信息模块
5.5 提取微博信息模块
5.6 提取私信信息模块
5.7 本章小结
第 6 章 系统测试
6.1 系统测试环境
6.2 测试用例及测试结果
6.3 本章小结
第 7 章 总结与展望x
参考文献
作者简介及在学期间所取得的科研成果
致 谢
(如您需要查看本篇毕业设计全文,请您联系客服索取)