有人说加固会明显拖慢启动速度,同时造成运行卡顿,严重降低用户体验,而且加固是完全可以脱壳的,只需要pc配合进行断点调试就能抓到解密后的dex文件,加固并没有所说的那么安全。 但是为什么还有一大批开发者喜欢加固apk呢? 因为工信部对移动App应用安全过检要求日益增多,不加固大都达不到工信部的要求,同时开发者加固App大都是为了防止以下10个检测项出现问题,影响App上架。&nb            
                
         
            
            
            
            Mybatis执行流程加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-24 14:47:36
                            
                                82阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在实际环境中实现 IOC 容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来;另一类是依赖注入,Spring 主要使用的是依赖注入。一般,依赖注入可以分为三种方式:构造器注入setter 注入接口注入构造器注入和 setter 注入是主要的方式,而接口注入是从别的地方注入的方式,例如web工程中配置的数据源是通过服务器配置的,可以通过 JNDI 的形式通过接口将            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-18 07:52:24
                            
                                45阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1、IOC概念理解IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖,由spring来负责控制对象的生命周期和对象间的关系。  DI(Dependency Injection)即“依赖注            
                
         
            
            
            
             前面深入学习了古河的Libinject注入Android进程,下面来 深入学习一下作者ariesjzj的博文《Android中的so注入(inject)和挂钩(hook) - For both x86 and arm》,注入的思路和古河的是一样的,但是代码的兼容性更好更好理解,适用于arm和x86模式下so注入和函数的Hook,这份代码自己也测试了一下,确实可以Hook目标函数成功,只            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-30 14:26:54
                            
                                139阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            -0x1:20180927更新:1.更新了0x5 part的源码,之前的源码链接不知何时失效了,(别问了,懒,笨,还不上进,不知道啥是git)2.解决了某些机型,在mprotect的时候由于权限不够而导致的失败。就是在声明的时候把结构体声明到.text段就好了,具体如下3.emmm...另外这个源码的下载不知道啥时候又会失效,有缘再见...0x0前言现在很多安全插件,都会用本地文件和系统的内存进行            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-29 10:05:40
                            
                                148阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            So注入工具TsoInject开发文档导语:作为一个软件安全从业者而言,我们需要对某个App的关键函数就行Hook, 对于android而言,Smali层我们使用Xposed Hook框架,So层我们可以使用Cydia Substrate框架, Smali 层的Hook由于Xposed做的很好了, 但是关于Cydia Substrate对So的Hook使用期来很不好用,Cydia Substrat            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-08 11:59:09
                            
                                177阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Dagger 2.10 新增了 Android Support 和 Android Compiler 两大模块。对我们来说,本次改动非常之大,所有 Android 开发者都应尽早尝试使用这个新的 Android 依赖注入框架。在我开始介绍新的 AndroidInjector 类以及 Dagger 2.11 库之前,如果你对 Dagger 2 还不熟悉甚至之前根本没用过,那我强烈建议你先去看看 Da            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-22 18:04:40
                            
                                160阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、前言从这篇開始咋们開始一个全新的静态方式逆向工具icodetools的实现过程。这个也是我自己第一次写的个人认为比較实用的小工具,特别是在静态方式逆向apk找关键点的时候。兴许会分为三篇来具体介绍这个工具实现:第一篇:开凿篇,简介实现原理以及简单的初次方案实现简单的apk注入代码功能第二篇:填坑篇。这一篇是在前一篇的基础上对工具的优化,能够应对市面上大部分的apk代码注入功能实现第三篇:生产篇            
                
         
            
            
            
            2.3 Yang Okhttp 拦截器思路讲解接下来我们分析Yang大佬的Frida实现okhttp3.Interceptor[1]。代码完整如下,建议使用该份代码测试:function hook_okhttp3() {
    // 1. frida Hook java层的代码必须包裹在Java.perform中,Java.perform会将Hook Java相关API准备就绪。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-10 14:11:15
                            
                                111阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在上一篇博客中我尝试解释了 dagger-android 注入。收到了一些评论,有的人说太复杂了没必要 为了使用新特性去升级。我想到会发生这种情况,但我还是觉得有必要去解释dagger在幕后所做的工作。在阅读这篇博客之前 我强烈建议先阅读第一篇博客。本文中我会使用 **_@ContributesAndroidInjector_** 注解来简化上篇博客中的代码。我们通过下面的图片来回忆第一篇博客中            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-15 17:19:04
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            X60加固分为前期反调试和后期反调试,前期反调试是保护释放到内存含有native化函数的dex文件和解析器so【含加密的解析器so和解密函数】。前期反调试的位置在jniOnload下的反调试函数case31中的 BLX LR下断,就可以得到各个反调试的位置。 要得到内存的dex,在过完前期反调试后,直接F9再,Ctrl+S,从下往上搜索就能找到dex035,用脚本dump下来就行。 加密解析器so            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-28 13:46:58
                            
                                203阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            android平台的so注入技术LD_PRELOAD注入LD_PRELOAD是linux的系统环境变量,因为android基于linux内核所以此环境变量依然存在。当linker初始化时会获取首先获取LD_PRELOAD指向的so库然后再获取elf文件的其他依赖库,所以LD_PRELOAD指向的so库是最先加载的。linker在对elf可执行文件进行重定位时会根据so库的加载顺序去寻找导出函数,所            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-08 11:22:53
                            
                                337阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            大概流程图AbstractBeanFactoryif (mbd.isSingleton()) { //是否单例 注意下面是否先执行()-> 代码 也就是ObjectFactorysharedInstance = getSingleton(beanName, () -> { //单例情况下  这里会把单例实例放到一级缓存 先调用getSingleton 然后调用createBean					   try {							return createBean(beanName,             
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-25 09:27:19
                            
                                124阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring启动源码之SpringApplication构造器 Spring boot项目的启动类中的main方法如下:public static void main(String[] args) {
        SpringApplication.run(SspWebApplication.class, args);
    }ctrl + 鼠标左键点击查看run方法:public stat            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-23 22:44:57
                            
                                36阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前面两篇android hook 框架 libinject2 简介、编译、运行android hook 框架 libinject2 如何实现so注入  实际运行并分析了 Android中的so注入(inject)和挂钩(hook) - For both x86 and arm 这个博客给出了 libinject 改进版的代码。 今天分析一下古河大神            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-30 23:28:19
                            
                                348阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            0x01应用在Android中运行,从外部对该进程可以进行任意SO文件动态注入,就是应用动态运行我们的SO文件0x02基本的逻辑是:1.    获取目标进程的pid,关联目标进程:通过遍历查找/proc/pid/cmdline文件中是否含有目标进程名process_name,若有则进程名对应的进程号即为pid。接着,直接调用函数ptrace_attach(pid)即可完成关联。            
                
         
            
            
            
            反射类类型Class的使用类类型Class的实例获取方式有一下三种public static void main(String[] arg0) {
        String result = "Hello ReflectionText..";
        System.out.println(result);
        Class userClass1 = User.class;
            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-19 18:29:12
                            
                                23阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            关于Smali注入大家应该了解过,网上有不少教程。那些注入代码看上去简单,实际用起来得花不少功夫。 
普通的注入就是在软件源代码中添加几行代码,用于改变软件的功能,或查看某个寄存器在运行中具体的值。 
需要注意的地方是:添加的注入代码所使用的寄存器不影响其他代码的执行。当注入代码较多时,这个要求就变得很困难了。 
在这里我的解决办法是:把注入代码写进自己专属的crack.smali,然后在要注入的            
                
         
            
            
            
            luject是一个静态注入动态库的工具,它可以实现对mac, ios, linux, windows的可执行程序,动态库程序进行修改,来插入指定动态库实现注入和加载。另外luject也实现了对ios的ipa包,android的apk包自己macOS的.app包的动态库注入,重打包和重签名支持。注入技术简介我们可以通过ptrace附加或启动一个程序,然后将指定的动态库注入进去,但很多情况下需要roo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-04 19:03:45
                            
                                235阅读