
逆向调试
文章平均质量分 92
mergerly
这个作者很懒,什么都没留下…
展开
-
靠谱的app加固分享
先来看看大概流程加固俯瞰1、编写加密方法,作为工具方法用于后续的加密和解密准备。2、编写代理Application(ProxyApplication),作为加固后的apk的伪入口。(ProxyApplication作为伪入口时,需要将加密apk进行解密并重新加载于classLoader中)3、对需要加密的apk的AndroidManifest文件的Application:name 标签经行更改为ProxyApplication,并用标签声明真正的Application入口和版本号。4、将1、2步转载 2021-05-18 19:03:09 · 1362 阅读 · 0 评论 -
关于安卓APP加固基础的总结
安卓加固基础(一)1.Dex字符串加密1.1 前序Android应用当中,很多隐私信息都是以字符串的形式存在的。这些隐私信息是明文,对于软件来说是想当不安全的,如果我们能在打包时对Dex中的字符串加密替换,并在运行时调用解密,这样就能够避免字符串明文存在于Dex中。虽然,无法完全避免被破解,但是加大了逆向提取信息的难度,安全性无疑提高了很多。1.2 字符串加密方法简介目前市面上主要存在两种字符串加密方式:(1)在开发阶段开发者使用加密后的字符串然后手动调用解密,这种方法工程量太大了,缺点很明显。转载 2021-04-27 12:15:24 · 1716 阅读 · 0 评论 -
【libffi】动态调用&定义C函数
一、Calling Convention高级语言编译器将代码编译成相应汇编指令时都会依据一系列的规则,这些规则十分必要,特别是对独立编译来说。其中之一是“调用约定” (Calling Convention),它包含了编译器关于函数入口处的函数参数、函数返回值的一系列假设。它有时也被称作“ABI”(Application Binary Interface)。调用约定(Calling Conventions)定义了程序中调用函数的方式,它决定了在函数调用的时候数据(比如说参数)在堆栈中的组织方式。编译器按照转载 2021-04-22 14:07:21 · 1231 阅读 · 0 评论 -
Linux系统调用(syscall)原理
引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及app、framework、native一直到kernel,可能迷失到代码世界,明白了系统调用原理,或许能帮你峰回路转,找到进入kernel函数的入口。本文主要讲解ARM架构相关源码:/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h/bionic/libc/arch-arm/syscalls/kill.S/kernel/arch/arm/kernel/calls.S/kerne.转载 2021-04-22 10:20:07 · 641 阅读 · 0 评论 -
Android逆向之旅---SO(ELF)文件格式详解
第一、前言从今天开始我们正式开始Android的逆向之旅,关于逆向的相关知识,想必大家都不陌生了,逆向领域是一个充满挑战和神秘的领域。作为一名Android开发者,每个人都想去探索这个领域,因为一旦你破解了别人的内容,成就感肯定爆棚,不过相反的是,我们不仅要研究破解之道,也要研究加密之道,因为加密和破解是相生相克的。但是我们在破解的过程中可能最头疼的是native层,也就是so文件的破解。所以我们...转载 2018-02-22 14:50:44 · 400 阅读 · 0 评论 -
【腾讯Bugly干货分享】移动App入侵与逆向破解技术-iOS篇
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/577e0acc896e9ebb6865f321如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪、注入等实用的破解技术,另外,通过“入侵”,将帮助您理解如何规避常见的安全漏洞,文章大纲:简单介绍ios二进制文件结构与入侵的原理介绍入侵常用的工具和方法转载 2018-02-05 12:03:23 · 1558 阅读 · 0 评论 -
iOS逆向工程整理 HOOK微信抢红包
原理Objective-C 是一门动态语言,我们可以利用OC的Runtime动态的替换App原有的函数,来达到我们(不可告人)的目的。OC 中对某个对象的方法的调用并不像 C++ 一样直接取得方法的实现的偏移值来调用,所以 C++ 方法与实现的关系在编译时就可确定。而 OC 中方法和实现的关系是在运行时决定的。在调用某个对象的方法时,实际上是调用了 obj_msgsend 向对象发送一个名转载 2018-02-05 12:00:41 · 4351 阅读 · 0 评论 -
破解TexturePacker加密资源,寻找解密Key之旅
破解TexturePacker加密资源的方式有好多种。。最多的是hook uncompress然后获取到内容,加入ccz的文件头写入文件。 例如:http://blog.youkuaiyun.com/ynnmnm/article/details/38392795 http://bbs.pediy.com/showthread.php?t=187332 今天我用最直接的方法搞定,直接找到用户转载 2018-01-26 19:00:21 · 3807 阅读 · 0 评论 -
应用死锁的分析
一款软件嘟嘟启动时无法启动,卡死在某个地方,界面显示不出来,于是分析了一番。启动利器Windbg,Attach到目标进程dudu_d.exe。首先显示一下所有堆栈0:007> ~*kb 0 Id: d2c.1abc Suspend: 1 Teb: 7efdd000 UnfrozenChildEBP RetAddr Args to Child 0原创 2014-02-08 13:47:46 · 7708 阅读 · 0 评论 -
使用WinDbg对Windows Live Toolbar死锁的简单分析
我一直在用Windows Live Toolbar中的Live Favorites来同步我的书签信息,但是速度总是很慢,甚至完全死掉。今天闲来无事,刚看到Mark的一篇Bloghttp://blogs.technet.com/markrussinovich/archive/2006/08/31/453100.aspx,对于他不放过任何问题的精神很是钦佩,准备效法一番。正好遇到IE关闭之后停在那边一转载 2014-02-08 13:22:24 · 1399 阅读 · 0 评论 -
如何手工抓取dump文件及分析
在生产环境下进行故障诊断时,为了不终止正在运行的服务或应用程序,有两种方式可以对正在运行的服务或应用程序的进程进行分析和调试。首先一种比较直观简洁的方式就是用WinDbg等调试器直接attach到需要调试的进程,调试完毕之后再detach即可。但是这种方式有个缺点就是执行debugger命令时必须先break这个进程,执行完debug命令之后又得赶紧F5让他继续运行,因为被你break住的转载 2014-01-20 15:35:31 · 12475 阅读 · 1 评论 -
windbg dump分析入门之符号相关
1.符号路径基本语法:SRV* 【cache】*toppath例如:Microsoft公有符号存储地址:http://msdl.microsoft.com/download/symbols设置符号路径就是:SRV*c:\mysymbols*http://msdl.microsoft.com/download/symbolsc:\mysymbols作为符号缓存以加快符转载 2014-01-20 14:08:00 · 1119 阅读 · 0 评论 -
借助 windbg 调试 句柄泄漏
在做一个大工程的时候, 什么问题都有可能碰得上. 郁闷的是, 项目是多人合作的, 你无法确定问题出在谁的身上. 最近就遇上一例.描述:引擎exe,运行10多分钟后, 自动退出. 我靠, 退的悄声无息的. 甚至连个windows抱歉的界面都不弹出来.分析:1: 关于程序悄声无息退出的问题 一个程序出错, 一般都是windows很抱歉, 进程要关闭啥的, 问你要不转载 2014-01-16 20:34:07 · 1394 阅读 · 0 评论 -
Android逆向之旅---静态分析技术来破解Apk
一、前言从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,Android中的破解其实大体上可以分为静态分析和动态分析,对于这两种方式又可以细分为Java层(smail和dex)和native层(so)。所以我们今天主要来讲解如何通过静态分析来破解我们的apk,这篇文...转载 2018-02-22 14:58:29 · 2667 阅读 · 0 评论 -
Android逆向之旅---解析编译之后的AndroidManifest文件格式
致谢:感谢看雪论坛的MindMac大神提供的资料:http://bbs.pediy.com/thread-194206.htm一、前言今天又是周六了,闲来无事,只能写文章了呀,今天我们继续来看逆向的相关知识,我们今天来介绍一下Android中的AndroidManifest文件格式的内容,有的同学可能好奇了,AndroidManifest文件格式有啥好说的呢?不会是介绍那些标签和属性是怎么用的吧?...转载 2018-02-22 15:11:03 · 2139 阅读 · 1 评论 -
ELF文件格式解析
1. ELF文件简介首先,你需要知道的是所谓对象文件(Object files)有三个种类:可重定位的对象文件(Relocatable file)这是由汇编器汇编生成的 .o 文件。后面的链接器(link editor)拿一个或一些 Relocatable object files 作为输入,经链接处理后,生成一个可执行的对象文件 (Executable file) 或者一个可被共享的对...转载 2019-07-03 18:23:56 · 31551 阅读 · 3 评论 -
GDB常用命令与Visual Studio对比
两种调试器的字检查功能一览表命令名称GDBVisual Studio运行程序runs [args]F5:Start Debugging (开始调试)启动程序start [atgs]F10:Step over (逐过程)暂停Ctrl+CCtrl-Alt+Break:Break All (全部中断)继续运行continue(cont, c)F5...转载 2018-10-24 14:07:48 · 832 阅读 · 0 评论 -
gdb分析堆栈破坏实例
一、定位bug性质和范围1、带符号分析dump$ gdb IMActivityServer.symbol core.32530(gdb) bt#0 0x0000000000a6951a in ?? ()#1 0x00000000018c6db8 in ?? ()#2 0x8f127f1911ab2800 in ?? ()#3 0x00000000018c6d00 in...原创 2018-05-31 14:23:57 · 6424 阅读 · 2 评论 -
Android逆向之旅---应用的"反调试"方案解析(附加修改IDA调试端口和修改内核信息)
一、前言在前一篇文章中详细介绍了Android现阶段可以采用的几种反调试方案策略,我们在破解逆向应用的时候,一般现在第一步都回去解决反调试,不然后续步骤无法进行,当然如果你是静态分析的话获取就没必要了。但是有时候必须要借助动态调试方可破解,就需要进行操作了。现阶段反调试策略主要包括以下几种方式:第一、自己附加进程,先占坑,ptrace(PTRACE_TRACEME, 0, 0, 0)!第二、签名校...转载 2018-02-22 17:31:45 · 584 阅读 · 0 评论 -
Android逆向之旅---动态方式破解apk前奏篇(Eclipse动态调试smail源码)
一、前言今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了:Android中使用静态方式破解Apk 主要采用的是静态方式,步骤也很简单,首先使用apktool来反编译apk,得到smail源码,然后分析smail代码,采用代码注入技术来跟踪代码,然后找到关键方法进行修改,进而破解,同时还可以使用一些开源的hook框架,比如:Xposed和Cydi...转载 2018-02-22 15:22:36 · 356 阅读 · 0 评论 -
Android逆向之旅---解析编译之后的Dex文件格式
一、前言新的一年又开始了,大家是否还记得去年年末的时候,我们还有一件事没有做,那就是解析Android中编译之后的classes.dex文件格式,我们在去年的时候已经介绍了:如何解析编译之后的xml文件格式:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/50568487如何解析编译之后的resource.arsc文件格式:http:...转载 2018-02-22 15:15:39 · 462 阅读 · 0 评论 -
Android逆向之旅---解析编译之后的Resource.arsc文件格式
一、前言快过年了,先提前祝贺大家新年快乐,这篇文章也是今年最后一篇了。今天我们继续来看逆向的相关知识,前篇文章中我们介绍了如何解析Android中编译之后的AndroidManifest.xml文件格式:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/50568487当时我说到其实后续还要继续介绍两个文件一个是resource.ars...转载 2018-02-22 15:13:00 · 1841 阅读 · 0 评论 -
windbg 命令输出到log文件
windbg的log功能,可以记录你在调试程序时输入的每一条命令以及其对应的输出。 用法如下:第一步:开启日志记录.logopen d:\dbglog.txt第二步:用命令或通过菜单输入调试命令,观察输出结果kb第三步:关闭日志记录.logclose之后,就可以去查看log文件了,也可以用命令打开.logfile 。转载 2013-08-06 14:09:17 · 4575 阅读 · 0 评论 -
理解 Win32API-OutputDebugString 原理
理解 Win32API-OutputDebugStringWin32API OutputDebugString()可以使你的程序和调试器进行交谈,应用程序和调试器交谈的机制相当简单,而本文将揭示整件事情是如何工作的。 应用程序用法 文件声明了 OutputDebugString() 函数的两个版本:一个用于 ASCII;一个用于 Unicode;如果有调试器的话,使用一个N转载 2013-06-18 12:10:00 · 2449 阅读 · 0 评论 -
也谈Release版本排错
通常Release除错都是先通过SetUnhandledExceptionFilter捕获异常,然后生成报告文件,最后定位代码行,主要以下两种方法:(一)通过遍历调用栈,将其调用栈信息输出到文件。然后查找出错地址。查找方式有两种:(1)通过编译器生成的包含行信息的map文件定位出错位置。通过在“工程属性”-〉“link”-〉“Project Options”手工输入 /mapinf原创 2009-09-03 16:57:00 · 2315 阅读 · 0 评论 -
Release 版出错调试
经常在 优快云 上看见有人问 Debug 运行正常但 Release 失败的问题。以往的讨论往往是 经验性的,并没有指出会这样的真正原因是什么,要想找出真正的原因通常要凭运气。最 近我看了一些这方面的书,又参考了 优快云 上的一些帖子,然后深入研究了一下关于二者 的不同。以下是我的一些体会,拿来与大家共享。 -------------------------------------- 本文主要原创 2009-09-03 17:03:00 · 3279 阅读 · 0 评论 -
通往WinDbg的捷径(一)
原文:http://www.debuginfo.com/articles/easywindbg.html译者:arhat时间:2006年4月13日关键词:CDB WinDbg 导言你钟情什么样的调试器?如果你问我这个问题,我会回答是“Visual Studio + WinDbg”。我比较喜欢Visual Studio那朴实无华且易操作的接口,更喜欢它能迅速把我需要的信息以可视的形式展示出来。但原创 2009-09-03 16:36:00 · 1302 阅读 · 0 评论 -
通往WinDbg的捷径(二)
原文:http://www.debuginfo.com/articles/easywindbg2.html译者:arhat时间:2006年4月14日关键词:CDB WinDbg 保存 dumps 在我们调试不容易重现的问题时,可能想把应用程序状态的快照(内存内容,打开名柄的列表,等等)保存起来,以便日后分析。例如,当我怀疑当前的状态可能包含我试图解决的问题的关键点,而想继续运行应用程序来查看情形怎原创 2009-09-03 16:40:00 · 2108 阅读 · 0 评论 -
利用vmware+windbg调试驱动
首先下载最新的windbg,然后下载symbols 在windbg的快捷方式的“目标”处填上 "D:/ProgramFiles/Debugging Tools for Windows/windbg.exe" -y C:/ -b -kcom:port=//./pipe/com_1,baud=115200,pipe设置vmware虚拟机,虚拟一个串口,把主机,虚拟机的波特率都设置为原创 2009-08-21 14:14:00 · 2000 阅读 · 0 评论 -
WinDbg+WMware+Vista
一.设置 VMware 的虚拟com1. 运行 VMware ,点击 "Edit virtual machine settings"2. 点击 "Add..." 来运行 VMware 的 Hardware Wizard 3. 选择 "Serial Port",点 "下一步"4. 选择 "Output to named pipe",点 "下一步"5原创 2009-02-17 20:39:00 · 1085 阅读 · 0 评论 -
浅谈游戏辅助程序的制作
浅谈游戏辅助程序的制作0、前言 本文仅限于技术交流,文中所附数据纯属虚构,如有雷同,实在是巧合! 本文简单地探讨了一款游戏辅助程序的分析、制作方法,希望能对那些对此感兴趣的朋友们有些许帮助。 本人小菜鸟一只,水平有限,说得不对的地方,权当逗各位大虾一笑 ^_^ 1、切入点 在WSASend函数上下断,移动一下转载 2009-02-06 22:08:00 · 1836 阅读 · 0 评论 -
谈谈NP和HS的通用unhook
先简单说以下,NP和HS都hook了以下一些SSDT什么是SSDT?我不想说那些复杂的理论,希望以简单的事实帮助介绍先向大S道歉,下文如有冒犯,还请大S原谅 怎么说呢,SSDT本身就是一个地址表,我们当他是个地址簿,也就是写了每个人的地址的记录表今天,偶想给大S送新年礼物,怎么送到大S家里呢?就得查看地址簿了上面是这样写的 大S: 游戏达人,外挂高人,破解牛人,脱壳圣人;分身有如月,堀北真希,花转载 2009-02-06 22:05:00 · 2380 阅读 · 0 评论 -
魔兽争霸3的MapHack制作教程(二)去除战争迷雾
本文内容完全原创,如需转载请使用如下引用通告,谢谢http://alzzl.spaces.live.com/blog/cns!C1FF77E38059705D!281.trak或者插入本站网址:http://alzzl.spaces.live.com/ 如果顺利的话以后的文章将以以下的提纲进行更新:魔兽争霸3的MapHack制作教程(一)显示敌对单位魔兽争霸3的MapHac转载 2009-02-06 21:51:00 · 7689 阅读 · 0 评论 -
魔兽争霸3的MapHack制作教程(一)显示敌对单位
本文参考了Chaotic的HowTo create a basic Maphack,原文地址如下:http://www.skillhackerz.com/Chaotic/Tutorial/Mh1/index.htm由于对原文做了较大的修改,最好将本文与原文参照起来看。================================================正文:软件版本:魔兽原创 2009-02-06 21:50:00 · 5163 阅读 · 0 评论 -
WinDbg 查找问题异常堆栈,堆栈跟踪UnhandledExceptionFilter
UnhandledExceptionFilter 函数调用时没有异常处理程序定义来处理引发的异常。 函数通常将异常传递达 Ntdll.dll 文件这将捕捉并试图处理它。 在该进程的内存快照存在某些情况下,您可以看到到一个线程持有锁点的线程调用的 UnhandledExceptionFilter 函数。 在这些情况中您可以按照本文标识导致异常的 DLL 中的步骤。Windbg.exe 打转载 2010-04-23 16:49:00 · 12280 阅读 · 0 评论 -
vector问题总结
<br />1.vector iterators incompatible<br />发现引发这个错误的代码如下:<br />for (VectorType::iterator it = someVector.begin();; it != someVector.end();++it;)<br />{<br /> if (*it== value)<br /> {<br /> someVector.erase(it);<br /> }<br />}<br />代码中,在eras原创 2011-05-11 14:36:00 · 4005 阅读 · 1 评论 -
VC++ Runtime Error 异常捕获之不挂的程序
VC++ Runtime Error, 对不少朋友来说, 这是一个十分讨厌的错误提示, 您可能不知道如何着手调试: 产生这个错误的原因是什么? 确实只有知道了产生这个错误的直接原因, 才能去调试这个错误. 刚碰到这个错误的时候, 是发生在视频解码的时候, 由于解转载 2011-08-05 12:59:44 · 14771 阅读 · 1 评论 -
基于WinDbg的内存泄漏分析
转自:http://www.cppblog.com/weiym/archive/2013/02/27/198109.html在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,转载 2013-04-09 13:57:33 · 4349 阅读 · 0 评论 -
UMDH查内存泄漏
1. 下载Debug Tools for Windows:http://www.microsoft.com/whdc/devtools/debugging/default.mspx (里边的UMDH就是用来查内存泄漏的),安装,并设置安装路径为环境变量(便于命令行启动)2. 写测试程序test.exe,比如搞个线程不断的分配内存,不要太猛太暴力,把你机器搞的冒烟了,妈妈会骂的~3. 设置符转载 2013-04-09 13:37:02 · 2066 阅读 · 0 评论 -
内存泄露检测工具LeakDiag的使用 .
LeakDiag是微软一款检测memory leak的工具,使用比较简单首先去下载一个ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag/安装好,默认是在c:/leakdiag然后写一个测试程序来测试#include stdio.h>#include windo转载 2013-04-09 13:29:44 · 4997 阅读 · 0 评论