android反编译so
‘壹’ so文件可以反编译吗
你的游戏是在哪里下载的呢,应该是版本或其他的出问题了你重新在应用宝里面下载这个游戏安装就可以了,应该不会有异常的!应用宝里面的游戏是最齐全的,只要是存在的,就可以找到你的游戏呢然后游戏又是经过系统的检测,和手机是完美兼容,不会有啥异常的,下载很方便。在手机上打开应用宝软件搜索你所需要游戏,找到下载就可以了。也可以通过手机连接电脑端的应用宝软件来下载的,打开PC端的应用宝软件——手机应用。可以通过搜索你所需要的游戏教程进行下载呢,都是很方便的。还望采纳
‘贰’ so格式文件是什么文件
SO文件格式即ELF文件格式,它是linux下可执行文件,共享库文件和目标文件的统一格式。
根据看待ELF文件的不同方式,ELF文件可以分为链接视图和装载视图。链接视图是链接器从链接的角度看待静态的ELF文件。
从链接视图看ELF文件,ELF文件由多个section组成,不同的section拥有不同的名称,权限。而装载视图是操作系统从加载ELF文件到内存的角度看待动态的ELF文件。
从装载视图看ELF文件,ELF文件由多个segment,每一个segment都拥有不同的权限,名称。实际上,一个segment是对多个具有相同权限的section的集合。
(2)android反编译so扩展阅读:
由于Android操作系统的底层基于Linux系统,所以SO文件可以运行在Android平台上。Android系统也同样开放了C/C++接口供开发者开发Native程序。
由于基于虚拟机的编程语言java更容易被人反编译,因此越来越多的应用将其中的核心代码以C/C++为编程语言,并且以SO文件的形式供上层JAVA代码调用,以保证安全性。
而ELF头表记录了ELF文件的基本信息,包括魔数,目标文件类型(可执行文件,共享库文件或者目标文件),文件的目标体系结构,程序入口地址(共享库文件为此值为0),然后是section表大小和数目,程序头表的大小和数目,分别对应的是链接视图和装载视图。
‘叁’ 安卓app360加固怎么反编译
1 对比
上传demo进行加固,解包后对比下原包和加固包,发现加固包在assets文件夹下多了libjiagu.so,libjiagu_x86,lib文件夹下多了libjiagu_art.so,同时修改了dex文件和AndroidManifest文件
打开manifest文件,看到xxx加固对Application标签做了修改,添加了壳入口,也就是我们反编译后看到的StubApplication.smali这个文件。
相比于之前版本的加固,自从1.x.x.x加固版本之后,多了几次反调试,使得动态难度稍微增大了一些,不过针对脱壳机脱壳,再多了反调试也是无用。或者通过修改系统源码,也能达到消除反调试的作用。
2 动态调试
(1)把app安装到手机,以调试模式打开app
(2)以shell模式root权限打开IDA的android_server监听
(3)tcp转发
(4)打开IDA,修改配置为在进程开始时下断
(5)搜索到进程后jdwp转发,pid值即为我们进程号,并在命令行下附加。
成功附加后,可以下段了,打开Debugger Option
我们选择在线程开始和库加载时下断,修改成功后,jdb附加,点击运行
程序会断在elf头处,按下G键,搜索mmap,在mmap函数的段首和断尾下段
F9运行,来到断尾时F8单步,
来到此处时,在 BLunk_5C999C2C下断,F9一下,F7跟进去
跟进去今后在BLX LR处进行下断,此处就是进行反调试的地方,原理依然是获取TracePid的值判断当前是不是处于调试状态,建议第一次调试的人在fgets和fopen处下断,再f7跟进此调用就可以看到TracePid的值了。
跟进去之后,我们直接把方法移到最下方,就可以看到kill符号了,这就是杀进程的地方,如果当前处于调试状态,则直接结束进程。
我们在此函数的所有cmpR0,#0处下断,F9一下后即断在断点处,观察寄存器窗口的R0值,实质就是当前的TracePid的16进制的值
不确定的可以使用cat /proc/pid/status进行对比一下,我们直接把R0置0,右键选择Zero Value即可清0,继续F9
我们看到程序又来到了mmap处,继续f9
当继续断在调用反调试功能的方法时,继续F7跟进,依然在所有的cmp R0,#0处下断,断下后把R0清0后继续F9运行
目前的规律是,调用BLXLR的第一次,第二次和第四次是进行反调试判断的,第三次并不影响,可以直接f9跳过去,三次反调试搞定后,就可以愉快的F9运行并观察堆栈窗口了
当看到出现如下所示时:
说明壳已经开始解密并释放dex文件了,我们直接F8单步十几步,最后F9一下就可以看到我们需要的dex头了
直接脚本mp出来即可,最后把libjiagu的所有文件删除,并修复下Application标,如果存在则修复,不存在删除即可
‘肆’ 安卓手机如何打开.so文件
01安卓手机打开.so文件需要下载Native Libs Monitor这个app,这个应用可以帮助我们理解手机上安装的APK用到了哪些.so文件,以及.so文件来源于哪些函数库或者框架。我们也可以自己对app反编译来获取这些信息。
so机制让开发者最大化利用已有的C和C++代码,达到重用的效果,利用软件世界积累了几十年的优秀代码。
so是二进制,没有解释编译的开消,用so实现的功能比纯java实现的功能要快。
so内存分配不受Dalivik/ART的单个应用限制,减少OOM。
‘伍’ Android如何调用反编译得到的so
反编译不可以,反汇编可以,这个网络一下你就知道了。反汇编,这没点功力肯定不行的。
如果你改不了这个so文件,要调用此so文件。那么你必须按之前工程的包名、类名、方法名来调用,也就是方法路径必须与原来的一致,因为如果不一致,native方法就不可用了,找不到。
‘陆’ 如何简单修改Android的so文件
so文件是动态链接库,是个二进制文件,相当于windows系统下的dll
二进制文件基本没法修改的,除非有它的源代码,修改以后,重新编译。
当然,so可以在一定程度上反编译,但是很麻烦。
‘柒’ 关于android软件中的so文件!
*.so文件是linux平台下的动态链接库,反编译动态链接库参见windows下*.dll文件的反编译,类似的
Linux:是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
动态链接库:英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个程序同时使用的代码和数据的库。
DLL文件又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。[1]
‘捌’ android的so文件如何防止常量字符串泄露
SO文件主要存放着核心算法、加密解密方法、协议等,因此一旦被反编译。逆向分析会造成重大的损失。目前有很多安全服务商推出相应的SO文件保护,比如爱加密等等,针对Android/Linux的so文件做高级混淆以及加壳隐藏外部函数,可以有效防止so文件被逆向分析。希望可以采纳,谢谢!
‘玖’ 请教一下,SO文件如何反编译最好是WIN环境下搭建。谢谢。
谢谢。。。以前玩过CD版的,我去找找。。。另外SO库和DLL库的逆向近似吗?貌似我查了下,我关注的这个软件转码算法网上还木有。。。是不是也有壳的说法,或者密钥?但离线阅读能实现的功能应该可以逆向,而且是不分文本、通用型转码。