-
如何直接从手机内存中获取CellID?
2009-06-22 17:15:00GetCellTowerInfo的API获取CellID的问题,当时发现了一些机型没法直接通过这个API来获取CellID的问题,在网上查了一些资料如何使用C#在Windows mobile裝置上擷取CellID说可以直接从内存直接读取这些信息,...前几天在研究通过RIL_GetCellTowerInfo的API获取CellID的问题,当时发现了一些机型没法直接通过这个API来获取CellID的问题,在网上查了一些资料如何使用C#在Windows mobile裝置上擷取CellID 说可以直接从内存直接读取这些信息,我这两天验证了一把,这里给大家share一下,这个方法的缺点就是我们每个机型都要一个个分析,但是可行:)!
首先我们需要下载一个开源的工具包 ,主要是把机器当时的内存信息给导出来,然后通过WinHEX工具分析导出来的内存信息,找到MCC,因为国内的MCC是460,各个国家的MCC可以网上查到。
我的环境:
VS2008 + WM6 SDK + P800(多普达真机) + C#/C++
首先需要说明的一点需要得到该信息需要对程序进行签名,要不然直接会出现访问异常:),刚开始写了C#版本的一直报异常,最后加上签名就OK了!
首先我们先分析:
下载到工具后进入CMD到解压的目录,看一下内存的map:
我们可以看到v代表虚的,p代表映射的物理内存,最后一列代表地址区间的大小,我们可以用最笨的办法一块一块dump出来,我首次选择0x8a000000这一块,结果一步找到:)
接下来我们就开始分析我们dump出来的0x8a0.bin文件,同过WinHEX打开它:
我们找需要有根据,国内的MCC是460,那么我们找16进制的04 06 00 03,最有的03代表长度,我感觉是字符串类型的写入:)
我们可以找到第一个04060003的位置,然后分析后面的数据:
我们可以看到后面又连续着120位这样的信息,ok,位置找到了,那么我们就可以开始code了,记录下这个地址:0x003b2958,那么我们在程序中要找的地址就是0x8a000000+0x003b2958=???????
代码很简单,我下面给出我的C++代码:
-------------------------------------------------------------------
// 内存Cell的结构
struct MEMCellStruct
{
byte MCC[3];
byte MCCLength[1];
byte MNC[2];
byte UnKnow1[2];
byte LAC[2];
byte UnKnow2[4];
byte CID[2];
byte UnKnow3[104];
//total=120
};
struct CellStruct
{
CString MCC;
CString MNC;
CString LAC;
CString CID;
UINT Strength;
};BOOL bPerMode = SetKMode(TRUE);
DWORD dPermissions = SetProcPermissions(0xFFFFFFFF);
UINT MemLoation = 0x8a3b2958;
MEMCellStruct* Mem = NULL;
MEMCellStruct MEMCellTower;
UINT CPermissions;
CellStruct CellTower[7];
CRITICAL_SECTION CriticalSection;
// Initialize the critical section one time only.
/*if (!InitializeCriticalSectionAndSpinCount(&CriticalSection, MemLoation) )
return;*/
InitializeCriticalSection(&CriticalSection);
EnterCriticalSection(&CriticalSection);
int i = 0;
while (i < 7)
{
//读内存
Mem = (MEMCellStruct*)MemLoation;
MEMCellTower = *Mem;
short *pCID = (short*)(MEMCellTower.CID);
CString strTmp =_T("");
strTmp.Format(_T("%d"),*pCID);
CellTower[i].CID = strTmp;
short *pLAC = (short*)(MEMCellTower.LAC);
strTmp.Format(_T("%d"),*pLAC);
CellTower[i].LAC = strTmp;
strTmp.Format(_T("%d%d%d"),MEMCellTower.MCC[0],MEMCellTower.MCC[1],MEMCellTower.MCC[2]);
CellTower[i].MCC = strTmp;
strTmp.Format(_T("%d%d"), MEMCellTower.MNC[0],MEMCellTower.MNC[1]);
CellTower[i].MNC = strTmp;
//CellTower[i].Strength = Mem->Strength[0];
MemLoation = MemLoation + 0x78;
i++;
}
// Release ownership of the critical section.
LeaveCriticalSection(&CriticalSection);
// Release resources used by the critical section object.
DeleteCriticalSection(&CriticalSection);
SetProcPermissions(dPermissions);
SetKMode(bPerMode);代码比较乱,编译过了,没有问题,数据也得到了,不过和网上文章有些不一样的地方,感觉他前面的信息有些多余:),或者不正确。
至于程序怎么签名,我这里就不多少了,直接放在你的手机里测试一下:),这里说明一点,很多手机的内存结构可能不一样,每款都需要你自己分析,需要有耐心:),兴奋吧!我们也hacking!!!
转载注明出处,谢谢!
wangweixing2000 2009-06-22
-
如何解决Android直接在assets上读取模型文件?
2021-01-12 19:27:28<div><p>预测模型都是放在...如果要复制到手机内存卡上是不符合我项目要求的,这个问题该如何处理呢?不要复制文件到其他目录。</p><p>该提问来源于开源项目:PaddlePaddle/Paddle-Lite</p></div> -
手机6G运行内存和8G运行内存该如何选择?看完觉得买亏了
2019-07-19 15:02:00要么8G,仅仅差2个G的运行内存就要多出几百块钱,有人可能会说运行内存越大速度越快,这是肯定的,运行内存顾名思义就是在APP运行时的内存,我们手机的APP在运行的时候处理器(CPU)是无法直接读取使用的,必须得...现在更新的手机要么是6G运行内存(RAM),要么8G,仅仅差2个G的运行内存就要多出几百块钱,有人可能会说运行内存越大速度越快,这是肯定的,运行内存顾名思义就是在APP运行时的内存,我们手机的APP在运行的时候处理器(CPU)是无法直接读取使用的,必须得用到运行内存这个中介来运行APP。
运行内存太小,你打开一个APP可能会加载这个程序好多次,你用的运行内存比较大的话,打开APP只要加载一次就行了,运行内存大的话你点击Home切换程序的速度也会变快的,这样子的体验感会极好。
现在的苹果手机在4G运行内存上都能赶上安卓的8G运行内存,比如说你打开王者荣耀,苹果进入游戏主页的速度比安卓的手机要快,这是为什么呢,很多人说C处理器好,这是一个原因,另外一个原因来自系统的本身,安卓手机采用的是JAVA虚拟机设置,在我们关闭一个APP的时候,其实是不完全关闭的,还会继续占用部分运行内存拖垮速度的,所以我们买安卓手机玩游戏的话尽量买运行内存大的。
随着现在APP的更新速度越来越越快,体积就越来越大,这就需要我们的手机要有足够强大的运行内存来配合APP的运行,现在的安卓手机基本上都是6G和8G的运行内存了,10G运行内层也即将到来,所以建议大家买一个运行内存比较大的,这样手机才能用的比较久一点。
以上就是小编分享的全部内容,喜欢小编的话就点个赞点个关注呗,小编以后会更新更多的手机资讯和手机小技巧哦。
-
php在线读取pdf文件大小_如何减小PDF文件大小?这两个PDF压缩技巧了解一下
2020-12-31 22:11:20PDF文件太大,占用的电脑或手机的内存就多,无论是发邮件,还是传输起来都特别慢很不方便;打开PDF文档阅读时,还需要进行文档加载打开耗时,如果可以在不影响PDF阅读质量的情况下,减小PDF文件大小,这样PDF压缩后...PDF文件太大,占用的电脑或手机的内存就多,无论是发邮件,还是传输起来都特别慢很不方便;打开PDF文档阅读时,还需要进行文档加载打开耗时,如果可以在不影响PDF阅读质量的情况下,减小PDF文件大小,这样PDF压缩后的文档就大大提升了PDF阅读传输分享等体验。
那么如何减少PDF文件大小呢?下面分享2个PDF压缩技巧,有需要的朋友看过来吧。
一、PDF在线转换器
1、直接搜索并打开PDF365.cn的网站,点击「PDF压缩」进入页面。
2、然后点击「选择文件」,将PDF文件添加到网页中。
3、之后点击「开始压缩」,等待压缩完成后下载即可。
这样就可以减小PDF大小了,非常简单的方法。但是,PDF在线压缩也仅限10M大小以内的PDF文档,超过了则需要更专业的PDF编辑器了。
二、PDF编辑器压缩
1、直接在福昕PDF编辑器中打开需要处理的PDF文档,然后点击“文件”里的“减小文件大小”;
2、在“减小文件大小”对话窗口中选择PDF版本兼容;
3、选择好保存路径之后等待PDF编辑器压缩文档即可。
PDF编辑器https://www.foxitsoftware.cn/pdf-editor/
-
教你如何实现安卓4.0以上的手机支持高大上的OTG功能
2015-09-26 11:34:36OTG是手机非 常非常实用的功能,能接移动硬盘、U盘(这个功能相当于你的手机可以无限扩展内存卡了,什么8G16G32G128G内存卡都是...手机用OTG线接上U盘可以直接读取U盘里的电影图片文字资料的所有文件,是不是爽翻了? -
[教程] 教你如何实现荣耀3C支持OTG功能,解决荣耀3C的唯一缺点
2014-01-10 17:35:11教你如何实现荣耀3C支持OTG功能,解决荣耀3C的唯一缺点 转自 朕爱3C ...手机用OTG线接上U盘可以直接读取U盘里的电影图片文字资料的所有文件,是不是爽翻了?这就是没有OTG功能的荣耀3C差红米的教你如何实现荣耀3C支持OTG功能,解决荣耀3C的唯一缺点 转自 朕爱3C
前言:
OTG是手机非常非常实用的功能,能接移动硬盘、U盘(这个功能相当于你的手机可以无限扩展内存卡了,什么8G16G32G128G内存卡都是浮云)、鼠标、键盘、手柄、打印机等USB外设。手机用OTG线接上U盘可以直接读取U盘里的电影图片文字资料的所有文件,是不是爽翻了?这就是没有OTG功能的荣耀3C差红米的唯一缺点,其它完爆红米。所以我们要让3C更完美,高端机该有的功能我们不能落后!
---------------------------------------------------------
从硬件上说,当今Android4.0或以上系统的智能手机芯片都支持USB-OTG了,如果不支持的话,绝对是以下两个原因造成的。
1、硬件上缺少5V升压器,导致外接设备没有电压供应,没办法正常工作。
2、硬件设备制造商为了省电考虑,从系统上屏蔽了USB-OTG功能。
一般情况下,智能手机无法读取U盘、无法识别鼠标、键盘、手柄是以上两个原因的叠加导致的。
这时候,我们要软硬兼施,从硬件和系统上,为OTG创造条件:
-----------------------------------------------------------
教程重点来了,仔细看!
-
如何抓取微信小程序 HTTPS 请求
2020-11-27 07:30:21从电脑上打开手机的内存卡,直接把证书导入SD卡中。点击设置 -> 安全 -> 从 SD 卡安装 -> 从内部存储空间中找到证书,点击安装即可(不能直接点击安装,会出现无法安装证书,... -
手机解锁秘诀-再也不用上营业厅了
2011-12-17 20:02:34/ w% n2 h8 i) c( H, T 如死机再用---24681357(或直接就用它解) ) W8 P$ t" B/ A: l& \1 D 波导8xx/9xx系列:*#+串号7-14位# 9 R+ @/ c( x; g, m, f; K0 [9 Y SIM卡 波导串号最后9位去掉最后一位 1 i! [2 g'... -
Android简易音乐播放器之播放列表实现(第二篇)
2016-09-04 17:46:48昨天写了如何实现音乐播放器的第一篇,今天需要实现的是如何从手机内存里读取音乐文件并且显示在列表中。 首先,我们需要从主界面通过点击本地音乐按钮跳转到音乐列表界面;另外需要让程序主界面连续按下两次返回键... -
安卓与PHP服务器交互
2018-04-14 23:29:21第二种方式是android直接连接数据库,这种方式非常耗手机内存,而且容易被反编译造成安全隐患,所以在实际项目中不推荐使用。本篇博文主要讲述安卓如何与访问远程PHP服务器上的MySQL数据库。安卓客户端通过HTTP协议... -
C#编程经验技巧宝典
2008-06-01 08:59:33121 <br>0200 如何使用正则表达式验证电话号码 121 <br>0201 如何使用正则表达式验证输入密码条件 121 <br>0202 如何使用正则表达式验证邮政编号 121 <br>0203 如何使用正则表达式验证手机号 ... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part1
2016-06-16 20:55:43实例102 使用直接插入法对一维数组进行排序 实例103 使用希尔排序法对一维数组进行排序 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素的顺序 4.3 常用集合的使用 实例106 向班级集合中添加... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part2
2016-06-16 20:59:52实例102 使用直接插入法对一维数组进行排序 实例103 使用希尔排序法对一维数组进行排序 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素的顺序 4.3 常用集合的使用 实例106 向班级集合中添加... -
C#开发实战1200例(第1卷).(清华出版.王小科.王军.扫描版).part3
2016-06-16 21:02:21实例102 使用直接插入法对一维数组进行排序 实例103 使用希尔排序法对一维数组进行排序 实例104 使用Sort方法对数组进行快速排序 实例105 反转数组中元素的顺序 4.3 常用集合的使用 实例106 向班级集合中添加... -
C#开发实战1200例(第一卷+第二卷)+源码下载地址.txt
2019-05-17 09:24:24实例102 使用直接插入法对一维数组进行排序 121 实例103 使用希尔排序法对一维数组进行排序 122 实例104 使用Sort方法对数组进行快速排序 124 实例105 反转数组中元素的顺序 125 4.3 常用集合的使用 126... -
iPhone开发秘籍(第2版)--源代码
2012-12-11 13:51:22此外,还结合实例讲解了如何开发各种iphone特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。 《iphone开发秘籍(第2版)》适合iphone和mac开发人员。 作译者 作者:(美国)萨丹(Erica ... -
C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载
2018-02-20 01:26:55实例102 使用直接插入法对一维数组进行排序 121 实例103 使用希尔排序法对一维数组进行排序 122 实例104 使用Sort方法对数组进行快速排序 124 实例105 反转数组中元素的顺序 125 4.3 常用集合的使用 126 实例106 向... -
java源码包---java 源码 大量 实例
2013-04-18 23:15:26Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥... -
java源码包2
2013-04-20 11:28:17Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥... -
java源码包3
2013-04-20 11:30:13Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥... -
成百上千个Java 源码DEMO 4(1-4是独立压缩包)
2017-03-29 17:40:59Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、... -
成百上千个Java 源码DEMO 3(1-4是独立压缩包)
2017-03-29 17:39:54Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥 Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、... -
JAVA上百实例源码以及开源项目
2016-01-03 17:37:40Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥... -
java源码包
2015-12-01 16:29:37Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥... -
所以本人写了一片如何结合业务直接请求JavaBean、List、Map、Protobuf的博文: http://blog.csdn.net/yanzhenjie1003/article/details/70158030 请求不同数据的几种Request NoHttp请求什么样的数据是由Request决定...
-
入门学习Linux常用必会60个命令实例详解doc/txt
2011-06-09 00:08:45文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供... -
vc++ 应用源码包_1
2012-09-15 14:22:12代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的... -
HG526破解设置
2013-09-13 00:40:242、将拷贝好配置文件的优盘插入无线猫后面的USB口,按下无线猫电源按钮关闭无线猫,然后再打开,这时无线猫会自动读取优盘自动恢复配置文件。(恢复中切记不要拔掉优盘,等灯经过“亮”-“灭”-“亮”的过程,等待...