IOS Android 手机助手原理以及源码(iTunes.dll iTunesCore.dll 作用)

来源:互联网 发布:中国制造业出口数据 编辑:程序博客网 时间:2024/05/18 18:01

     iTunes 某一个版本之前他有一个dll 名字是iTunes.dll ,后来改名了 iTunesCore.dll。这个DLL 的作用是用来计算一个21 字节的cig。先说一下背景

      将音乐,视频,铃声等导入手机或者修改的时候,需要启动AT 服务,这个也就是同步的服务。启动服务之后,将一个plist 文件拷贝到手机的某一个目录下,同时还有一个加密的文件。这个加密的文件固定21个字节,是根据plist 文件计算出来的。要计算出这个21字节的东西就需要调用iTunes.dll 里面的函数。但是这个函数并不像一些导出的函数,iTunes 并没有导出这个函数,只能是先loadlibrary,然后从某一个地址来计算出这个21字节的东西。由于不是固定的导出函数,所以每次iTunes 更新的时候这个地址都有可能不相同。

plist文件的路径:/iTunes_Control/Sync/Media/Sync_%s.plist

cig 文件路径:    /iTunes_Control/Sync/Media/Sync_%s.plist.cig


%s 是启动同步服务的时候获取到的一个数字。 


下面是目前搜集到的itunes 的调用地址。12.1.0.71  版本之前32 和64 位系统都是一样的。 这个版本之后就区分32和64位系统了。但是目前很多助手在12.1.0,71 版本之后还是32 位的,因为他们自带了32位的iTunes.dll 文件。前面也说过,万一64位的系统取消了32位的那部分,那这种方式就失效了。

struct iTunesOffset
{
//itunes 版本
XString striTunesVer;
//操作系统的位数
int iBit;
//offset 地址
XPInt ulOffset;


};


iTunesOffset offset;
offset.striTunesVer = L"11.2.2.3";
offset.iBit = 0;
offset.ulOffset = 0xFC3730;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.3.0.54";
offset.iBit = 0;
offset.ulOffset = 0xFD4730;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.3.1.2";
offset.iBit = 0;
offset.ulOffset = 0xFD5730;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.2.0.114";
offset.iBit = 0;
offset.ulOffset = 16525104;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.1.3.8";
offset.iBit = 0;
offset.ulOffset = 0xF3F400;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.1.4.62";
offset.iBit = 0;
offset.ulOffset = 0xF49400;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"11.4.0.18";
offset.iBit = 0;
offset.ulOffset = 16590640;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.0.1.26";
offset.iBit = 0;
offset.ulOffset = 67120;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.1.0.71";
offset.iBit = 1;
offset.ulOffset = 67120;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.1.0.71";
offset.iBit = 2;
offset.ulOffset = 121168;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.1.1.4";
offset.iBit = 1;
offset.ulOffset = 67120;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.1.2.27";
offset.iBit = 1;
offset.ulOffset = 67120;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.2.0.145";
offset.iBit = 1;
offset.ulOffset = 288912;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.2.1.16";
offset.iBit = 1;
offset.ulOffset = 288912;
m_itunesOffsetVector.push_back(offset);


offset.striTunesVer = L"12.2.2.25";
offset.iBit = 1;
offset.ulOffset = 288912;
m_itunesOffsetVector.push_back(offset);




下载地址:

http://115.29.237.15:8080/MobileAssist/Product/MobileTools.7z


QQ:2506314894


0 0