HDU 3809 Decrypt coordinate(坐标解密)

国外某地图APP坐标系加解密算法还原 本文主要记录了逆向分析国外某地图APP的坐标系加解密算法的还原过程, 从抓包特征开始, 一步一步定位到关键加解密函数, 在加解密函数分析过程中遭遇ARM NEON向量指令集, 不得不使用动态调试定位该指令集处, 但又遭遇反调试,导致加载目标进程直接退出, 之后开始分析反调试过程, 针对性的进行打补丁, 通过动态调试终于拿到ARM NEON向量指令集四轮密钥变换之后保存在内存中的关键密钥,并使用函数参数HOOK方式拿到加密字符串和解密字符串, 这样我在本地将算法还原后可以验证还原的算法是否准确。 阅读详情

题目大意:

x1 = x – sqrt(y)
y1 = y – sqrt(x)

题目给出多个x1,y1.求出x,y。如果有多种可能的话,就输出x较小的那一对x,y。

思路:一开始我还以为是纯几何。囧。。后来只好偷看答案了,迭代!神了,因为有2个方程,2个未知数,但是因为不是齐次方程,所以解起来麻烦。

怎么迭代呢?

因为 x= x1+ sqrt(y)

        y = y1 + sqrt(x),先把x1,y1存下来之后,把x1,y1当成x,y进行运算,那么得到的x,y肯定是小于真实值的,但是把它累加在保存下来的x1,y1后,之后再把得到的

x,y当成x,y,进行运算,迭代会把累加,逼近x,y的真实值。一句话就是:增加的越来越少的样子,然后像渐近线一样逼近真实值。

program:

#include<iostream>
#include<stdio.h>
#include<cmath>
using namespace std;
int main()
{
int test;
scanf("%d",&test);
double x1,y1;
int cas=1;
while(test--)
{
  scanf("%lf%lf",&x1,&y1);
  double x,y;
  double sx=x1,sy=y1;
  do
   {
       x=x1,y=y1;
       x1=sx+sqrt(y);    

       y1=sy+sqrt(x);
                  
   }while(x1-x>0.00000001||y1-y>0.00000001);

//其实 X2<X1<X,(Xi都是代入来迭代的东西,虽然在减小,但是还是在累加,所以一直在逼近)

// 两个不满足才跳出 ,

//刚开始时都是大于小数点为5个数的数,但是题目要求输出6个小数,所以要相差度到至少7个小数点才退出循环,

//循环装的都是反条件,都是不良条件,都是直到良好条件停止循环,输出好的,最终要求的东西


   printf("Case %d: %.6lf %.6lf\n",cas++,x1,y1);//注意啊,lf不能掉啊            
}
//system("pause");
return 0;}

 


 

总结:(一针见血):然后一开始把y=y1,x=x1赋值上去迭代,因为x>x1,y>y1;所以这样迭代上去,值会累加。可是为什么累加后值不会超过真实的x与y呢。。。

因为x=x1+sqrt(y1+sqrt(x1));这里面y1+sqrt(x)本来就是小于真实的y的。所以这里迭代上去只能使值越来越靠近真实值,而不会出现迭代上去后,值超过真实值的情况。。

括号里面的内容一直在迭代的时候就像递推式一样的变化。

VS2026解决方案多项目并存与GitHub提交完整实践指南 在Visual Studio开发体系中,解决方案(.sln)并不是项目本身,而是承载多个项目的容器,类似书包与课本的关系。将系统拆分为多个项目,可以明确模块边界、独立编译、便于团队协作与单元测试。多项目协作的关键在于项目引用与单向依赖,确保核心领域层不反向依赖上层实现。当代码规模扩大后,用Git管理这些项目时,仓库必须建在解决方案根目录,并配以严格的.gitignore规则,防止bin、obj等编译产物污染仓库。将本地解决方案推送至GitHub时,需正确处理远程仓库初始化、分支管理与长路径问题,使整个多项目 阅读详情

相关推荐

MobaXterm终端工具个人学习版安装包及常用配置备份

资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。

Mapbar经纬坐标偏移的加/解密算法

具本人研究所知,Mapbar地图的成图算法并不难懂,并且它的地图成图算法没有进行加密(效果就是整个地图有一定的偏移,实际上它的成图是准确的),由此可想而知,它的坐标必定也未加密! 那么为什么我用真实的经纬坐标在Mapbar上标注的时候,会有明显的偏移呢? 在我们应用Mapbar开发一些应用的时候,我们所看到的或者是获取到的经纬度坐标其实都不是真正的地理坐标,而是经过Mapbar加密以后的坐标,...

linuxstuding 859

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取

MapBar中坐标的加密和解密(JS实现)

因为有一朋友问起这个问题,我找了下,今天就发出来看看吧,不知道说的对不对。不过对于Mapbar这样处理的方法我个人觉得还是很值得学习的,至少不会给你明码的坐标。不知道Mapbar的朋友看了会不会找我说我那,呵呵,不过没关系,最近想写篇文章给你们些个人的小小的建议,觉得说的不好也无妨。忙完这阵子就写。下面是Mapbar中的加密和解密部分的JS,我做了简单说明了,什么36进制又16进制的,看的我也头晕...

weixin_33709590的博客 365

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

MapAbc坐标加密解密过程(翻译js)

public class ConvertClass { private List<int[]> _keys_ = new ArrayList<int[]>(); public ConvertClass(){ _keys_.add(new int[]{0, 2, 1, 2, 8, 9, 4, 1, 7, 2, 5, 3, 9}); _keys_....

weixin_30827565的博客 156

11232131231231是的

11232131231231是的

Mapbar坐标的加密与解密算法

<script language="javascript"> var EncodeKey = 699; //加密密钥,数值型;可以每个客户都不一样 function Decode(encodedcoord) //解密坐标 { var MaxNumPos=-1; //最大数位的位置 var MaxNum=0; ...

weixin_30896511的博客 939

宇树机器狗go2—slam建图(1)点云格式

上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。

古月居 3271

ESXI 7 :创建统信V20_1050d服务器系统虚拟机

记录一下在 X86 架构创建统信V20_1050d 虚拟机遇到的问题。已遇到的问题有①:常规服务器环境下网络连接失败重点:按照桌面版本,有问题处理简单。

guyuelin123的博客 1968

ECharts中GeoJson压缩和解码算法

查看echarts例子中提供的地图文件,发现geo的coordinates中包含许多乱码,其文件内容比自己的小很多,猜测数据做了压缩。网上搜索并查看源码,确实对数据进行了压缩处理。 压缩 代码来自https://my.oschina.net/rodger/blog/838763 代码未经测试,测试之后,转换为Python实现,并和省市区三级行政区数据获取和GeoJson地图下载中的下载代码整合。 function encodePolygon(coordinate){ var prevX=0,prevY=0

蜗牛、Gray 3944

基于单片机自行车码表控制系统设计

*单片机设计介绍,基于单片机自行车码表控制系统设计。

QQ2193276455的博客 1487

hdu 3809 Decrypt coordinate (水。。)

点击打开链接 PS:题目意思:让你求解方程: x1=x-sqrt(y); y1=y-sqrt(x); 已知x1,y1,要求x与y,精确到小数点后6位。 解题思路; 迭代法,式子是这样推的: x=x1+sqrt(y); y=y1+sqrt(x); 然后一开始把y=y1,x=x1赋值上去迭代,因为x>x1,y>y1;所以这样迭代上去,值会累加。可是为什么累加后值不会超过真实的

hello_fei 794

华为OD机试真题 新系统2026-04-01 Python&JS【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 3226

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

hdu3809 Decrypt coordinate 迭代法

题目链接:http: //acm.hdu.edu.cn/showproblem.php?pid=3809 题意:已知x1,y1。x1 = x - sqrt(y), y1 = y - sqrt(x); 求x, y; 之前没有精度不够wa了一次。。。。代码如下: #include&lt;cstdio&gt; #include&lt;iostream&gt; #include&lt;ma...

java开发指南博客 【转载】 136

使用自己的数据跑通mmsegmentation

使用自己的数据跑通mmsegmentation,解决以下报错:1)type object 'FileClient' has no attribute 'infer_client' 2)It is expected output_size equals to 2, but got size 3 3)训练测试结果报NAN 4)KeyError: 'MyDataset is not in the dataset registry' 5)预训练模型和加载的网络结构层名有差异,unexpected key .....

猫猫与橙子的博客 1656

HDU 1086 You can Solve a Geometry Problem too

题目大意:给出n条线段,判断有几个交点,因为任意两条的都是只有一个,就是说排除了共线的情况。 思路:首先进行快速排斥实验,就是其中有一条线段的x的最小值要小于另一条线段的最大值,而另一条线段的最小值要小于此线段的最大值,y值同理可得,说的形象点就是两个线段组成的矩形要相交。 然后进行跨立实验,就是叉乘是否异号。对两条线段都要进行叉乘     下面来自:常州市第一中学  林厚从的资料

muxi@Achilles的专栏 1074

100:vue+cesium: 加载glb文件,随机位置加载2000架飞机

本示例在 Vue + cesium 项目中随机位置加载2000架飞机,飞机是glb文件,每个大小为571kb。这个示例属于性能优化的范畴内,通常如果用entity加载glb只能显示几个飞机,这里采用primitive的方法来加载。直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果.

大剑师兰特的GIS世界 706

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1024

POJ1408 Fishnet

题目大意:就是求划分的四边形的最大面积,博哥叫我码这道水题玩玩,照码了~~1A呵呵~ 思路:枚举,克莱姆求交点水过~~~ 用二维数组结构体保存整个正方形内的点~~搞输入保存的时候有点恶心~~   AC program: #include #include #include #include #include #include using namespace std; double a[3

muxi@Achilles的专栏 941

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

POJ2187 Beauty Contest(旋转卡壳)

题目大意:凸包最远点对 思路:模板套,初写很粗糙。好几个相同函数拼凑成的,写的很丑陋。。 program: #include #include #include #include  #include  using namespace std;   struct point  {     int x,y;  }p[50005],res[50005];

muxi@Achilles的专栏 654

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: hdu 递推 2050 1290 2563 2064 2077 规律哥
下一篇: 暑期多校联合比赛 8-24 K次方
muximuxi525
博客等级 码龄15年 134粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值