软件逆向
文章平均质量分 67
大雄_RE
一个热爱逆向,喜爱学习、分享的猿。
展开
-
jadx动态调试安卓apk
选用某ctf题目的apk作为调试模板。工具:雷电模拟器jadx1.3.2步骤:1、在雷电模拟器安装apk:2、在jadx打开apk:3、检查模拟器的adb服务状态:必须确保模拟器里的adb服务启动,且状态正常,不然后续调试无法进行。adb服务出现问题,可根据错误提示搜索解决方法,这里就不一一举例了。4、在jadx中选择要调试的进程打开jadx的调试进程选择窗口:找到要调试的apk对应的进程并双击:双击后,会自动进入调试.原创 2022-05-26 13:29:59 · 10483 阅读 · 11 评论 -
Go逆向_解析创建的类型
逆向分析Go语言生成的可执行程序时,会发现创建对象的代码类似下面这样:Go语言通过调用runtime_newobject函数创建对象,并通过参数描述创建什么对象。在这个样例中,这个参数保存在rax寄存器中,值是地址0x4C4CA0。我们最想知道的是到底创建的是什么对象,但是从这个地址处的内容并不能直接获得有用的信息:在Go源码中该参数的类型为 rtype。type rtype struct { size uintptr ptrdata uintptr // n原创 2021-11-06 10:48:18 · 764 阅读 · 0 评论 -
liteide+g:Goland多版本管理
liteideLiteIDE 是一款简单,开源,跨平台的 Go IDE。LiteIDE X使用很广,这篇文章重点不是介绍这个,就一笔带过了。gg是一个 Linux、macOS、Windows 下的命令行工具,可以提供一个便捷的多版本 go 环境的管理和切换。GitHub主页:GitHub - voidint/g: Golang Version Manager下载地址:https://github.com/voidint/g/releases我使用的是windows版本..原创 2022-04-24 15:57:35 · 740 阅读 · 0 评论 -
AVD创建的模拟器无法使用物理键盘的问题
AVD(Android Virtual Device)创建的模拟器默认情况下是无法使用物理键盘的,只能通过鼠标点击模拟器里的键盘进行输入:这种方式效率比较低,输入各种符号尤其麻烦。其实AVD创建的模拟器是支持物理键盘输入的,只需要修改模拟器的一个设置即可。首先,在AVD Manager选中模拟器,并点击旁边的“Edit”:然后勾选“Hardware keyboard present”即可:勾选之后,看看模拟器中能否使用物理键盘了。如果还不行,重启一下模拟器就可以了。...原创 2022-03-28 14:10:00 · 2960 阅读 · 0 评论 -
dump文件导入表修复工具——Imports Fixer
最近在学习VMP脱壳,用到了该工具,记录分享一下。功能:根据进程的导入表,在该进程的dump文件中分配一块空间,在文件中创建导入表。下载:非开源很多地方可以下载到,这里分享一个csdn下载地址:https://download.csdn.net/download/shadow20080578/85012603使用前提:1、导入表被修复好的进程2、导入表没有被修复好的dump文件使用方法:打开主界面1、在主界面上面选中导入表被修复好的进程2、主界原创 2022-03-21 13:57:31 · 1059 阅读 · 0 评论 -
amcache.hve及包含的文件SHA1值分析
amcache.hveWin8及更高版本的系统使用Amcache.hve替代RecentFileCache.bcf。记录文件创建时间、上次修改时间、SHA1和一些PE文件头信息。原创 2022-03-14 20:59:16 · 2682 阅读 · 0 评论 -
进程导入表修复工具——Universal Import Fixer
下载非开源,下载UniversalImportFixer(UIF)v1.2FINAL-系统安全文档类资源-CSDN下载使用前提:需要先修复进程内的API调用,如:vmp保护的进程,API调用都会变成对vmp函数的调用,需要先将它们修复成对真实API函数的调用。需要管理员权限打开。功能:根据代码段调用的API函数,对内存中进程的导入表相关结构进行修复。使用方法:打开主界面:填入进程ID,代码段的起始位置,代码段后面段的起始位置(代码段结束位置+1)新..原创 2022-03-09 10:02:22 · 3745 阅读 · 0 评论 -
IDA密码算法自动化识别插件、脚本汇总
在逆向过程中,自动识别文件中存在的密码算法。原理上只有两条路1、密码算法中的常量特征(常数、s盒等);2、特定加密库的独有特征(字符串、指令流等)。现有工具特点:1、大多都是根据密码算法的常量特征进行识别,很少包含特定加密库的特征。2、都是以反汇编工具(IDA/Ghidra)的插件、脚本形式存在。3、都是基于静态分析,也就是只能识别静态特征。如果特征在运行时动态生成,则无能为力。findcrypt系列FindCrypt和FindCrypt2最初的基础,2006年hex原创 2022-03-08 10:02:34 · 4693 阅读 · 0 评论 -
VS编译器C/C++函数编译后的名字修饰
函数的名字修饰(Decorated Name)就是编译器在编译期间创建的一个字符串,用来指明函数的定义或原型。目的是方便编译过程中,链接器等中间过程识别不同的函数,尤其是在引入重载后,识别函数不能只看函数名,要结合参数、返回值类型来识别。C和C++程序的函数在内部使用不同的名字修饰方式,下面将分别介绍。C函数名修饰C不存在函数重载,主要需要在函数修饰中体现出函数的调用约定:__stdcall:函数名前加上一个下划线前缀,函数名后面加上一个“@”符号和其参数的字节数,例如_functionna原创 2022-02-27 09:37:39 · 1298 阅读 · 0 评论 -
lib静态库逆向分析
当我们要分析一个lib库里的代码时,首先需要判断这是一个静态库还是一个导入库。库类型判断lib文件其实是一个压缩文件。我们可以直接使用7z打开lib文件,以查看里面的内容。如果里面的内容是obj文件,表明是静态库。如果里面的内容是dll文件,表明是导入库。导入库里面是不包含代码的,代码包含在对应的dll文件中。从lib中提取obj静态库是一个或者多个obj文件的打包,这里有两个方法从中提取obj:Microsoft 库管理器 7z解压Microsoft 库管理器(li原创 2022-02-24 08:51:17 · 5197 阅读 · 1 评论 -
Android逆向----资源ID还原字符串
使用dex2jar将apk里的dex反编译为jar之后,然后使用jd-gui阅读反编译后的代码是逆向apk的常规操作。但在jar包里的java代码中,字符串资源都是以ID的形式存在的,如:this.c.getString(2131034120)分析这些ID对应的到底是什么字符串,对于我们快速了解这个程序很有帮助。找到ID对应的字符串要分两步进行: 找到ID对应的资源名 找到资源名对应的字符串 根据ID找资源名根据jar包中是否包含R.class类,这个过程分为两类。原创 2022-02-15 09:43:48 · 2866 阅读 · 0 评论 -
NativeActivity开发APP原理
原理我们可以用Java开发app,或者结合使用Java和C|C++开发app,NativeActivity则为单独使用C|C++开发app提供支持。从开发者的角度看,我们是在单独用C++开发app,但从底层看还是离不开Java。在android源码中,已经使用java开发好了一个中间类,我们使用C++开发的Native库之所以能运行,就是因为被这个中间类使用JNI的方式调用了。这个中间类就是NativeActivity类。NativeActivity类NativeActivity本质原创 2022-02-10 14:08:31 · 3055 阅读 · 0 评论 -
Intel指令手册符号意义
近日需要自己构造几条指令,查Intel手册,发现在讲解指令的部分有许多符号不知什么意义。特整理如下,对于直接查看某条指令的解释,而没时间去从头看指令手册的人也许有点帮助。原创 2014-12-07 14:45:39 · 1016 阅读 · 0 评论 -
64位系统下的IDTR与IDT表项
已有许多资料介绍32位系统下的IDTR内容与IDT表项格式,本文专门对64位(IA-32e模式)下IDTR的内容和IDT表项格式进行介绍。原创 2015-05-08 18:41:43 · 4133 阅读 · 4 评论 -
64-ia-32-architectures-software-developer-manual第二卷2.2节
之前有人翻译了第二卷2.1节,2.1节讲的是32位指令编码方式。2.2节讲64位模式指令编码方式的不同。翻译 2014-12-05 20:35:56 · 916 阅读 · 0 评论 -
DarunGrim4安装使用说明
DarunGrim4安装使用说明原创 2016-01-15 08:53:54 · 1054 阅读 · 0 评论 -
DarunGrim2安装使用说明
二进制比较工具DarunGrim的安装使用方法。原创 2016-01-13 17:40:08 · 1036 阅读 · 0 评论 -
DarunGrim3安装使用说明
二进制文件比较工具DarunGrim3.11版安装使用说明,带下载链接。原创 2016-01-14 17:17:29 · 1119 阅读 · 1 评论 -
Intel指令手册中的各种符号意义
近日需要自己构造几条指令,查Intel手册,发现在讲解指令的部分有许多符号不知什么意义。特整理如下,对于直接查看某条指令的解释,而没时间去从头看指令手册的人也许有点帮助。原创 2021-10-14 21:53:21 · 849 阅读 · 0 评论 -
反调试——IsDebuggerPresent
IsDebuggerPresent查询进程环境块(PEB)中的IsDebugged标志。如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。直接调用实现:BOOL CheckDebug() { return IsDebuggerPresent(); } 看到过的一种函数动态调用实现:BOOL CheckDebug() { HANDLE hKernel32 = NULL; DWORD d原创 2021-10-14 21:47:54 · 614 阅读 · 0 评论