
起因:盯上了一个小程序,想要使用接口直接访问小程序内容,但是小程序需要登录!用charles抓包后发现其中登录接口的密码被加密了,密文: "encryptPasswd": [89, 84, , 106, 77, 61], ,第一反应是字符串转ascil值,但是将我的密码转换后与其对不上,所以里面应该用了其他什么方法。为了获取其密码的加密规则,开搞!
万能的百度先搜一波发现已经有很多人做了解密了小程序的教程,但是全是基于安卓手机或者安卓模拟器的。哦!没安卓机!装个模拟器?算了吧!这部有台已经越狱的iphone7麻,既然安卓能获取到微信小程序包,那IOS应该也是可以的。试试吧!打开unc0ver 先越狱。然后i4助手找到应用越狱文件系统,那么怎么找到微信存放的小程序包呢?猜想应该存放在沙盒里。 思路一,直接hook 微信,找到沙盒地址导出后再查找。感觉应该是可行的。 *** 作起来也不难,由于DKWeChatHelper微信已经被搞了很多次了。 frida-ios-dump 导出安装包,monkeydev hook安装包,重新打开小程序,导出沙盒内容查找。
感觉不是很方便啊,偷个懒呗。方案二: SSH ,ssh登录到手机后,直接进入沙盒地址
cd var/mobile/Containers/Data/Application
查看一下内容
这也不知道哪一个啊,那就直接开搜吧
easy! 这不比模拟器快多了,再按修改日期排个序,很容易就找到了小程序包。
接下来就是 解包小程序了。其他博客这部分内容很多,就不介绍了,获取源码后使用微信开发者工具打开。全文搜索一下 login 吧,结果太多了。这时候结合抓包,根据接口地址搜索,最终确定了登录的函数。
反汇编只是按将010二进制码这样的目标码分析解释成Assembler ,所以我们叫DisAssembler,当然这与教科书上的汇编语言是不同的,这是由编译器优化生成的目标代码,而反汇编只是将通过如intel 指令手册就可以将之转换出来,而逆向编程是在反汇编的基础上,然后分析他的逻辑,从而用高级语言或是流式语言进行二次编程,比较常见的,就是使用嵌入asm(c语言),再则因为汇编的条件啥的其实基本都在goto,所以你用老一套的跟,只到你跟出自己的思路来了,那就真的就是逆向编程了,不过现在多是以上两种,当然高手我就没资格评论了
学习了一段时间的iOS逆向工程,在此记录一下学习中的遇到的问题和知识点
iOS逆向必须要有一个越狱手机,最好是完美越狱的手机
爱思助手 或者 pp助手 中有详细的讲解,最好用ARM64位的手机,iPhone5s(以上)。
判断手机是否越狱:判断手机上是否安装了Cydia
SSH
Secure Shell的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议
使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗
OpenSSH
是SSH协议的免费开源实现
可以通过OpenSSH的方式让Mac远程登录到iPhone
在iPhone上通过Cydia安装OpenSSH工具(软件源 >
程序都是以函数为一个单位。函数内的多条代码使函数完成了特定的功能,在分析当中也是以一个函数作为一个分析单位。在分析时,应当尽可能多的分析出这个函数所完成的具体功能。
反汇编中的函数一般都有如下格式:
11 第一种函数格式
push ebp
mov esp,ebp
pop ebp
ret
12 第二种函数格式
这种函数没有特定的格式,但可以肯定是在函数的末尾肯定有ret语句。
2、识别函数的返回值,形参,局部变量
函数一般是使用eax寄存器来保存返回值。但是一些编译器可能用其他的方式来传递返回值,因此,在分析程序的前期,需要确定该程序是用什么编译器进行编译的(通过PEId可以产看),才能确定其返回值是用什么方式进行传递的。
函数的形参个数可以通过函数平衡多少字节的栈空间来推理出。因为存在着许多的传参方式,所以这种方法并不是绝对正确的,因此要先观察出一个函数的传参方式是何种方式。
和函数的传参方式息息相关的函数调用方式:
不同的调用方式平衡堆栈的方式是不同的。C方式调用时,是调用者进行堆栈平衡。传参时,一般是自右往左将实参入栈。在32位下实参一般是4个字节一个,但也有例外的情况(比如传递一个结构体变量)。
在平衡堆栈时,一般是在函数调用语句后由调用者平衡堆栈。
例如:
call fun ; 调用一个函数
add esp , 4 ; 平衡堆栈
stdCall 是被调用自己平衡
stdCall方式调用时, 形参入栈的方式和 C方式相同, 不同就在于平衡堆栈的形式 std方式调用是由被调用的函数自己本身来平衡堆栈也就是在函数返回的时候平衡堆栈
ret 0x4 // stdCall平衡堆栈的实例
如果函数传入形参每个都是 4个字节的, 那么就可以算出有多少个形参公式就是 :
形参个数 = 平衡堆栈用到的字节数 / 4
函数形参在汇编语言中随着调用方式不同其表现形式也跟着不同
C方式和 std方式调用时,形参的表现形式为: [ebp+8] ,即 ebp+一个数字去索引
高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。
但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。
计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件: VB: VBExplorer 、VB反编译精灵和VBRezQ;只能反编译界面图像,好像代码不能完全反编译 JAVA: JAD ;java的反编译比较常见,所以反编译比较完全, 将class文件反编译成java文件也是有可能的 C++ : eXeScope Dephi: DEDE c#:Reflector 易语言:E-Code Explorerexe(易格式可执行文件分析器)。
就是ANDROID程序的目标代码反向到JAVA源程序,不是反汇编,是返JAVA。
一般WINDOWS下exe只能反汇编。但JAVA是解释执行,伪编译生成的是中间
机器码,可以逆向到源程序,但没有了注释。
不行。
若要破解
易语言
写的
程序
,你可以用monkeycz写的E-Code
Explorer进行反编译,再结合OD,但也不会转换成e的
源码
。它只是在分析和解密易程序,都是
汇编语言
,
你的要求
,没什么可能实现了。
逆向工程,有的人也叫反求工程,英文是reverse engineering。
逆向工程(reverse engineering)大意是根据已有的东西和结果,通过分析来推导出具体的实现方法。比如你看到别人写的某个exe程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,逆向软件工程的目的是使软件得以维护。
1980年始欧美国家许多学校及工业界开始注意逆向工程这块领域。1990年初期包括台湾在内,各国学术界团队大量投入逆向工程的研究并发表成果。
逆向工程的硬件最早是运用仿制加工设备,制作出来的成品品质粗糙。后来有接触式扫瞄设备,运用探针接触工件取得产品外型。再来进一步开发非接触式设备,运用照相或激光技术,计算光线反射回来的时间取得距离。
逆向工程软件部分品牌包括Surfacer(Imageware)、ICEM、CopyCAD、Rapid Form等。逆向软件的演进约略可区分为三个阶段。十一年前在逆向工程上,只能运用CATIA等CAD/CAM高阶曲面系统。市场后来发展出两套主流产品约在七、八年前技术成熟,广为业界引用。到最近四年来,发展出不同以往的逆向工程数学逻辑运算,速度快。
逆向工程在台湾的发展轨迹持续在进行,工研院曾写过一套逆向工程软件,学术界不少研究团队也将逆向工程领域作为研究主题,开发出具不同功能的系统软件,但是最后这些软件都没有真正落实到产业界应用。工研院的团队后来也结束逆向工程研究,转而开发其它主题。原有的研发成果后继无人,殊为可惜。
1998年,NEWPOWER启动了逆向工程的一些项目,要求是把客户的现有源代码转变成设计, 如果需要的话,进一步转化成产品需求规约。这恰恰与类似于V模型的标准开发过程模型相逆。这样一来,客户就可以容易地维护他们的产品(需求,设计,源代码等等),而不需要想以前那样,每次改动产品都需要直接修改源代码。
是指从实物上采集大量的三维坐标点,并由此建立该物体的几何模型,进而开发出同类产品的先进技术。逆向工程与一般的设计制造过程相反,是先有实物后有模型。仿形加工就是一种典型的逆向工程应用。目前,逆向工程,逆向工程的应用已从单纯的技巧性手工 *** 作,发展到采用先进的计算机及测量设备,进行设计、分析、制造等活动,如获取修模后的模具形状、分析实物模型、基于现有产品的创新设计、快速仿形制造等。
通俗说,从某种意义上说,逆向工程就是仿造。这里的前提是默认我们传统的设计制造为“正向工程(当然,没有这种说法)”。
软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序的表示过程,逆向工程是设计的恢复过程。逆向工程工具可以从已存在的程序中抽取数据结构、体系结构和程序设计信息。
四大逆向工程软件简介
Imageware
Imageware 由美国 EDS 公司出品,是最著名的逆向工程软件,正被广泛应用于汽车、航空、航天、消费家电、模具、计算机零部件等设计与制造领域。该软件拥有广大的用户群,国外有 BMW、Boeing、GM、Chrysler、Ford、raytheon、Toyota 等著名国际大公司,国内则有上海大众、上海交大、上海 DELPHI、成都飞机制造公司等大企业。
以前该软件主要被应用于航空航天和汽车工业,因为这两个领域对空气动力学性能要求很高,在产品开发的开始阶段就要认真考虑空气动力性。常规的设计流程首先根据工业造型需要设计出结构,制作出油泥模型之后将其送到风洞实验室去测量空气动力学性能,然后再根据实验结果对模型进行反复修改直到获得满意结果为止,如此所得到的最终油泥模型才是符合需要的模型。如何将油泥模型的外形精确地输入计算机成为电子模型,这就需要采用逆向工程软件。首先利用三坐标测量仪器测出模型表面点阵数据,然后利用逆向工程软件(例如:Imageware surfacer)进行处理即可获得 class 1 曲面。
随着科学技术的进步和消费水平的不断提高,其它许多行业也开始纷纷采用逆向工程软件进行产品设计。以微软公司生产的鼠标器为例,就其功能而言,只需要有三个按键就可以满足使用需要,但是,怎样才能让鼠标器的手感最好,而且经过长时间使用也不易产生疲劳感却是生产厂商需要认真考虑的问题。因此微软公司首先根据人体工程学制作了几个模型并交给使用者评估,然后根据评估意见对模型直接进行修改,直至修改到大家都满意为止,最后再将模型数据利用逆向工程软件 Imageware 生成 CAD 数据。当产品推向市场后,由于外观新颖、曲线流畅,再加上手感也很好,符合人体工程学原理,因而迅速获得用户的广泛认可,产品的市场占有率大幅度上升。
Imageware 逆向工程软件的主要产品有:
Surfacer——逆向工程工具和 class 1 曲面生成工具
Verdict——对测量数据和CAD数据进行对比评估
Build it——提供实时测量能力,验证产品的制造性
RPM——生成快速成型数据
View——功能与 Verdict 相似,主要用于提供三维报告
Imageware 采用 NURB 技术,软件功能强大,易于应用。Imageware 对硬件要求不高,可运行于各种平台:UNIX 工作站、PC 机均可, *** 作系统可以是 UNIX、NT、Windows95 及其它平台。
Imageware 由于在逆向工程方面具有技术先进性,产品一经推出就占领了很大市场分额,软件收益正以 47% 的年速率快速增长。
Surfacer 是 Imageware 的主要产品,主要用来做逆向工程,它处理数据的流程遵循点——曲线——曲面原则,流程简单清晰,软件易于使用。其流程如下:
一、点过程
读入点阵数据。
Surfacer 可以接收几乎所有的三坐标测量数据,此外还可以接收其它格式,例如:STL、VDA 等。
将分离的点阵对齐在一起(如果需要)。
有时候由于零件形状复杂,一次扫描无法获得全部的数据,或是零件较大无法一次扫描完成,这就需要移动或旋转零件,这样会得到很多单独的点阵。Surfacer 可以利用诸如圆柱面、球面、平面等特殊的点信息将点阵准确对齐。
对点阵进行判断,去除噪音点(即测量误差点)。
由于受到测量工具及测量方式的限制,有时会出现一些噪音点,Surfacer 有很多工具来对点阵进行判断并去掉噪音点,以保证结果的准确性。
通过可视化点阵观察和判断,规划如何创建曲面。
一个零件,是由很多单独的曲面构成,对于每一个曲面,可根据特性判断用用什么方式来构成。例如,如果曲面可以直接由点的网格生成,就可以考虑直接采用这一片点阵;如果曲面需要采用多段曲线蒙皮,就可以考虑截取点的分段。提前作出规划可以避免以后走弯路。
根据需要创建点的网格或点的分段。
Surfacer 能提供很多种生成点的网格和点的分段工具,这些工具使用起来灵活方便,还可以一次生成多个点的分段。
二、曲线创建过程
判断和决定生成哪种类型的曲线。
曲线可以是精确通过点阵的、也可以是很光顺的(捕捉点阵代表的曲线主要形状),或介于两者之间。
创建曲线。
根据需要创建曲线,可以改变控制点的数目来调整曲线。控制点增多则形状吻合度好,控制点减少则曲线较为光顺。
诊断和修改曲线。
可以通过曲线的曲率来判断曲线的光顺性,可以检查曲线与点阵的吻合性,还可以改变曲线与其它曲线的连续性(连接、相切、曲率连续)。Surfacer 提供很多工具来调整和修改曲线。
三、曲面创建过程
决定生成那种曲面。
同曲线一样,可以考虑生成更准确的曲面、更光顺的曲面(例如 class 1 曲面),或两者兼顾,可根据产品设计需要来决定。
创建曲面。
创建曲面的方法很多,可以用点阵直接生成曲面(Fit free form),可以用曲线通过蒙皮、扫掠、四个边界线等方法生成曲面,也可以结合点阵和曲线的信息来创建曲面。还可以通过其它例如园角、过桥面等生成曲面。
诊断和修改曲面。
比较曲面与点阵的吻合程度,检查曲面的光顺性及与其它曲面的连续性,同时可以进行修改,例如可以让曲面与点阵对齐,可以调整曲面的控制点让曲面更光顺,或对曲面进行重构等处理。
英国 Triumph Motorcycles 有限公司的设计工程师 Chris Chatburn 说:“利用 Surfacer 我们可以在更短的时间内完成更多的设计循环次数,这样可以让我们减少 50% 的设计时间。”
最新发布的 Surfacer 106 软件将以下工作流程的高性能工具完整的集成到一起:
[d性的曲面创建工具]:可以在一个d性的设计环境里非常方便的直接从曲线、曲面、或测量数据创建曲面,支持贝茨尔(Bezier)和非均匀有理 B 样条(NURBS)曲面两种方法。用户可以选择适合的曲面方法,通过结合两种方法的优点来获益。
[动态的曲面修改工具]:允许用户在交互的方式下试探设计主题,立刻就可以看到是否美观和思路是否符合工程观念。设计、工程分析、制造的标准都通过精心的构造过程考虑进去,所以当每次修改曲面时不需要再重新校核标准。
[实时的曲面诊断工具]:可以提供诸如任意截面的连续性、曲面反射线情况、高亮度线、光谱图、曲率云图和园柱型光源照射下的反光图等多种方法,在设计的任何时候都可以查出曲面缺陷。
[有效的曲面连续性管理工具]:在复杂的曲面缝补等情况下,即使曲面进行了移动修改等 *** 作,也能保证曲面同与之相连的曲面间的曲率连续,避免了乏味的手工再调整过程。
[强大的处理扫描数据能力]:根据 Rainbow 图法(相当于假设雨水从上面落下,由于形状差异导致雨水流速差异)、曲率大小变化云图法(对于一个完全光顺的 class 1 曲面,相当于曲率大小变化为零,对于两个不同曲面,此值会不同)将扫描数据分开,这样可以很快地捕捉产品的主要特征,并迅速建立各个相应曲面,避免了费事的分析和处理。
正是由于 Imageware 在计算机辅助曲面检查、曲面造型及快速样件等方面具有其它软件无可匹敌的强大功能,使它当之无愧的成为逆向工程领域的领导者。
Geomagic Studio
由美国 Raindrop (雨滴)公司出品的逆向工程和三维检测软件 Geomagic Studio 可轻易地从扫描所得的点云数据创建出完美的多边形模型和网格,并可自动转换为 NURBS 曲面。该软件也是除了 Imageware 以外应用最为广泛的逆向工程软件。
Geomagic Studio 主要包括 Qualify、Shape、Wrap、Decimate、Capture 五个模块。主要功能包括:
自动将点云数据转换为多边形(Polygons)
快速减少多边形数目(Decimate)
把多边形转换为 NURBS 曲面
曲面分析(公差分析等)
输出与 CAD/CAM/CAE 匹配的文件格式(IGS、STL、DXF等)
1从CAD数模得到的产品模型
2将CAD模型读入 Geomagic Studio
3CAD 设计模型与从实际模型扫描所得的点云数据(不同坐标系)
4扫描数据与CAD模型的自动对合
5扫描数据与CAD模型的自动对齐
6误差以彩色图形直观显示
7用户可标出任意点误差
8 Qualify 的结果可以输出为 HTML 格式
CopyCAD
CopyCAD 是由英国 DELCAM 公司出品的功能强大的逆向工程系统软件,它能允许从已存在的零件或实体模型中产生三维CAD模型。该软件为来自数字化数据的 CAD 曲面的产生提供了复杂的工具。CopyCAD 能够接受来自坐标测量机床的数据,同时跟踪机床和激光扫描器。
CopyCAD 简单的用户界面允许用户在尽可能短的时间内进行生产,并且能够快速掌握其功能,即使对于初次使用者也能做到这点。使用 CopyCAD 的用户将能够快速编辑数字化数据,产生具有高质量的复杂曲面。该软件系统可以完全控制曲面边界的选取,然后根据设定的公差能够自动产生光滑的多块曲面,同时,CopyCAD 还能够确保在连接曲面之间的正切的连续性。
该软件的主要功能如下:
数字化点数据输入
DUCT 图形和三角模型文件
CNC 坐标测量机床
分隔的 ASCII 码和 NC 文件
激光扫描器、三维扫描器和 SCANTRON
PC ArtCAM
Renishaw MOD 文件
点 *** 作
能够进行相加、相减、删除、移动以及点的隐藏和标记等点编辑
能够为测量探针大小对模型的三维偏置进行补偿
能够进行模型的转换、缩放、旋转和镜像等模型转换
能够对平面、多边形或其它模型进行模型裁剪
三角测量
在用户定义的公差和选项内的数字化模型的三角测量,包括:
① 原始的——法线设置
② 尖锐——尖锐特征强化
③ 特征匹配——来自点法线数据的特征
④ 关闭三角测量——为了快速绘图可以关闭模型
特征线的产生
边界——转换模型外边缘为特征线
间断——为找到简单的特征(如凸出和凹下)而探测数据里的尖锐边缘
能够转换数字化扫描线为特征线
输入的数据——能够从点文件中摘录多线条和样条曲线
曲面构造
通过在三角测量模型上跟踪直线产生多样化曲面
在连接的曲面之间,用已存在的曲面定义带有选项的正切连续性的边界
使用特征线指导和加快曲面定义
曲面错误检查
比较曲面与数字化点数据
报告最大限、中间值和标准值的错误背离
错误图形形象地显示变化
输出
IGES、CADDS4X
STL ASCII 码和二进制
DUCT 图形、三角模型和曲面
分隔的 ASCII 码
RapidForm
RapidForm 是韩国 INUS 公司出品的全球四大逆向工程软件之一,RapidForm 提供了新一代运算模式,可实时将点云数据运算出无接缝的多边形曲面,使它成为 3D Scan 后处理之最佳化的接口。RapidForm 也将使您的工作效率提升,使 3D 扫描设备的运用范围扩大,改善扫描品质。
多点云数据管理介面
高级光学 3D 扫描仪会产生大量的数据(可达 100,000 ~ 200,000点),由于数据非常庞大,因此需要昂贵的电脑硬件才可以运算,现在 RapidForm 提供记忆管理技术(使用更少的系统资源)可缩短您处理数据的时间。
多点云处理技术
可以迅速处理庞大的点云数据,不论是稀疏的点云还是跳点都可以轻易地转换成非常好的点云, RapidForm 提供过滤点云工具以及分析表面偏差的技术来消除 3D 扫描仪所产生的不良点云。
快速点云转换成多边形曲面的计算法
在所有逆向工程软件中,RapidForm 提供一个特别的计算技术,针对 3D 及 2D 处理是同类型计算,软件提供了一个最快最可靠的计算方法,可以将点云快速计算出多边形曲面。RapidForm 能处理无顺序排列的点数据以及有顺序排列的点数据。
彩色点云数据处理
RapidForm 支持彩色 3D 扫描仪,可以生成最佳化的多边形,并将颜色信息映像在多边形模型中。在曲面设计过程中,颜色信息将完整保存,也可以运用 RP 成型机制作出有颜色信息的模型。RapidForm 也提供上色功能,通过实时上色编辑工具,使用者可以直接对模型编辑自己喜欢的颜色。
点云合并功能
多个点扫描数据有可能经手动方式将特殊的点云加以合并,当然,RapidForm 也提供一技术,使用者可以方便地对点云数据进行各种各样的合并。
以上就是关于iOS 微信小程序逆向全部的内容,包括:iOS 微信小程序逆向、反汇编与逆向编程的区别、iOS 逆向(一)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)