
逆向之旅
__N4c1__
rr
展开
-
repne scasb 用法
repne scasb 用法经常看到这个语句,记下来以免以后忘掉了。一些知识点:repne是重复执行指令。scas是用来搜索字符。一些标志位参数:DF:方向CX:所要搜索的串的长度ax:所要搜索的数据di:所要搜索的那条串串用法1计算字符串长度mov ecx,FFFFFFF;设置循环次数,这里我理解为设置大,然后后面可以直接用补码对应长度su...原创 2019-11-01 13:22:26 · 5885 阅读 · 0 评论 -
RC4加密算法理解
RC4加密算法理解概念在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。原理:总体来说包括两个部分:1.初始化密匙盒子。2.伪随机密码生成PS:不需要过分转牛角为什么能这样子加密,这涉及到数学问题了,不过...原创 2019-10-26 10:47:11 · 2823 阅读 · 0 评论 -
z3安装与学习
233333,听说直接pip安装的不太让人愉悦。那就直接用源码安装了。//跟angr中的安装相仿,先创建个虚拟环境sudo apt install python-dev libffi-dev build-essential virtualenvwrappervirtualenv z3cd z3source 路径/z3/bin/activategit clone https:/...原创 2019-10-20 19:31:04 · 1073 阅读 · 0 评论 -
SMC 初探
SMC 初探PS:水平太次,做过类似的题太少,只能有点入门思路。这个技术是为了反调试(静态调试),是代码在执行时才生出其中的一部分执行代码。对于一部分入门题来说,思路还是很明确的。菜鸡的弱鸡思路:先找出显著特征:比如说强行给一个数据域强制转换类型,如(*(xxx)add)之类的。然后对处理该地址的代码分析,用PatchByte()修改完,再快捷键‘c’转为汇编,再’creat...原创 2019-10-13 22:06:28 · 640 阅读 · 1 评论 -
IDA Decompilation failure:too big function
这个调一下配备文件就行了。C:\Program Files\IDA 7.0\cfg\hexrays.cfgMAX_FUNCSIZE = 64 64改成大一点的就行。网上说改成1024原创 2019-10-12 00:17:15 · 2528 阅读 · 2 评论 -
IDA常见的宏定义(逆向)
/*This file contains definitions used by the Hex-Rays decompiler output.It has type definitions and convenience macros to make theoutput more readable.Copyright © 2007-2011 Hex-Rays*/#if defined...转载 2019-10-08 18:42:42 · 2261 阅读 · 1 评论 -
findcrypt-yara IDA的一个插件安装
findcrypt-yara 找加密方式的插件链接:https://github.com/polymorf/findcrypt-yara简介:IDA pro plugin to find crypto constants (and more)安装:1、 安装yara-python,最简单的方式是使用:pip install yara-pythonyara-python地址:https:/...原创 2019-10-07 21:32:12 · 2978 阅读 · 0 评论 -
对于一些伪c代码中含有大量烦杂代码的处理方法
最近有很多题有很多垃圾代码,导致浪费了不少时间,但也学到了很多的东西。首先,不需要读懂所有的代码,只要能掌握到关键代码的作用,就行了。而对于一些极其复杂的代码(打比方:一个函数套着另一个函数,而且极为复杂),这种不需要太过于仔细分析,就是熟手也会花掉大量时间,猜测作用,或者直接动态调试。暴力猜。emmm,大概就是这样子。...原创 2019-10-03 22:19:51 · 201 阅读 · 0 评论 -
python中的md5()加密
有关hash加密算法,python3都放在hashlib标准库。md5()方法使用update(arg),接受arg来更新对象,ps:只接受byte类型。因此输入前要在参数前转换类型。hexdigest()方法,该方法用于将hash中的数据转换成只包含十六进制的数字。demo:import hashlibmd5=hashlib.md5()md5.update(b'fu*k')...原创 2019-09-26 21:28:43 · 607 阅读 · 0 评论 -
reversing.kr Easy Keygen
今天课有点多,晚上还去听剑桥大佬吹牛,然er,现在还在边写边看男篮,嘻嘻,当玩一天了。那么来看reversing.ke这个题,很常规,emmm,但是做的时候出了点小问题。拉进IDA:主要是对sprintf函数的一点理解错了。借鉴一点百度资料:头文件:stdio.h函数功能:格式化字符串,将格式化的数据写入字符串中。函数原型:int sprintf(char *buffer, ...原创 2019-09-04 21:57:13 · 405 阅读 · 0 评论 -
read()和write()函数 的小认识
在分析ELF文件的时候,经常会看到read()和write().那么先来简单地学学两个函数。write()write(int fd ,const void * buf ,size_t count);将参数buf所指的地址的count个字节放到文件内。返回值:顺利write()会返回实际写入的字节数,不行的就返回-1,.readread(int fd,void * buf...原创 2019-09-01 19:47:23 · 564 阅读 · 0 评论 -
硬编码和软编码寻找序列号
这是逆向中最基础的部分,一定要多点练,还能培养耐心(滑稽)w(゚Д゚)w┗|`O′|┛硬编码 就是固定序列号(注册码,密匙)软编码就是可以变得,常见的就是按照用户名按照某种算法生成o(≧口≦)o常见的断点:CC断点(最常用了)API断点(关键使用)内存断点 硬件断点(用于追寻内存中字符串走向的神器)常用于断点的函数(当该程序有输入框,那些的时候,)GetDigitem...原创 2019-08-19 22:33:43 · 563 阅读 · 1 评论