文档章节

crackme4算法分析记录

enimey
 enimey
发布于 2014/03/31 13:14
字数 424
阅读 110
收藏 3
点赞 0
评论 0

下载地址:http://pan.baidu.com/s/1jGv9FO6

软件界面如下:

image

验证成功后,返回success!

软件是加壳了的,用esp定律+单步,很容易完成脱壳。

由于是win32控制台程序,和之前的窗口程序稍微有点不同。很明显,我们需要在获取用户输入的api处下断点,用 bpx gets(在所有调用gets函数的地方下断点)下断。

算法很简单,这次我没有仔细用od跟算法,是在od找到算法的地址,然后直接用ida的f5看的伪代码。

直接贴一下注册算法,留以备用:

#coding=gbk
userName = input('请输入用户名(只能输入5位字母):')
mid1Passwd = ''
passwd = ''
index = 0
tuple = (0x76, 0x03, 0x40, 0x70, 0x02, 0x55, 0x5B, 0x5B, 0x05, 0x64)
al = 0
dl = 0
if len(userName) != 5 :
	print('用户名输入错误!')
	exit()
for i in userName :
	if ord(i) <= 96 or ord(i) > 122 :
		if ord(i) > 64 and ord(i) <= 90 :
			mid1Passwd += chr(((ord(i) - 65) * 7 + 13) % 26 + 65)
		else :
			print('用户名输入错误!')
			exit()
	else :
		mid1Passwd += chr(((ord(i) -97) * 7 + 13) % 26 + 65)
print(mid1Passwd)
		
for i in mid1Passwd :
	dl = (((((0x00280000 +ord(i)) * 0x67) & 0x0000ffff) >> 0x8) & 0x000000ff) >> 0x2
	al = ord(i) >> 0x7
	passwd += chr((dl -al + 0x30) ^ tuple[index])
	index += 1
	passwd += chr((ord(i) - (((dl - al) << 0x2) + (dl - al)) * 2 + 0x30) ^ tuple[index])
	index += 1
print('密码为:' + passwd)

PS:虽然算法很简单,但是还是一些小技巧:1,算法并没有在开始检查用户名的长度,而是在后面验证密码时,通过验证的循环次数控制了用户名的长度;2,算法为了不直接将"success"字符串硬编码到程序中,而是采取了将其他乱码形式的字符串以某种算法而生成"success"、“sorry”等提示信息。

© 著作权归作者所有

共有 人打赏支持
enimey
粉丝 15
博文 18
码字总数 12299
作品 0
成都
Mahout安装与配置笔记

一、硬件环境 操作系统:Linux ubuntu-13.04-desktop-i386 jdk安装版本:jdk-7u51-linux-i586 Hadoop版本:Hadoop-1.1.1(一个Namenode,三个Datanode部署) 二、安装步骤 在Mahout安装之前读...

kartik ⋅ 2014/06/01 ⋅ 0

MySQL的JOIN(二):JOIN原理

表连接算法 Nested Loop Join(NLJ)算法: 首先介绍一种基础算法:NLJ,嵌套循环算法。循环外层是驱动表,循坏内层是被驱动表。驱动表会驱动被驱动表进行连接操作。首先驱动表找到第一条记录...

文文1 ⋅ 04/01 ⋅ 0

冒泡排序(Bubble Sort)

1、定义 冒泡排序(Bubble Sort)是一种交换排序。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。 2、基本思想 两两比较待排序记录的关键字,发现两个记录的次序相反时即进行...

野渡书生 ⋅ 2016/04/29 ⋅ 0

算法导论第二章小试牛刀

Author: bakari   Date: 2015.9.11 《算法导论》真是一本让人又爱又恨的书,爱自然是因为它精简凝练的算法呈现,读来让人欲罢不能;至于恨,是因为它在进行算法分析的时候所体现的数学思想...

chambai ⋅ 2015/09/11 ⋅ 0

机器学习算法——使用 Apriori 算法进行关联分析

参考博客:点击打开链接,点击打开链接 1、什么是关联分析? 关联分析是一种在大规模数据集中寻找有趣关系的任务,这些关系可以有两种形式:频繁项集或者关联规则。 频繁项集(frequent item...

qq_20840025 ⋅ 04/16 ⋅ 0

180302 逆向-抵御静态分析(1)

1625-5 王子昂 总结《2018年3月2日》 【连续第517天总结】 A. 抵御静态分析(1) B. 静态分析是逆向工程中常用的手段。 因此抵御静态分析也是一个很值得深入的话题。 花指令 在反汇编的过程中...

whklhhhh ⋅ 03/22 ⋅ 0

【机器学习实战】 使用Apriori算法进行关联分析

转载请注明作者和出处: https://blog.csdn.net/weixin37392582 代码地址: https://gitee.com/wuweijun 开发平台: Win10 + Python3.6 + Anaconda3 编  者: 无尾 一、前言 一、前言   ...

weixin_37392582 ⋅ 03/27 ⋅ 0

直接选择排序(Straight Selection Sort)

1、定义 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 常用的选择排序方法有直接选择排序...

野渡书生 ⋅ 2016/05/03 ⋅ 0

java数据结构之排序--> 插入排序算法

直接插入排序(Straight Insertion Sort)是一种简单的;排序方法,基本思想是每趟将一条待排序的记录,按其关键字值的大小插入到前面已经排好序列的记录之中的适当位置直到全部记录插入完为...

狂奔啦蜗牛 ⋅ 2012/08/19 ⋅ 0

Top K算法详细解析---百度面试

者:码农 问题描述: 这是在网上找到的一道百度的面试题: 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查...

天天顺利 ⋅ 05/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 46分钟前 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 昨天 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部