逆向
文章平均质量分 95
kernweak
日子越来越有判头了
展开
-
Xpose学习笔记
Xpose原理控制zygote进程,通过替换/system/bin/app_precess程序控制zygote进程,使它在系统启动过程中加载Xposed framework的一个jar文件即XposedBridge.jar,从而完成对Zygote进程及创建的Dalvik/ART虚拟机的劫持,并且能够允许开发者独立替代任何class,例如framework本身,系统UI或者随意一个app。控制程序两种方式,通过attach之后ptrace调试器,通过定制rom。Xpose安装Android5.0以后:原创 2021-06-04 14:58:38 · 1857 阅读 · 0 评论 -
《Android软件安全权威指南》原生程序文件格式 阅读笔记
原生程序开发JNIJNI方法都在jni.h中定义(JNINativeInterface),该结构体中保存的是一些列JNI方法的指针,第一个参数为JNIEnv结构体指令,该指令的第一个参数就是一个名为funiction的JNINativeInterface。JNI编程中,所有Java层数据类型都可以用jvalue表示,定义如下:除了jobject,其他所有类型都在原生程序中有对应数据类型。jobject在JNI的实现被定义为C++类,有多个子类,,分类包含jstring,jthrowable原创 2020-09-09 00:35:13 · 306 阅读 · 0 评论 -
《ida主流插件使用》(2)windows下stack_strings插件使用
FireEye公司发布了一些逆向插件,即stack_strings插件,该插件是栈字符串识别插件,可以自动识别栈上局部变量为字符串的插件,字符串形式如下,并自动的加上注释。项目主页地址: https://github.com/fireeye/flare-ida 该项目有4个插件 本文介绍 stack_strings插件首先项目使用了vivisect模块,所以在使用该插件之前需要...原创 2020-04-12 21:57:45 · 735 阅读 · 0 评论 -
ShellServiceObjectDelayLoad注册表键值作用
ShellServiceObjectDelayLoadShellServiceObjectDelayLoad是一个未公布的注册表项,可以将组件关联到这个键,这样一来,系统启动时间EXPLORER将自动加载目标组件.这就是某些病毒将自己注射到EXPLORER的办法.我们经常会遇到这样的事情,IeXPLORER的首页设置为BLANK,注册表RUN键的值也为空,但就是每隔一会儿有莫名其妙的网页自动...原创 2020-04-02 23:37:12 · 614 阅读 · 0 评论 -
OD调试多线程
首先记得关闭strongOD那些跳过一些异常然后在线程出下断,比如我这里是10008620然后在OD,设置优先为空闲然后F8或者F9就到线程回调了除此之外,还可以不改优先级别,按着别人博客介绍如下:一般是下面跟有Sleep函数或者是WaitForSingleObject函数,有时候却没有遇见这样的函数,一直在主进程囧....所以我一般手动修改它下面接着的代码...原创 2020-04-02 01:17:53 · 1166 阅读 · 0 评论 -
《ida主流插件使用》(1)windows下labeless插件使用
以下介绍是github官方介绍的机翻Labeless是一个多用途的IDA Pro插件系统,用于标签/注释与调试器后端同步,具有复杂的内存转储和交互式Python脚本功能。剩下详细介绍可以去github看。如果要同时使用x86和x86_64目标,则应对每个python发行版执行以下步骤。设置Python 2.7(x86 / x86_64) 将deploy目录复制到要在其中使用调试器...原创 2020-03-31 18:28:37 · 1160 阅读 · 0 评论 -
关于IDA远程调试linux的elf文件
前几天遇到一个问题在分析代码时,样本是替换了Linux的命令文件,然后想要远程调试虚拟机上的elf样本,开始是用的Remote Linux debugger方式,结果attach时候报错:The debugger could not attach to the selected process.This can perhaps indicate the process was just t...原创 2020-01-06 10:44:12 · 1177 阅读 · 0 评论 -
IDC脚本编写demo
为了自动到被调试点,不用每次手动跟过去,所以使用脚本,下面是使用例子,以后的改改就好// @file oci_test_on_vs2010.idc// @brief debug for oci_test_on_vs2010.exe#include <idc.idc>#define PROG_FOR_DEBUG "oci_test_on_vs2010.exe"#defi...原创 2019-11-25 13:30:05 · 862 阅读 · 0 评论 -
linux的errno返回值含义
逆向linux样本遇到一个函数linux中关于errno1)errno是一个整型变量,当系统调用和一些库函数发生错误时会通过设置errno的值来告诉调用者出了什么问题。2)errno的有效值都是非零的。(这个manpage有个悖论,第二段中说,errno从来不能被设为0,而在第三段又说有些接口会将其设置为0)3)errno在ISO C标准中定义的,它可能是一个宏并且不能被显示声明(...原创 2019-11-12 13:24:31 · 2961 阅读 · 0 评论 -
.sig文件制作
找到xxx.lib,然后在IDA目录找到flair68.zip(我这里是ida6.8)然后第一步:使用pcf生成对应静态库的pat文件pcf 文件名 生成的文件名.pat第二步:使用sigmake,将pat文件转为sig文件sigmake pat文件 生成的sig文件.sig将exc文件中的前4行删除再次执行命令sigmake pat文件 生成的sig文件.s...原创 2019-08-29 16:07:15 · 2533 阅读 · 0 评论 -
病毒分析常用软件
Process Explorer进程浏览器,可以使用验证Dependency Walker探索动态链接函数RegShot 注册表比较工具ApateDNS 查看恶意代码发出DNS请求。Netcat进行网络监控Wireshark 抓包INetSim 基于linux模拟常见的网络服务软件Process Explorer 可以看加载的dll还有handleProcess M...原创 2019-08-20 16:35:16 · 1904 阅读 · 0 评论 -
多种反调试手段学习代码
参考链接https://blog.csdn.net/qq_32400847/article/details/52798050// Tencent2016D.cpp : 定义 DLL 应用程序的导出函数。//#include "stdafx.h"#include <iostream>#include <windows.h>#include <Tlhel...原创 2019-07-26 22:43:24 · 451 阅读 · 0 评论 -
虚拟机检测
下面资料比较老了,记录下只为增加下了解虚拟机后门检测(IN)__try{ __asm { push edx push ecx push ebx mov eax, 'VMXh' mov ebx, 0 // 将ebx设置为非幻数’VMXH’的其它值 mov ecx, 10 // 指定功能号,用于获取VMWare版本,当它为x14时...原创 2019-06-29 17:45:53 · 5144 阅读 · 0 评论 -
SSDT—Hook和MDL
SSDT HOOK首先要明白SSDTHOOK就是自己再写一份函数,替换了SSDT表中的地址替换掉SystemServiceTable系统服务表如何访问系统服务表呢?SSDT 的全称是 System Services Descriptor Table,系统服务描述符表下面这个是个全局变量kd> dd KeServiceDescriptorTable(SSDT)这个导出...原创 2019-05-02 10:40:26 · 497 阅读 · 0 评论 -
系统调用笔记(1)
API函数的调用过程(3环部分)Windows APIApplication Programming Interface,简称 API 函数。 Windows有多少个API? 主要是存放在 C:\WINDOWS\system32 下面所有的dll,dll里面函数都是API 几个重要的DLL Kernel32.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等...原创 2019-04-29 23:55:21 · 1443 阅读 · 0 评论 -
系统调用笔记(2)
API函数的调用过程(SystemServiceTable)在上中,讲到进0环后,3环的各种寄存器都会保留到_Trap_Frame结构体中,这篇我讲解如何根据系统服务号(eax中存储)找到要执行的内核函数?调用时参数是存储到3环的堆栈,如何传递给内核函数?SystemServiceTable 系统服务表系统服务表ServiceTable存了系统服务表里函数地址表(4字...原创 2019-04-29 23:57:37 · 565 阅读 · 0 评论 -
反调试核反反调试
反调试1.DebugPort2.KdDisableDebugger,禁用内核调试3.IsDebuggerPresent和CheckRemoteDebuggerPresent,应用层,定时调用这个查看4.hookHook系统中一些与调试相关的函数,防止被各种调试器调试。NtOpenThread()防止调试器在程序内部创建线程NtOpenProcess()防止)调试工具在进...原创 2019-05-23 18:14:32 · 458 阅读 · 0 评论 -
SSDT HOOK的代码段
单核x86下//保存5字节代码的结构#pragma pack(1)typedef struct _TOP5CODE{ UCHAR instruction; //指令 ULONG address; //地址}TOP5CODE,*PTOP5CODE;#pragma pack( ) //ssdt表结构typedef struct _ServiceDescrip...原创 2019-05-23 17:50:35 · 165 阅读 · 0 评论 -
花指令,LLVM简介
花指令就是无用或者垃圾指令,故意干扰反汇编静态分析工具,比如jmp Label1db opcodeLabel1;运行会跳到Label1,但是静态分析工具看到opcode会把后面当作机器码的操作数。或者jz Labeljnz labeldb opcodelabel反汇编引擎不够智能看到jz,jnz往下执行,所以错误。或者可以跳转到寄存器里。OLLV...原创 2019-05-23 18:14:11 · 1127 阅读 · 0 评论 -
smali语法复习
特点Smali汇编指令特点:参数操作从目标到源的顺序(类似x86汇编)根据字节码的类型和大小,添加后缀消除歧义64位常规字节码添加-wide特殊字节码添加具体类型基于寄存器操作,不存在传统汇编的栈操作,没有pop,push每个寄存器均为32位,64位数据类型用连续两个寄存器存储表示基本类型V void (只能用于返回值类型)Z booleanB byteS sho...原创 2019-06-19 00:22:07 · 1119 阅读 · 0 评论 -
APK调试
源码的情况下,对APK的动态调试主要分为两种:smali汇编动态调试arm汇编动态调试Smali汇编动态调试对smali汇编的动态调试主要分为两种:使用ida进行调试使用IDE + apktool进行调试Eclipse + apktoolAndroid studio + apktoolIdea + apktool…使用jeb2.2以后版本调试IDA 调试smali...原创 2019-06-22 18:08:31 · 6270 阅读 · 0 评论 -
Android的java的native hook
由于linux操作系统驱动模块加载机制的限制和release版的rom通常未开启模块加载机制,使得我们不能像Windows操作系统编译驱动,在R0层做驱动监控和对抗。Hook的目标就从内核层转到了应用层。Android平台由于分层特点,可将hook分为两种:Java层hook,通过注入一个dex文件,hook java函数Native层hook so注入,hook c函数HOOK函数分三步...原创 2019-06-27 02:34:11 · 1162 阅读 · 0 评论 -
windows脱壳复习
UPX壳使用upX压缩之后对比入下现在使用OD脱压缩壳注意配置OD的UDD路径,还有异常选项别忘设置然后用OD在入我们前面加壳的程序。断在0x01014240然而原来的入口0100739D 0000 add byte ptr ds:[eax],al0100739F 0000 ...原创 2019-11-07 10:31:08 · 1815 阅读 · 0 评论 -
程序二进制特征
常用程序的特征1.BC++2Delphi3易语言4VB3VC++分析BC++程序特征OPE特征 EB 10 Fb c++hook 二进制特征:EB 10 66 62 3A 43 2B 2B 48 4F 4F 4B 90第一个CALL内有API调用 GetMouduleHandleA分析Delphi程序特征OPE特征 5...原创 2018-09-05 10:59:09 · 1322 阅读 · 0 评论