- 博客(17)
- 收藏
- 关注
原创 JNI_OnLoad与init_array下断方法整理
JNI_OnLoad和init_array 在SO脱壳中占了很多比重,那么如何在它们执行前下断点呢? 考虑到SO加载的时机,在jdb附加之前并不能对我们想调试的SO下断点,即使是知晓了偏移位置。因为它们还没有被加载。据说这可以用脚本来解决,这不是这篇文章讨论的范围。本文章讨论的方法是从系统库中下断的方法来达到目的。首先讨论init_array下断点的方法: init_array 是在so加载后由
2016-07-23 23:43:17
5504
翻译 Debugging Dalvik programs with IDA
翻译:无名侠 引言自从IDA v6.6 开始就能够调试安卓应用程序,也包括一个源码级的调试器。这个教程将会讲解如何建立并且开始一个Dalvik调试会话。安装Android SDK首先,我们应该安装安卓SDK,可以通过官方网站下载 http://developer.an droid.com/sdk我们不需要ADT Bundle,所以选择”SDK Tools Only
2016-02-21 19:29:48
1754
原创 Android 5.0 + IDA 6.8 调试经验分享
现在升级快,网上的资料只能做参考。 学到了NDK逆向这一块,昨天为了能让IDA 能动态调试SO,瞎折腾了很久,这里分享一下我的经验。工具: IDA pro 6.8 Android 5.xIDA 6.8 在看雪吾爱应该都能找到下载地址。 我的手机是三星 on7 Android 5.1系统。 以前我一直用的是IDA 6.6,群里人说5.0以上的系统要用6.8…
2016-01-31 13:23:37
14067
4
原创 Win32 播放MP3
#include #pragma comment(lib, "winmm.lib")bool PlayMP3(char * szFileName);MCI_OPEN_PARMS m_mciOpen; //打开参数MCI_PLAY_PARMS m_mciPlay; //播放参数bool PlayMP3(char * szFileName) { //PlaySound("C:\
2015-12-26 21:02:00
2305
2
原创 UDP广播的代码
在bind 广播地址 会一直返回-1,忽略即可~服务器代码:#include #include #pragma comment(lib,"ws2_32.lib")#define ServicPort 1447void showerr(char * err,bool exit1){ printf(err); if(exit1) { getchar(); exit(0
2015-12-12 12:30:48
915
原创 二叉堆
半夜三更,编程写文章,真是妙不可言。二叉堆是一种非常有用的数据结构。二叉堆实际上是一颗二叉树,是一个用数组来存储的二叉树。应用:二叉堆排序 复杂度O(N * logN)二叉堆分为两种:最小堆,最大堆。 最小堆:父节点小于左右子节点的值。二叉堆实际上是一颗完全二叉树,高度为 logN设父节点在数组中的下标为x , 左子节点就是 2x 右子节点是2
2015-11-01 00:48:01
994
原创 树莓派 Python GPIO 学习笔记
树莓派的GPIO扩展功能非常强大,它使一切变得了可能。 本人初学树莓派,如有写的不对的地方,欢迎指出,非常感谢。Python使用RPi库来实现控制GPIO。 Rpi库可以使用pip安装,具体步骤请百度。这是一张GPIO编码表。 GPIO.setmode 这个函数用来设置模式。 例如:GPIO.setmode(GPIO.BCM) 指定BCM 编码方式。GPIO.setup 这个函数用于设置
2015-08-30 18:15:12
1935
原创 树莓派 HC-SR04 模块使用
最近在学习树莓派,就写写自己的学习记录吧。HC-SR04 是一款非常廉价的超声测距模块,在X宝上只用花十块不到就能买到。上图就是,很小巧的。该模块操作方便,在准备测距的时候需要在 Trig 引脚给10us高电平。Echo 就是输出。距离计算公式:距离 = Echo高电平时间*(340M/S) /2Out好像是应该报警输出,我没有深入研究过。我将 Trig 接入到 GPIO 14 把Echo 接入到G
2015-08-30 18:00:54
3519
原创 getopt笔记
最近在学习Linux下的编程,就记录一下学习过程吧getopt 是用来解析命令行的。要使用getopt相关的函数就需要 导入 unistd.h 这个头文件0.0main函数的声明是这样的(或许不是标准的):int main(int argc,char *argv[])argc 是命令行的数量,argv则是一个命令行“内容”数组。特别有一点需要主要,命令是以空格为分
2015-08-29 23:49:36
556
原创 Python学习笔记(2)
已经学习Python两天了,总结一下学习成果。 初学Python,如果有写错的地方,还望各位大牛指出。先列一列作品:Python socket 客户端测试程序EasyGUI 猜数游戏看雪登录器涉及到的知识点:面向对象socket库httplib2库EasyGUI 小知识点:导入模块通过这种方式导入模块中的全部内容。from socket import *import easy
2015-07-04 10:08:48
1634
原创 Python学习笔记(1)
今日有幸学习Python。 看的教程是这里的http://www.runoob.com/python/python-tutorial.html 因为有编程基础,所以只用了几个小时的时间来熟悉Python。 下面是一段比较综合性的代码,最为今晚(好像是早晨。)的一个总结。 知识点:Python基础语法Python面向对象Python 文件I/OPython异常处理机制字典: 我认为字
2015-07-03 01:07:50
821
原创 栈溢出笔记(1)
实践是检验真理的唯一标准栈溢出的原理非常简单,但是实际操作起来确实问题多多。- 准备工具WinHex vc++6.0 一双勤奋的手和善于思考的大脑#include <stdio.h>#include <windows.h>const char * FileName = "reg.txt"; const char * trueCode = "1245";#define Msg(STR
2015-06-26 23:14:43
1064
原创 躲猫猫!验证机制隐藏在API中
把软件的注册机制隐藏在API里最大的好处就是不容易被破解者发现,因为他们经常会用OD的F8快捷键步过API,很少有人跟进去看把?然后…程序的注册机制调用就在XX API中。 原理比较简单,主要是利用了流行的HOOK技术,至于怎么HOOK完全取决于你,反正要能改变API函数的流程即可。 如果选的HOOK点适当,我觉得这一招还是很阴的…. 比如: MessageBoxA IsDebug
2015-06-22 20:01:03
1031
原创 VC实现SMC加密技术
前言SMC是一种局部代码加密技术,通过对一段代码进行加密来达到增加逆向工程难度或者免杀的目的。 编写SMC代码不是汇编语言的专利。——《加密与解密 第三版》 是的,SMC不仅能使用汇编上实现,还能很容易的使用VC实现,但是有一个比较致命缺陷:要精准的定位某个函数非常麻烦,所以我们就要以区块为加密的基础单位。预备知识需要一点点的PE结构基础就ok啦。加密算法既然是加密,就必然需要加密算法。Inte
2015-06-20 20:33:22
4053
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人