burningcodes 中科大软件学院 原创内容转载请注明出处 1.什么是RPC RPC(Remote Procedure Call,远程过程调用)是由 James White(1976) 提出的一种编程方式,现在已经广泛用在各种网络应用(比如分布式计算等)中。RPC允许客户端应用程序通过一些函数调用来实现一些功能,但是这些函数的实现是在远程服务器上,客户端发起请求,服务器端返回结果,看起来就像一个本地调用。...

burningcodes  原创作品转载请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.参数传递 系统调用也需要参数,但是它在内核态下的参数传递方式和用户态下不太一样,不是通过栈而是通过寄存器来存放参数(在64位系统中用户程序的参数也变为用寄存器存放),若参数个数不超过6个可以使用ebx, ecx,edx,esi,edi,ebp来存放(eax中存放系...

Linux内核课第三次作业。burningcodes + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.给内核加入调试信息 ubunte32位下要安装 libncurses5-dbg 库,直接apt-get安装即可。 打开图形化内核配置: make menuconfig 1 make menuconfig ...

android加载so库时会调用loadLibrary来完成加载操作。一般情况下,我们将JNI_OnLoad看作so库的入口,但是很多加壳过的so根本无法从JNI_OnLoad处开始分析,那JNI_OnLoad真的是so的入口吗,从android源码中找到答案如下: System.loadLibrary其实只是做了一个中转(System.loadLibrary): public static void loadLibrary(String lib...

手动脱壳步骤较多,时间久了容易忘记,遂将一次完整脱壳步骤记录于此。 1.工具准备 IDA6.6  android_server  adb jdb等 2.运行android_server 用adb连上真机,运行android_server。 ./android_server 1 ./android_server 打开android_server后,它会默认在手机端监听23946端口。...

在脱壳的时候经常见到在dvmDexFileOpenPartial这个函数下断点,但是为什么要在这里下断点呢,这篇文件就从源码的角度跟踪一下Dex的加载流程。 源码可以在这里查看:/dalvik/dexopt/OptMain.cpp OptMain中的main函数就是加载dex的最原始入口,是用c代码写成的native函数: int main(int argc, char* const argv[]) { set_process_name("dexo...

Linux Kernel课第二次作业。 burningcodes  原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.什么是内核 计算机其实是由一堆硬件组装成的机器,计算机结构大致如下: Linux内核其实就是专门与硬件打交道的,它向下能与硬件交互,向上提供了系统调用接口,是连接应用和底层硬件必不可少的部分。我们平时使用的Linux操...

在上篇文章中(回顾点这)介绍了混淆的基本原理,但是那种方法实现的混淆Dex在安装的时候会报错: INSTALL_FAILED_DEXOPT 1 INSTALL_FAILED_DEXOPT 经过一段时间研究后在源码(/dalvik/libdex/DexSwapVerify.cpp)中找到答案: 在加载dex...

1.Dex混淆原理 Dex文件中以类为核心,方法字段等数据都需要归属于某个类,所以在混淆时主要针对3类数据: 类名 类中的方法名 类中的字段名 为了更好的理解Dex文件中的类,先让我们看看类数据之间的关系图: 对于每个类而言,都有一个class_def_item结构体,其中class_idx指明了这个类的类名,superclass_idx指明了这个类的父类,在这个class_def_item结构体中最重要的就是class_dat...

Linux内核课第一周作业。本文在ubuntu14的环境下进行实验 burningcodes 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.AT&T与Intel汇编 linux下gcc采用的是AT&T的汇编格式,而windows下都是采用Intel汇编格式,他们之间的差别主要如下: 寄存器命名: AT&T中寄存器名字前带%,如%eax,而inte...

+
跳转到评论