用 hookcemu模拟器hook位置后在其他位置还能地位吗

博客分类:
构造 HTTP请求
实现“伪造来源
在阅读本文前,大家要有一个概念,在实现正常的 双方通信情况下,是无法伪造来源
的,也就是说,在
协议中,可以伪造数据包来源
,但这会让发送出去的数据包有去无回,无法实现正常的通信。这就像我们给对方写信时,如果写出错误的发信人地址,而收信人按信封上的发信人地址回信时,原发信人是无法收到回信的。
一些 攻击,如
就是利用了
的此缺陷而实现攻击的。《计算机网络》教材一书上,对这种行为定义为“发射出去就不管”。
因此,本文标题中的伪造来源 是带引号的。并非是所有
应用程序中存在此漏洞。
那么在 中,
又是如何造成的?如何防御之?
在理解这个原理之前,读者有必要对 协议有所了解。
是一个应用层协议,基于请求
响应模型。客户端(往往是浏览器)请求与服务器端响应一一对应。
请求信息由请求头和请求正文构成(在 请求时,可视请求正文为空)。请求头类似我们写信时信封上的基本信息,对于描述本次请求的一些双方约定。而请求正文就类似于信件的正文。服务器的响应格式,也是类似的,由响应头信息和响应正文构成。
为了解这个原理,可使用 或
浏览器插件
响应数据。
本文中,以 为例说明之。安装
浏览器后,
的工具栏上出现其图标,点击并运行
就会在浏览器下方显示出
的主界面。
点击左下角红色的“ ”按钮,并在地址栏输入
等页面打开后,选中一个请求,并在下方的
按钮中选择“
”,如图:
左边即是请求数据,右边即是服务器响应数据。左边的请求头均以回车换行结束,即“ ”
最后是一个空行(内容为
结束。而请求
中除第一行外,其它行均由
值组成,如
名称与值之间有冒号相隔,之间的空格是可有可无的。
那么,在 应用程序中,如何取得指定的请求
信息呢?这里使用
语言为例说明。对所有客户端请求
程序中取得其值的方式如下:
$_SERVER['HTTP_ HEADER_NAME ']
HEADER_NAME应该以换成对应的
名称,此项的规律是:全大写,连接线变成下划线。比如要取得客户端的
请求头,则使用
掌握这个规律,即可达到举一反三的效果。如要取得
信息,则使用
即可。也就是说,
数组中,以
开头的项均属于客户端发出的信息。
回归到 应用程序层,来源
的重要性不言而语,例如表单提交限制,频率等等均需要客户端
信息。使用流行的
中的代码片断:
private function _get_client_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
如以下的JSP代码片段:public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
以上代码片段即是获取客户端 ,这段程序会尝试检查
根据之前的原理说明,以
均属于客户端发送的内容。那么,如果客户端伪造
,不就可以欺骗此程序,达到“伪造
”之目的?
那么如何伪造这项值?如果你会写程序,并了解 协议,直接伪造请求
即可。或者使用
插件即可。
按图示顺序号输入或点击相应按钮。 按钮这里变为红色
,说明设置成功。
这时,如果我们使用 访问其它网站,网站服务器就针接收到我们伪造的
严格意义上讲,这并不是程序中的漏洞。 为了保持较好的环境兼容性
包含有反向代理的
服务器环境,如
的前端代理
,如此处理是可以理解的。那么如何处理,才能杜绝这个问题呢?
服务器重新配置 为正确的值。
如对典型的 环境(
是否位于同一机器,并不妨碍此问题的产生)
进程直接通信:
切记, 是由
的参数,就代表了与当前
直接通信的客户端的
(是不能伪造的)。
再比如,存在中间层代理服务器的环境:
这种情况下,后端的 文件服务器上获取取的
永远是前端的
服务器的通信
服务器集群之间的通信,是可以信任的。我们要做的就是在离用户最近的前端代理上,强制设定 的值,后端所有机器不作任何设置,直接信任并使用前端机器传递过来的
即在最前端的 上设置:
^/static {
proxy_pass
proxy_set_header X-Forward-For $remote_
如果最前端(与用户直接通信)代理服务器是与 直接通信,则需要在其上设定:
location ~ "\.+\.php$" {
fastcgi_pass localhost:9000;
fastcgi_param
HTTP_X_FORWARD_FOR
的内置变量,代表了客户端真实(网络传输层)
。通过此项措施,强行将
设置为客户端
使客户端无法通过本文所述方式“伪造
LVS转发环境下,是否存在此问题?
LVS工作在网络层,不改变来源及目标
,更不可能更改应用层信息,故不存在此问题。如果有任何疑惑或需要帮助,请联系笔者信箱 。
存在此问题的程序
所有版本的 。以及其它可能未知的程序。
例如使用 进行
伪装之后再登录
,我们查看自己的个人资料中的“上次访问
”就发现就是我们伪装的数据。
可以说,互联网上存在此漏洞的网站实在是太多了。试试便知。那么对于存在此漏洞,并且使用 作限制的网站,一定要小心。
浏览 196778
浏览: 768308 次
来自: 北京
除了 libmysql 和 mysqlnd, 在 linux
很不错的!力荐!
楼主,你好,我配置了一个负载均衡集群两台服务器,都可以启动ke ...
完全不经过脑子考虑
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'&>&陌陌可模拟位置修改版
陌陌可模拟位置修改版
上传大小:12.24MB
陌陌,伟大的聊天工具。好好利用吧,你懂得
综合评分:3
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有15条
好久的资源,好久才来评论,现在用不了了
唉 现在不能使用了
确实已无法使用!!!
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
陌陌可模拟位置修改版
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
fengzhongwei2011
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
陌陌可模拟位置修改版C# 系统应用之鼠标模拟技术及自动操作鼠标
游戏程序的操作不外乎两种——键盘输入控制和鼠标输入控制,几乎所有游戏中都使用鼠标来改变角色的位置和方向,本文主要是讲述如何使用C#调用Windows API函数实现鼠标模拟操作的功能.首先通过结合FindWindow和FindWindowEx寻找到窗体的按钮,在通过SetCursorPos或mouse_event函数操作鼠标,同时涉及到通过spy++工具获取窗体消息的信息.
一. Windows API函数介绍
.NET没有提供改变鼠标指针位置、模拟单机操作的函数,但是可以通过调用Windows API函数实现.
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X,int Y);
该函数用于设置鼠标的位置,其中X和Y是相对于屏幕左上角的绝对位置.
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags,int dx,int dy,uint data,UIntPtr extraInfo);
该函数不仅可以设置鼠标指针绝对位置,而且可以以相对坐标来设置位置.
其中flags标志位集,指定点击按钮和鼠标动作的多种情况.dx指鼠标沿x轴绝对位置或上次鼠标事件位置产生以来移动的数量.dy指沿y轴的绝对位置或从上次鼠标事件以来移动的数量.data如果flags为MOUSE_WHEEL则该值指鼠标轮移动的数量(否则为0),正值向前转动.extraInfo指定与鼠标事件相关的附加32位值.
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string strClass, string strWindow);
该函数根据类名和窗口名来得到窗口句柄,但是这个函数不能查找子窗口,也不区分大小写.如果要从一个窗口的子窗口查找需要使用FIndWindowEX函数.
[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,
string strClass, string strWindow);
该函数获取一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配,该函数查找子窗口时从排在给定的子窗口后面的下一个子窗口开始.其中参数
hwnParent为要查找子窗口的父窗口句柄,若该值为NULL则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口.
hwndChildAfter子窗口句柄,查找从在Z序中的下一个子窗口开始,子窗口必须为hwnParent直接子窗口而非后代窗口,若hwnChildAfter为NULL,查找从父窗口的第一个子窗口开始.
strClass指向一个指定类名的空结束字符串或一个标识类名字符串的成员的指针.
strWindow指向一个指定窗口名(窗口标题)的空结束字符串.若为NULL则所有窗体全匹配.
返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄,如果函数失败,返回值为NULL.
二. 鼠标自动点击按钮和查看鼠标运行轨迹
首先创建一个C#工程,设计的窗体如下图所示,同时添加Timer时间器控件:
然后添加的如下代码,即可实现鼠标模拟技术及自动操作鼠标:
using System.Collections.G
using System.ComponentM
using System.D
using System.D
using System.L
using System.T
using System.Threading.T
using System.Windows.F
//引用新命名空间
using System.Runtime.InteropS
//StructLayout
namespace MouseAction
public partial class Form1 : Form
public Form1()
InitializeComponent();
//结构体布局 本机位置
[StructLayout(LayoutKind.Sequential)]
struct NativeRECT
//将枚举作为位域处理
enum MouseEventFlag : uint //设置鼠标动作的键值
Move = 0x0001,
//发生移动
LeftDown = 0x0002,
//鼠标按下左键
LeftUp = 0x0004,
//鼠标松开左键
RightDown = 0x0008,
//鼠标按下右键
RightUp = 0x0010,
//鼠标松开右键
MiddleDown = 0x0020,
//鼠标按下中键
MiddleUp = 0x0040,
//鼠标松开中键
XDown = 0x0080,
XUp = 0x0100,
Wheel = 0x0800,
//鼠标轮被移动
VirtualDesk = 0x4000,
//虚拟桌面
Absolute = 0x8000
//设置鼠标位置
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
//设置鼠标按键和动作
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy,
uint data, UIntPtr extraInfo); //UIntPtr指针多句柄类型
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string strClass, string strWindow);
//该函数获取一个窗口句柄,该窗口雷鸣和窗口名与给定字符串匹配 hwnParent=Null从桌面窗口查找
[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter,
string strClass, string strWindow);
[DllImport("user32.dll")]
static extern bool GetWindowRect(HandleRef hwnd, out NativeRECT rect);
//定义变量
const int AnimationCount = 80;
private Point endP
private void button1_Click(object sender, EventArgs e)
NativeRECT
//获取主窗体句柄
IntPtr ptrTaskbar = FindWindow("WindowsForms10.Window.8.app.0.2bf8098_r11_ad1", null);
if (ptrTaskbar == IntPtr.Zero)
MessageBox.Show("No windows found!");
//获取窗体中"button1"按钮
IntPtr ptrStartBtn = FindWindowEx(ptrTaskbar, IntPtr.Zero, null, "button1");
if (ptrStartBtn == IntPtr.Zero)
MessageBox.Show("No button found!");
//获取窗体大小
GetWindowRect(new HandleRef(this, ptrStartBtn), out rect);
endPosition.X = (rect.left + rect.right) / 2;
endPosition.Y = (rect.top + rect.bottom) / 2;
//判断点击按钮
if (checkBox1.Checked)
//选择"查看鼠标运行的轨迹"
this.count = AnimationC
movementTimer.Start();
SetCursorPos(endPosition.X, endPosition.Y);
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
textBox1.Text = String.Format("{0},{1}", MousePosition.X, MousePosition.Y);
//Tick:定时器,每当经过多少时间发生函数
private void movementTimer_Tick(object sender, EventArgs e)
int stepx = (endPosition.X - MousePosition.X) /
int stepy = (endPosition.Y - MousePosition.Y) /
if (count == 0)
movementTimer.Stop();
mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero);
mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero);
textBox1.Text = String.Format("{0},{1}", MousePosition.X, MousePosition.Y);
mouse_event(MouseEventFlag.Move, stepx, stepy, 0, UIntPtr.Zero);
同时自定义一个对话框,增加一个button按钮,其运行结果如下图所示:
可以看到当运行程序勾选"查看鼠标运行的轨迹"并点击"开始"按钮后,会通过FindWindow和FindWindowEx函数查找窗体"Form1"的"button1"按钮,并通过mouse_event移动鼠标和点击鼠标.其中函数原型为:
IntPtr FindWindowEx(
IntPtr hwndParent,
// handle to parent window [父窗体句柄]
IntPtr hwndChildAfter, // handle to child window [子窗体句柄]
string strClass,
// class name [窗体类名]
string strWindow
// window name [窗体名]
但是怎样找到窗体类名和按钮的类名呢?由于初学,很多窗体我都没有实现如QQ,它需要用到一个叫spy++的工具.
PS:第一次制作gif格式动态图片,参照博客 https://blog.csdn.net/tangcheng_ok/article/details/8246792
三. 使用SPY++工具获取窗体信息
如果修改代码为:
//获取任务栏句柄
IntPtr ptrTaskbar = FindWindow("Shell_TrayWnd",null);
//托盘通知句柄
IntPtr ptrStartBtn = FindWindowEx(ptrTaskbar, IntPtr.Zero, "TrayNotifyWnd", null);
可以获取电脑底部任务栏的托盘通知句柄,其中通过Spy++工具(VS中"工具"中自带)查找如下图所示:
同样,我通过spy++工具获取txt句柄,首先打开spy++工具,同时点击"查找窗口"按钮(望远镜),再点击"查找程序工具"中按钮拖拽至要查看的窗体中,点击"确定"按钮.
这样就会显示这个txt的信息,同时可以右击"属性"显示窗体的类名、窗体题目、句柄等信息.
最后通过下面代码可以获取hello.txt的句柄:
//获取记事本句柄
IntPtr ptrTaskbar = FindWindow("Notepad", null);
IntPtr ptrStartBtn = FindWindowEx(ptrTaskbar, IntPtr.Zero, "Edit", null);
再通过mouse_event操作鼠标,同时可以通过SendMessage将指定的消息发送到一个或多个窗口,PostMessage将一个消息寄送到一个线程的消息队列后就立即返回.实现消息传递等功能,学习ing~
该篇文章主要讲述C#如何操作鼠标的事件,在制作游戏外挂或自动运行程序时非常实用,但遗憾的是在上面通过窗体名称"Form1"获取窗体时总是失败,需要通过spy++获取它的类名来实现.Why?同时如果想学习键盘模拟技术的可以研究SetWindowsHookEx(安装钩子)、CallNextHookEx(下一个钩子)、UnhookWindowsHookEx(卸载钩子)和鼠标Hook实现很多技术.
希望文章对大家有所帮助,如果有错误或不足之处,请见谅~
(By:Eastmount 日 晚上8点
https://blog.csdn.net/eastmount/)
参考资料-在线笔记:
本文主要参考书籍《C#网络变成高级篇之网页游戏辅助程序设计》张慧斌 王小峰著
1.C#获取QQ聊天输入框中内容 https://www.csharpwin.com/csharpspace/.shtml
2.C#查找窗口,FindWindow用法(By-LYBwwp)https://blog.csdn.net/lybwwp/article/details/8168553
3.FindWindowEx用法(By-coolszy)
https://blog.csdn.net/coolszy/article/details/5523784
4.C# 隐藏任务栏开始按钮关闭shell(By-sshhbb)https://blog.csdn.net/sshhbb/article/details/6605976
5.任务栏句柄 https://blog.csdn.net/wangjieest/article/details/6943241
6.C#如何在外部程序的密码框内自动输入密码
https://biancheng.dnbcw.info/c/117849.html
7.C#实现对外部程序的调用操作 https://www.blue1000.com/bkhtml/c17/93.htm
8.百度知道 C#
API函数FindWindowEx返回子窗体的值为零
9.百度知道 用C#操作API实现填写桌面窗体内的textbox并点击窗体按钮Android模拟位置程序,俗称GPS欺骗,只能修改采用GPS定位的软件。 手机定位方式目前有4种:基站定位,WIFI定位,GPS定位,AGPS定位常见的修改手法:1. 抓包欺骗法,抓包改包欺骗服务器端, 但是得专门去针对某款app,而且现在很多app数据包都加密了2. hook java层经纬度获取函数, 这个方法以前可以用,现在不行了3. hook native层经纬度获取函数&4. 使用允许模拟地址位置信息(不是很通用有版本限制)为了修改微信朋友圈地理位置信息,为了好玩试过了上面的一些方法1. xpose hook java层gps函数试过了没有用2. 抓包发现全部加密了(去年经纬度信息都还没有加密的)3. hook native没有去研究4. 允许地址位置信息模拟(实测可以用) &无需root& & & &但是有版本限制, 5.0以后这个功能有限制& & & &4.4.2版本的Nexus失效& & & &红米4.1.2成功了下文主要讲解方法4, 允许模拟地理位置信息法一.开启允许位置信息模拟该功能在开发者选项里面,勾选允许地理位置信息即可二. 开始编码1. 成员定义private&String&mMockProviderName&=&LocationManager.GPS_PROVIDER;private&Thread&thread;private&LocationManager&locationManager;private&Boolean&is_run&=&true;&&2. 初始化/**&*&inilocation&初始化&位置模拟&*&&*/private&void&init_location()&{&&&&locationManager&=&(LocationManager)&this.getSystemService(Context.LOCATION_SERVICE);&&&&locationManager.addTestProvider(mMockProviderName,&false,&true,&false,&false,&true,&true,&true,&0,&5);&&&&locationManager.setTestProviderEnabled(mMockProviderName,&true);&&&&locationManager.requestLocationUpdates(mMockProviderName,&0,&0,&this);}&&3. 设置地理位置模拟@SuppressLint("NewApi")private&void&setLocation(double&longitude,&double&latitude)&{&&&&Location&location&=&new&Location(mMockProviderName);&&&&location.setTime(System.currentTimeMillis());&&&&location.setLatitude(latitude);&&&&location.setLongitude(longitude);&&&&location.setAltitude(2.0f);&&&&location.setAccuracy(3.0f);&&&&location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());&&&&locationManager.setTestProviderLocation(mMockProviderName,&location);}&&4. 开启线程一直修改//&开启线程,一直修改GPS坐标thread&=&new&Thread(new&Runnable()&{&&&&@Override&&&&public&void&run()&{&&&&&&&&while&(is_run)&{&&&&&&&&&&&&try&{&&&&&&&&&&&&&&&&Thread.sleep(500);&&&&&&&&&&&&&&&&setLocation(longitude,&latitude);&&&&&&&&&&&&}&catch&(InterruptedException&e)&{&&&&&&&&&&&&&&&&e.printStackTrace();&&&&&&&&&&&&}&&&&&&&&}&&&&}});thread.start();&&5.检测是否开启了允许地址位置模拟import&android.provider.Sif&(Settings.Secure.getInt(getContentResolver(),Settings.Secure.ALLOW_MOCK_LOCATION,&0)&!=&0){&&&&//&开启了地理位置模拟}&&最后在加上百度地图SDK就可以随意的获取经纬度坐标了并修改地理位置坐标了百度地图SDK用法: 代码上传github:最后的效果:
阅读(...) 评论()[分享]堪比008神器的免费改机软件,还可以设置自动摇一摇、模拟定位、修改基站信息等
基于xposed模拟摇一摇,修改定位,修改手机CPU型号,IMEI,IMSI等信息初学Xposed,发现网上有挺多相似的改机模块(应用变量,008,深海等),不过每个模块有的功能不是很齐全,我在这基础上开发了这款模块,借鉴于应用变量所开发。功能特色:1.模拟运行,可以实现模拟步行,也可以微信摇一摇2.模拟定位,自动屏蔽其它定位,强制让使用GPS定位3.修改CPU型号4.修改手机属性(手机号码,手机品牌型号,IMEI,IMSI,ICCID等)5.修改WIFI信息(WIFI网卡地址,WIFI名称,蓝牙物理地址)其它特色:如果你是脚本的开发作者,也可以通过接口直接修改属性。无需在页面修改。版权声明:此软件切勿用于商业用途,仅供学习研究使用。此软件也不会用于商业用途,承诺永久免费,绝不收任何费用。该模块还在不断的升级,增加更多的功能,如全息备份,随机定位,屏蔽应用,屏蔽ROOT等都是开发的范围内哦~链接:&密码:vw6y
支付方式:
最新回复 (10)
还以为源码,你搞个APK 是啥意思[em_39]1. 模拟步行,开个定时器调用 reportLocation (2. 模拟定位,github 和 csdn上都有现成的教程和源码无需Root模拟定位才有价值,通用性强,不需要设置开发者模式,然而已经实现了 (容器+Hook):-)现在市面上不root能模拟定位的都不好使哈,尤其针对QQ、微信
我自己试了下,地理位置伪造没有任何作用
链接已经失效& 求重发
链接已经失效 求重发
链接补发:z-yd.cn/ohter/nuoli.apk
链接又没了,再补发一个链接呗?
求补发链接
还以为源码,你搞个APK 是啥意思[em_39]1. 模拟步行,开个定时器调用 reportLocation (http://blog.csdn.net/lbmygf/article/details/ ...
纯属给小白使用,嘻嘻
链接补发:z-yd.cn/ohter/nuoli.apk
怎么下载不了了
1.请先关注公众号。
2.点击菜单"更多"。
3.选择获取下载码。

我要回帖

更多关于 位置伪装 hook 的文章

 

随机推荐