
SO安全
文章平均质量分 70
beyond702
这个作者很懒,什么都没留下…
展开
-
UPX elf to mem
Decompressing ELF Directly to Memory on Linux/x86 Copyright (C) 2000-2015 John F. Reiser jreiser@BitWagon.comReferences: definitions for the ELF file format /usr/src/linux/fs原创 2016-07-19 17:33:30 · 1029 阅读 · 0 评论 -
花指令文章
http://blog.youkuaiyun.com/qincode/article/details/16116091http://blog.youkuaiyun.com/yangbostar/article/details/6194133http://www.cnblogs.com/hrhguanli/p/3843298.htmlhttp://bbs.pediy.com/showthread.php原创 2016-12-19 19:18:41 · 691 阅读 · 0 评论 -
Android SO 加壳(加密)与脱壳思路
原帖地址:http://blog.youkuaiyun.com/jltxgcy/article/details/522052100x01 常见的Android SO加壳(加密)思路 1.1 破坏Elf Header 将Elf32_Ehdr 中的e_shoff, e_shnum, e_shstrndx, e_shentsize字段处理,变为无效值。由于在链接过程中转载 2016-12-21 16:25:07 · 5421 阅读 · 0 评论 -
Android LLVM-Obfuscator C/C++ 混淆编译的深入研究
一、 LLVM是什么?(1)LLVM是lowlevel virtual machine的简称,是一个编译器框架。苹果公司的Xcode 4.0之后用的都是LLVM编译器。(2)LLVM 诞生于2003.10伊利诺伊大学香槟分校,创始人ChrisLattner,现任苹果公司『开发者工具』部门的主管。 二、 LLVM-Obfuscator 是什么?(1)LLV转载 2016-09-28 15:10:04 · 2796 阅读 · 0 评论 -
ELF文件分析中的重要工具
1. file用于查看文件的简单信息BriansdeMacBook-Pro:armeabi-v7a brian$ file libcheckcert.so libcheckcert.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked (uses shared libs), stripped原创 2016-12-09 17:02:37 · 4088 阅读 · 0 评论 -
Android通过链接视图和加载视图实现GOT HOOK
1. 背景最近在研究android平台的hook技术,发现网上的资料比较凌乱,自己总结一下。首先要非常熟悉ELF文件格式,自己动手写一个解析ELF文件的小程序基本就可以研究的比较透彻了。ELF文件中有节和段的概念,相信很多人都不太了解它们的区别:节头表是在链接阶段非常重要的结构,提供了链接器链接符号的重要信息,属于链接视图;而段表是链接完生成可执行文件和动态库后才有的,在被加载和执行的原创 2016-03-25 16:42:25 · 1315 阅读 · 0 评论 -
Arm Inline hook的简易原理图
Arm架构下有arm指令和thumb指令之分,不同指令集的hook过程不一样。假设我们要hook libc.so中的execv和read函数,android系统的库应该都加了-mthumb-interworking编译选项,支持thumb/arm的代码交织,所以要区分目标函数是thumb还是arm指令的。用ndk编译自己的代码好像默认的是arm(虽然我网上查的说默认是thumb,但我的库编原创 2016-05-16 16:55:52 · 5980 阅读 · 0 评论 -
Android ELF文件中.got .plt .rel.plt .rel.dyn节的区别和联系
以下暂时做为自己的笔记,不做详细介绍。首先打印出来Section Header:可以看到上面.got和.plt节的类型是PROGBITS,也就是代码;而.rel.dyn和.rel.plt是REL,它们是Elf32_Rel类型的结构体数据。这就是为什么用ida查看ELF文件的时候只能看见.got和.plt节的内容,而用readelf查看的时候只列出来.rel.dyn和.rel原创 2016-08-03 17:40:40 · 6963 阅读 · 0 评论 -
Android和Linux动态加载机制及PLT/GOT作用介绍
首先回顾一下Linux平台上,一个模块甲需要调用另外一个模块乙中的函数时的动态链接机制: 1、模块甲在编译期间,将要引用的模块乙的名字与函数名写入自身的符号表。 2、运行期模块甲调用时,调用流程是从调用代码到PLT表到GOT表再跳入模块乙。 而如何保证模块甲的代码能从其PLT/GOT跳到正确的模块乙入口,这就是链接器做的事情。 标准Linux链接器是原创 2016-03-18 17:39:53 · 3454 阅读 · 2 评论 -
基于Android的ELF PLT/GOT符号重定向过程
原帖地址:http://bbs.pediy.com/showthread.php?p=1326515-----------------#引言写这篇技术文的原因,主要有两个:- 其一是发现网上大部分描述PLT/GOT符号重定向过程的文章都是针对x86的,比如[《Redirecting functions in shared ELF libraries》](http转载 2016-03-17 15:06:09 · 1366 阅读 · 0 评论 -
Android C语言_init函数和constructor属性及.init/.init_array节探索
了解C语言的程序猿都知道有两种方法可以让一部分代码在so或可执行文件被加载的时候先于其它任何函数执行,一种是定义一个void _init(void)函数,另一种是在函数后面声明constructor属性。那么这两种方式在执行的时候有什么区别吗?先后顺序呢?了解ELF文件格式的人又会问它们在文件中的位置又有什么差别呢?这篇文章就来解答这些问题。首先你需要了解一下ELF文件格式了,这里就不啰嗦了,原创 2016-12-13 11:42:51 · 4417 阅读 · 0 评论 -
UPX对Android上ELF加壳使用过程中的若干问题总结
下面内容部分摘录自:http://www.cnblogs.com/fishou/p/4202061.html5、相关问题总结5.1、编译UPX出现“cannot find -lz”错误。 分析:原因是链接器LD没有找到编译出来的zlib库libz.so或libz.a。 解决方法:将libz.so或libz.a拷贝到系统默认的动态链接库原创 2016-07-12 16:08:42 · 8268 阅读 · 0 评论 -
程序的链接和装入及Linux下动态链接的实现
原帖地址:http://blog.chinaunix.net/uid-11848011-id-96382.html程序的链接和装入存在着多种方法,而如今最为流行的当属动态链接、动态装入方法。本文首先回顾了链接器和装入器的基本工作原理及这一技术的发展历史,然后通过实际的例子剖析了Linux系统下动态链接的实现。了解底层关键技术的实现细节对系统分析和设计人员无疑是必须的,尤其当我们转载 2016-08-09 17:27:02 · 578 阅读 · 0 评论 -
Android注入完全剖析
转载自chouchou大神,地址:http://www.cnblogs.com/wanyuanchun/p/4020756.html0 前沿本文主要分析了一份实现Android注入的代码的技术细节,但是并不涉及ptrace相关的知识,所以读者如果不了解ptrace的话,最好先学习下ptrace原理再来阅读本文。首先,感谢源代码的作者ariesjzj大牛,没有他的源码转载 2015-09-30 11:18:49 · 1316 阅读 · 0 评论 -
360 so加壳动态脱壳方法
转载地址:http://mp.weixin.qq.com/s?__biz=MjM5NzAxMzk4NA==&mid=209300616&idx=1&sn=bcc440640f68e9355fcb20842a1ddaef&scene=0#rd环境及工具系统版本: Android 2.3.5工具 : IDA pro 6.6 、010Editor1.对加壳后的转载 2015-09-29 17:35:52 · 4768 阅读 · 0 评论 -
基于执行视图解析ELF
[《Redirecting functions in shared ELF libraries》](http://www.codeproject.com/Articles/70302/Redirecting-functions-in-shared-ELF-libraries#_Toc257815978)这篇文章所提供的例子,就是基于链接视图对ELF进行解析的,与基于执行视图进行解析相比,后面的逻辑转载 2016-03-17 16:49:40 · 2072 阅读 · 0 评论 -
动态链接库中的.symtab和.dynsym
shared library (.so)"Program Library Howto-Shared Libraries"是很好的材料, 下面的内容多是据此整理的.定义:Shared libraries are libraries that are loaded by programs when they start.使用shared library(共享库)会有很多好处, 比如转载 2016-03-25 14:18:34 · 10350 阅读 · 0 评论 -
Android Inline hook跳转部分代码
转自看雪帖子:http://bbs.pediy.com/showthread.php?p=1216957求人不如求己阿,已经解决啦!现在放出被注入的SO源码(至于如何注入并查找目标函数,自己去看看古河大哥的libinject);源码主要分为两块:1.用于初始化trampoline和实现自己函数的libservice.cpp2.用于实现trampoline的shellco转载 2016-04-18 17:47:37 · 1430 阅读 · 0 评论 -
Android ELF文件编译之符号隐藏
编译系统是一套非常强大的系统,有众多的编译参数,但是大部分人只听过很少几个,希望以后能有时间好好看一下相关的资料研究清楚。今天来介绍Android下面NDK编译so时,怎样实现符号隐藏,gcc默认的情况下是将所有符号都导出的,为了安全启见可以将符号隐藏,可以给破解带来很大的麻烦,另外还可以有效减小so文件的大小,还有一个好处是可以加快程序的运行速度。隐藏符号基本有几种方式:一种是在函数定义原创 2017-02-21 14:59:49 · 2879 阅读 · 0 评论