<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[suningning的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/suningning</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; suningning]]></copyright><item><title><![CDATA[一个soot带来的java.lang.IncompatibleClassChangeError]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/103809068</link><guid>https://blog.youkuaiyun.com/suningning/article/details/103809068</guid><author>suningning</author><pubDate>Thu, 02 Jan 2020 18:37:58 +0800</pubDate><description><![CDATA[最近基于soot在做一些中间变换，在处理一个APK后报了一个IncompatibleClassChangeError，这种错误通常是编译时类路径与运行时类路径不同导致，但是我原始的APK可以正常运行，但是经过soot处理后的APK不能正常运行，因此怀疑是某些类被改变了。下面是该APK的源码（修改自Android cts部分源码）：


public class MethodTest {

...]]></description><category></category></item><item><title><![CDATA[我的LLVM学习笔记——OLLVM混淆研究之BCF篇]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/103307501</link><guid>https://blog.youkuaiyun.com/suningning/article/details/103307501</guid><author>suningning</author><pubDate>Fri, 29 Nov 2019 17:53:12 +0800</pubDate><description><![CDATA[因为要做代码保护，所以抽时间研究了下OLLVM中的三种保护方案：BCF（Bogus Control Flow，中文名虚假控制流）、FLA（Control Flow Flattening，中文名控制流平坦化）、SUB（Instructions Substitution，中文名指令替换），本文是BCF介绍篇。

1，查看BCF的头文件，暴露给外界的两个函数如下：


// Namespace
name...]]></description><category></category></item><item><title><![CDATA[我的LLVM学习笔记——OLLVM混淆研究之FLA篇]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/102607789</link><guid>https://blog.youkuaiyun.com/suningning/article/details/102607789</guid><author>suningning</author><pubDate>Thu, 17 Oct 2019 18:55:02 +0800</pubDate><description><![CDATA[因为要做代码保护，所以抽时间研究了下OLLVM中的三种保护方案：BCF（Bogus Control Flow，中文名虚假控制流）、FLA（Control Flow Flattening，中文名控制流平坦化）、SUB（Instructions Substitution，中文名指令替换），本文是FLA介绍篇。



1，查看头文件llvm/Transforms/Obfuscation/Flatte...]]></description><category></category></item><item><title><![CDATA[我的LLVM学习笔记——编写LLVM demo]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/101207679</link><guid>https://blog.youkuaiyun.com/suningning/article/details/101207679</guid><author>suningning</author><pubDate>Mon, 23 Sep 2019 15:26:23 +0800</pubDate><description><![CDATA[一、安装LLVM



二、使用CLion创建demo工程

main.cpp代码如下：



#include "llvm/IR/Verifier.h"
#include "llvm/ExecutionEngine/GenericValue.h"
#include "llvm/ExecutionEngine/Interpreter.h"
#include "llvm/IR/Constants....]]></description><category></category></item><item><title><![CDATA[dump localReference 表]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/82591195</link><guid>https://blog.youkuaiyun.com/suningning/article/details/82591195</guid><author>suningning</author><pubDate>Mon, 10 Sep 2018 16:05:35 +0800</pubDate><description><![CDATA[先记录一下，后面补充


    //test
    LOGI(&quot;dump localReference&quot;);
    jclass vm_class = (*env)-&amp;gt;FindClass(env, &quot;dalvik/system/VMDebug&quot;);
    jmethodID dump_mid = (*env)-&amp;gt;GetStaticMethodID(env, vm_class, ...]]></description><category></category></item><item><title><![CDATA[Apache Maven 入门篇(下)]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/77750525</link><guid>https://blog.youkuaiyun.com/suningning/article/details/77750525</guid><author>suningning</author><pubDate>Thu, 31 Aug 2017 17:52:53 +0800</pubDate><description><![CDATA[转载自http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html

作者：George Ma
第一篇文章大概的介绍了一下Apache Maven以及它的下载和安装，并且运行了一个简单的示例。那么在对maven有了一点接触后，接下去的一步是要了解maven的]]></description><category></category></item><item><title><![CDATA[Apache Maven 入门篇 ( 上 )]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/77750486</link><guid>https://blog.youkuaiyun.com/suningning/article/details/77750486</guid><author>suningning</author><pubDate>Thu, 31 Aug 2017 17:50:33 +0800</pubDate><description><![CDATA[转载自http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html



作者：George Ma
写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解，所以就有了这个想法。
这个入门篇分上下两篇。本]]></description><category></category></item><item><title><![CDATA[android8.0编译记录]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/77552962</link><guid>https://blog.youkuaiyun.com/suningning/article/details/77552962</guid><author>suningning</author><pubDate>Fri, 25 Aug 2017 14:31:01 +0800</pubDate><description><![CDATA[Android8.0的正式版在8月21日正式发布，我打算亲自动手编一个可以跑在nexus 6p上的rom测试一下，下面是编译过程中的一些记录


一、]]></description><category></category></item><item><title><![CDATA[NDK编译——Android NDK 原生 API]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510595</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510595</guid><author>suningning</author><pubDate>Thu, 06 Jul 2017 00:08:42 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/stable_apis.html





Android NDK 原生 API







本页内容

概览主要的原生 API 更新

Android API 级别 3Android API 级]]></description><category></category></item><item><title><![CDATA[NDK编译——C++ 库支持]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510591</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510591</guid><author>suningning</author><pubDate>Thu, 06 Jul 2017 00:07:01 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/cpp-support.html





C++ 库支持







本页内容

帮助程序运行时运行时特性重要注意事项授权


Android 平台提供很小的 C++ 运行时支持库 (libs]]></description><category></category></item><item><title><![CDATA[NDK编译——使用预构建库]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510589</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510589</guid><author>suningning</author><pubDate>Thu, 06 Jul 2017 00:05:21 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/prebuilts.html





使用预构建库







本页内容

声明预构建库从其他模块引用预构建库调试预构建库为预构建库选择 ABI


NDK 支持使用预构建库，静态库和共享库均]]></description><category></category></item><item><title><![CDATA[NDK编译——x86 支持]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510575</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510575</guid><author>suningning</author><pubDate>Thu, 06 Jul 2017 00:03:53 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/x86.html





x86 支持







本页内容

概览ARM NEON 内联函数支持独立工具链兼容性


NDK 引入对 x86 ABI 的支持，其允许原生代码在 CPU 可支持]]></description><category></category></item><item><title><![CDATA[NDK编译——NEON支持]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510542</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510542</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:59:16 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/cpu-arm-neon.html





NEON 支持







本页内容

使用 LOCAL_ARM_NEON使用 .neon 后缀构建要求运行时检测示例代码


NDK 支持 ARM]]></description><category></category></item><item><title><![CDATA[NDK编译——ABI管理]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510386</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510386</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:55:09 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/abis.html





ABI 管理







本页内容

支持的 ABI为特定 ABI 生成代码Android 平台上的 ABI 管理


不同 Android 手机使用不同的 CPU]]></description><category></category></item><item><title><![CDATA[NDK编译——独立工具链]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74510125</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74510125</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:51:20 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/standalone_toolchain.html





独立工具链







本页内容

选择您的工具链选择您的 Sysroot调用编译器使用 ClangABI 兼容性警告和限制


您]]></description><category></category></item><item><title><![CDATA[NDK编译——CMake]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74509894</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74509894</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:49:29 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/cmake.html



CMake





On this page

Using CMake variables in GradleUnderstanding the CMake build comma]]></description><category></category></item><item><title><![CDATA[NDK编译——ndk-build]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74509637</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74509637</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:46:39 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/ndk-build.html





ndk-build







本页内容

内部构建从命令行调用64 位和 32 位工具链要求


ndk-build 文件是 Android NDK r]]></description><category></category></item><item><title><![CDATA[NDK编译——概念]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74509407</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74509407</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:44:32 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/concepts.html





概念







本页内容

开始之前简介工作方式原生 Activity 和应用


开始之前

本指南假设您已熟悉原生编程 Android 开发内在的]]></description><category></category></item><item><title><![CDATA[NDK编译——Application.mk]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74509053</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74509053</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:40:54 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/application_mk.html


Application.mk







本页内容

概览变量


本文档介绍 Application.mk 构建文件，此文件用于描述应用需要的原生模块。 ]]></description><category></category></item><item><title><![CDATA[NDK编译——Android.mk]]></title><link>https://blog.youkuaiyun.com/suningning/article/details/74508629</link><guid>https://blog.youkuaiyun.com/suningning/article/details/74508629</guid><author>suningning</author><pubDate>Wed, 05 Jul 2017 23:38:10 +0800</pubDate><description><![CDATA[文章的内容是从Android开发者官网扒的，为了防止再登不上去，记录一下。官网网址：https://developer.android.com/ndk/guides/android_mk.html



Android.mk







本页内容

概览基础知识变量和宏模块描述变量


本页介绍用于将 C 和 C++ 源文件粘合至 Android NDK 的 A]]></description><category></category></item></channel></rss>