首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

恶意代码分析实战总结

TLS回调,在进入PE头指定入口之前运行恶意程序 IDA中按Ctrl+E组合键看到二进制入口点,该组合键作用是显示应用程序所有的入口点 使用异常 插入中断 利用调试器漏洞,OllydDbg1.1...int 3断点:将断点指令替换成CC,会导致一个异常,调试器捕捉这个异常从而停在断点处,然后将断点指令恢复到原来指令。...硬件断点:使用四个调试寄存器(DR0,DR1,DR2,DR3)来设定地址,用DR7设定状态,执行到光标所在处(F4)也是利用调试寄存器原理,相当于一次性硬件断点 内存断点:对所设地址设为不可访问/不可写属性...,这样当访问/写入时候就会产生异常,Ollydbg截获异常后比较异常地址是不是断点地址,如果是就中断。...(7)用调试器动态调试,用IDA静态分析,编写辅助脚本进行分析 (8)对产生日志和流量进行分析,取证,调研 (9)提取特征码,和已有的样本库进行比对 (10)文档化 (11)备份相关文件

2.3K20

如何绕过IsDebuggerPresent调试

,使调试反汇编引擎无法正确解析反汇编指令(干扰) 门槛较高调试则可以是从驱动层将调试权限清零,使得调试器失效等等 (权限清零) 反调试手段可以大致归纳为:检测、干扰、权限清零 三种 反调试常见手段...下断点后直接F9运行到断点处 观察此时堆栈 ? 这里又返回到crakeme,猜想是否是判断是否在调试之后又回到原本函数 选中这一行按回车,跟进反汇编 ?...看到使用了IsDebuggerPresent来反调试 IDA Pro x64反调试 进入ida后,按G,并输入刚刚反汇编开始地址 ? 跳转后 ? 选择startaddress ?...这里很明确了,就是这个在反调试 IDA pro 反反调试处理 可以直接在函数头部就直接ret,让他不走IsDebuggerPresent 这里要用到IDA ProKeyPatch功能: 选中函数头部...IDA Pro分析 跳转到刚刚"密码正确地址" ? 选中函数头部F5,进入伪代码 ? 得到: ?

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

IDA和OD基本使用(持续更新)

:快捷键 p 将代码转换为数据:快捷键 d 将数据转换为代码:快捷键 c 通常用来清除花指令等 IDA没有撤销功能,慎重转换 IDA动态调试IDA也提供了动态调试功能,调试步骤如下: Debugger...F5窗格中单步跟踪伪代码 缺点 调试功能没有OllyDBG等强大,没有反调试、dump、硬件断点、内存断点等功能。...– 动态调试增强工具,保存函数调用上下文信息 sk3wldbg – IDA 动态调试器,支持多平台 idaemu – 模拟代码执行(支持X86、ARM平台) Diaphora – 程序差异比较...OD窗口 反汇编窗口:显示被调试程序反汇编代码,标题栏地址、HEX 数据、反汇编、注释可以通过在窗口中右击出现菜单 界面选项->隐藏标题 或 显示标题 来进行切换是否显示。...常用快捷键 断点功能 设置断点 Int3断点:可以有多个,设置在代码 内存断点:通过设置内存页面属性异常来实现断点功能,不去修改程序代码 硬件断点:使用调试寄存器设置断点,不会修改程序代码,最多设置

30010

IDA动态调试so源码 F5伪代码查看

常用快捷键: shift + f12 查看字符串 ctry + e start函数 问题篇: 1.动态调试作用以及与我们常说脱壳区别之处? 2.IDA断点调试原理?...3.有无反调试步骤区别?以及原理? 4.反调试与反附加区别? 5.IDA动态调试so时有哪三个层次?以及如何下断点?...CPU会捕获一条异常,转去处理异常,CPU会保留上下文环境,然后中断到调试器,大多数调试做法是在被调试程序中断到调试器时,会先将所有断点位置被替换为INT 3指令恢复成原来指令,然后再把控制权交给用户...看到上面的.so加载执行过程我们知道如果说反调试放在外壳级别的.so文件的话我们就会遇程序在应用级核心函数一下断点就退出尴尬,事实多数调试会放在这,那么过反调试就必须要在这些地方下断点,那么我们就重点说如何在...处,如图: 9.这时候找JNI_Onload绝对地址: 基地址+相对地址; 基地址为:ctrl+s显示为: 相对地址,用IDA静态分析libcrack.so可得到相对地止: 绝对地址为:4151E000

2.9K01

解密所有APP运行过程中内部逻辑

兴奋之后你才会发现IDA这东西在动态调试方面真的是很挫,就算他是静态反编译之王,我也不得不说他动态调试功能还非常需要加强。先说说使用ida调试dex方法。...options->set specific options,按如图1所示进行设置,然后一路确定返回 5.找到要下断点位置,光标移到要下断点那一行,按f2下断点 6.手机开启调试选项,链接usb到电脑...图 1 ida debug配置 ? 图 2 ida动态调试apk 触发断点,在watch view和Locals窗口都能看到内存变量值,简直就是画美不看啊,是不是有点小兴奋?!...图 8调试设备状态 8.从androiddevice monitor发现需要调试程序已经显示在列表里面了,记下端口号,本例中为8700; ?...图 10 debug设置 10.找到相应位置设置断点(在想设断点位置前后多设置几个断点),点击run->debug->unnamed,其中unnamed是第9步中新建远程调试名字; ?

1.7K100

android题目 AliCrackme分析

内存绝对地址=so文件地址+要调试函数偏移量 记录基地址D7F1D6BC 在打开一个ida查找so文件偏移地址 mac IDA双开 open -n /Applications/IDAPro7.0...-tea/ida.app 打开后搜索选择check函数,按空格后查看地址,查看地址000011A8 然后D7F1D6BC+000011A8=D7F1E864 经计算可知,函数绝对地址就是D7F1E864...在IDA中 使用快捷键G跳转到地址位置,也就是要调试函数位置 按F2打断点,按F8继续运行(F8单步调试不进入函数F7单步调试进入函数 然后发现app直接崩溃了,应该是有反调试 修改应用为...按g跳转到该地址断点,单步执行到jni_onload 停到JNI_Onload里了 BLX R7位置跳了出去,很可疑位置需要重点注意 静态分析找到R7位置进行修改 切换hex...进行调试,给check函数断点,在断点停下了 按F5,查看v6值发现是aiyou,bucuoo 在输入框中输入

63940

二进制程序分析指南

事实,脚本运行速度比编译代码慢,但是,由于脚本引擎良好优化,这不会造成任何特别的不便。开放式架构可能性弥补了这些限制。...IDA在基本视图中显示汇编代码(地址、指令、参数和注释)或以逻辑流程图形式绘制汇编代码。逻辑划分基本基于跳转、条件和循环。逻辑块之间关系用箭头表示。图形视图仅对完整函数识别的情况下可用。...在x64dbg中打开可执行文件后,在地址’ 0x004010D5 ‘(在IDA中找到,函数被调用地址)设置一个断点: 右键单击代码区域,选择“Go to”>“Expression”(或按CTRL+G)...在对话框中填写地址,然后单击OK。 右键单击> ‘ breakpoint ‘ > ‘ Toggle ‘(或按F2)设置所需地址断点断点地址用红色突出显示。...动态分析方法—符号访问 在前面的示例中,敏感函数地址是已知,这告诉我们必须在哪里设置断点。如果地址未知,则必须对函数及其交叉引用进行调查,x64dbg为此提供了内置特性:符号和模块间调用。

1.9K10

微信PC端技术研究(3)-如何找到消息发送接口

由于已经知道确切消息内容,很容易就能通过 CE Exact value->String 来找到内容地址,修改内容多次筛选,最后留下两个结果(详细操作见一篇文章)。 ?...看到返回到6E20CCC2这个地址一行代码就是调用msftedit.dll函数,我们对其下一个断点,鼠标点击到6E20CCBF这行代码,按下F2下一个int 3断点,然后F9跳过本次分析。 ?...但到底这两个函数是不是编辑框读写内容函数呢,我们对这两个函数断点试试,通过工具算到在 ID 调试中这两个函数相应地址为6f068437和6f056d37。 ?...OD 触发断点,断在了6f068437也就是CTxtEdit::GetTextEx,很明显这是发送函数在读取输入框内容。 ? 回溯找到发送函数 此时调用堆栈是这样: ? ?...调试工具非常重要,动(OD)静态(IDA)分析结合能够提高分析速度。 OD 适合分析函数参数、解析数据结构、确认函数功能,IDA 适合分析函数逻辑、整体函数结构、代码框架等等,各有优势。

1.5K50

Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)include int func(int a, int b, int c, int d, int e,

这里跳转地址,是可以算出来,比如我现在想跳转到A函数,然后下断点,那么我们可以使用上面说到ctrl+s查找到so文件内存开始地址,然后再用IDA View中查看A函数对应相对地址,相加就是绝对地址...stack frame)和链接寄存器(link register, lr)在栈地址。...我们在后面动态调试需要dump出加密之后dex文件,就需要调试这个so文件了。 3、找到函数地址,下断点,开始调试 我们使用Ctrl+S找到需要调试so地址:74FE4000 ?...4>通过打开so文件,找到需要调试函数相对地址,然后在调试页面使用Ctrl+S找到so文件地址,相加之后得到绝对地址,使用G键,跳转到函数地址处,下好断点。点击运行或者F9键。...,通过Ctrl+S和G快捷键,定位到需要调试关键函数,进行下断点 5》点击运行或者快捷键F9,触发程序关键函数,然后进入断点,使用F8单步调试,F7单步跳入调试,在调试过程中主要观察BL,BLX

3.9K61

Linux pwn入门教程之环境配置

接着我们打开32位ida,载入一个后面会用于演示堆漏洞程序heapTest_x86,在左侧Functions window中找到main函数,随便挑一行代码按F2下一个断点。...调试器连接成功后我们就可以使用各种快捷键对目标程序进行调试,常用快捷键有 下断点/取消断点 F2,运行程序F9,单步跨过函数F8,单步进入函数F7,运行到选中位置F4等等。...使用pwntools和IDA调试程序 在上一节中我们尝试了使用IDA配置远程调试,但是在调试中我们可能会有一些特殊需求,比如自动化完成一些操作或者向程序传递一些包含不可见字符地址,如\x50\x83...需要注意是此时heapTest_x86已经开始运行,我们目标是附加到其运行进程,所以我们需要把断点设置在call ___isoc99_scanf等等待输入指令运行顺序之后,否则由于计算机运行速度...我们在IDA中按F8到call mallocChunk一行,此时按F7进入函数,在函数中运行到call _fflush下一行,就会发现python阻塞状态解除了。

1.3K10

Android逆向(教程更新)|ida动态分析

0x02 动态分析前奏 动态分析必须预先准备一台手机(建议是真机),然后就是ida工具,实现ida工具远程连接是必要,而ida实现远程调试需要手机运行相关脚本,通过端口转发进行调试,那么相关脚本是ida...工具自带,端口转发必须通过adb工具,adb工具还需要实现动态调试启动程序前断点。...: 开始调试后进入到该界面,然后直接运行: 最后一步便是需要用到ddms对应调试应用端口 如下图所示,相关应用端口为:8600 那么接下来执行命令为: jdb -connectcom.sun.jdi.SocketAttach...选择需要跳转指定函数 因为静态分析时候用是Java_com_a_easyjni_MainActivity_ncheck 那么直接进入到相关起始点 点击小圈进行断点 然后点击程序 这样就断下来了...0x03 ida动态调试界面介绍 寄存器内存地址指向位置,从左到右为寄存器R0-R12然后是地址,之后是跳转按钮最后是数据,与静态区别就是在这,静态无法实时追踪寄存器中数据,需要在动态调试中下好断点运行到相关位置后在该处进行跳转

1.7K20

iOS逆向之lldb调试分析CrackMe1

主要是使用lldb配合(ida或者Hopper Disassembler)对iOS app关键算法进行动态调试外加静态分析,从而还原出算法流程及参数。...iOS设备中带有的debugserver只能调试自己开发相关应用,因此要对其他iOS app进行调试时,则需要配置debugserver) 拷贝debugserver到电脑,在mac电脑安装有Xcode...,我们接下来即要在Hopper Disassember或者ida中打开我们iOS app,找到需要分析函数 buttonClick(即按下按键后执行函数,比较两个字符串是否相等函数) ,查看它地址...(这里我以ida为例)如下图所示 我们即可看到函数地址为 0x00000001000044A8(64位机器地址) 现在我们可以算出函数在内存中地址 0x00000000002080000(随机偏移量...) + 0x00000001000044A8(ida地址)= 0x1020844A8(内存中函数地址) 算出函数地址后,开始在lldb下断点,使用如下命令 (lldb) br s -a 0x1020844A8

87210

熊猫烧香()初始分析

总之,Delphi编译器默认以register方式传递函数参数。这一点与VC编译程序完全不同。 提示:栈给局部变量分配空间时候,栈是向下增长,而栈数组、字符串、结构体等却是向上增长。...接着可以通过OD动态调试获取字符串对应值。 但是,我目前IDA并没有自动解析出字符串值,只能通过经验进行分析或OD动态调试。...接着我们尝试分析下一个函数sub_402650。 接着记住这个地址“403CB3”,我们回到OD进行动态调试分析其功能。...(5)sub_405360函数分析 继续从0x0040CB92位置往下分析,将该地址复制到OD中动态调试。...(6)sub_404018函数分析 第八步,继续分析sub_404018函数功能。 记住地址0x0040CBA4,复制到OD中进行调试

10310

Android逆向分析大全

(IDA/jdb/adt),设置断点 安卓linux程序调试步骤: 1.在虚拟机中启动服务端(gdb_server/linux_server) 2.在主机端连接客户端调试器(IDA/gdb_for_windows...文件夹中源文件拷贝到源码目录(欺骗),回编译apk覆盖目标apk位置 ,删除Edit configurationBefore launch,下断点调试 点评:这种方式只可以用来分析加密很弱App...里面的so动态库,因此执行/ART Debug/View/Module切换到模块列表,选中我们要调试模块,双击它 image Step 4.击中断点 本例中找到要调试函数getNativeString...,我们可以用CTRL+F查找到它,找到之后F2下断点,F9运行它,然后在设备中操作按钮则该方法将被断点击中,F8运行3步 image 调试AndroidLinux程序 adb push %NDK%\prebuilt...用ida分析so,并在JNI_OnLoad下断点,动态附加后,ida会自动rebase,使用gdb catch load命令捕获 Java层/Linux层联合调试 __ 有源码联合调试 参照前几节 无源码联合调试

3.2K40

手把手教你查看和分析iOScrash崩溃异常

objc_msgSend函数是runtime方法执行核心引擎而且调用如此频繁,函数内部是不可能有BUG。 那么为什么会崩溃在这呢?...00000001800bc154 and w12, w1, w11 无论是真机还是模拟器,XCODE都支持在运行时来查看任何调用函数汇编代码实现,你可以通过设置符号断点或者进入汇编调试模式以及单指令跳转方式来查看函数汇编代码实现...2.方法符号断点法 采用这种方法时,确保你手头上要有一台和产生崩溃异常问题操作系统版本相同真机设备,以方便联机调试和运行。...符号断点设置 当程序停在了设置符号断点函数或者方法开始地址后,接下来就需要在这个方法内进行第二个断点设置,设置地方就是崩溃函数调用栈中函数调用上层函数偏移处,这个可以在崩溃报告中看到: 0...IDA工具查看_updateSubviewCaches实现 采用IDA工具进行分析时,需要了解一些比如库基地址和代码数据偏移地址以及地址重定向相关知识。

5.8K31

开始激活成功教程so文件_so文件格式怎么打开

第二、IDA动态调试 这里我们看到没有打印log函数,所以很难知道具体参数和寄存器值,所以这里需要开始调试,得知每个函数执行之后寄存器值. 1.IDA配置 获取在IDA安装目录\dbgsrv\...,保证和PC端IDA进行通信,比如获取设备进程信息,具体进程so内存地址调试信息等。...3、找到函数地址,下断点,开始调试 我们使用Ctrl+S找到需要调试so地址:74FE4000 然后通过另外一个IDA打开so文件,查看函数相对地址:E9C 那么得到了函数绝对地址就是:74FE4E9C...,使用G键快速跳转到这个绝对地址: 跳转到指定地址之后,开始下断点,点击最左边绿色圆点即可下断点: 然后点击左上角绿色按钮,运行,也可以使用F9键运行程序;我们点击程序中按钮,触发native...4>通过打开so文件,找到需要调试函数相对地址,然后在调试页面使用Ctrl+S找到so文件地址,相加之后得到绝对地址,使用G键,跳转到函数地址处,下好断点。点击运行或者F9键。

3.7K20

二十三.逆向分析之OllyDbg动态调试复习及TraceMe案例分析

(参考文献见后) 一.OllyDbg界面介绍和配置 OllyDbg是一个动态追踪工具,将IDA与SoftICE结合起来思想,Ring 3级调试器,非常容易上手,是当今最为流行调试解密工具之一。...它还支持插件扩展功能,是目前最强大调试工具之一。 OD和IDA可以说是逆向分析“倚天”和“屠龙”,一个动态分析,一个静态分析。...该系列文章参考B站漏洞“游戏逆向交流”大佬视频,主要内容包括: OllyDbg界面介绍和配置 常用快捷键 OllyDbg基本操作 常用断点INT 3断点原理解析 INT 3断点调试与反反调试 常用断点之硬件断点原理解析...此时显示地址0x75CA43C1。 第五步,再按下F8键执行返回 此时我们看到了GetDlgItemTexeA函数执行位置,它会返回调用函数下一行代码,注意是下一行。...PE病毒行为机理分析 [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析()病毒初始化 [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理 [系统安全] 十四.熊猫烧香病毒IDA

1.5K30

IDA + Debug 插件 实现64Bit Exe脱壳

图4 此时就可以F9运行程序了,由于这里没有配置调试器选项因而在启动时候会出现一些提示信息,全部点掉之后将会打开如图5所示进程调试设置窗口,在Hostname中输入本机IP地址,端口中输入服务器监听调试端口...如果服务器不再本地则直接输入服务器IP,通过这种方式可以在32位系统上进行64位程序调试,这不是本文重点就不再介绍了。 图5 在启动之前最好在程序入口点设置一个断点,否则程序就会直接启动了。...启动之后将会停留在如下代码处(已经设置断点) 图6 F8单步执行到如下代码处之后一切就比较明朗了。...其实通过后面的地址也可以知道跳转到地址IDA分析失败了,因而会显示unk前缀,如果跳转到这个地址看到应该是一片乱码,如图9所示。...图13 点击show invalid去掉或者修复无效函数,最后fix dump即可。脱壳之后程序比原始程序稍微大了一点。 图14 但是程序正常运行还是没有问题。呵呵。

58120

“爱加密” 动态脱壳法

测试环境为: 安卓2.3 IDA6.6 下面看具体操作步骤: 具体怎样用IDA动态调试我就不多说了,网上己经有很多文章了,下面直接进入正题。 1.准备好调式环境后 用IDA附加进程。 ?...2.附加成功后按"G"键 跳到dvmDexFileOpenPartial函数与fopen函数与fgets函数去下好断点。 ?...image.png 3.下好断点后我们来说说它调试吧,下面我给两张图片大家可能就会明白它调试是怎么一回事了。 在调试状态下查看进程 TracerPid 不为0 ?...image.png 7.这样就得到了解密后DEX开始地址与大小,R0为存放DEX数据开始地址,R1为Dex大小,Dump出来。...8.写个简单过idc脚本将其dump出来,开始地址加上dex大小就是结束地址了。

1.8K00
领券