运行程序

有一个开机画面

之后才是软件
需要验证HardCoded和Name/Serial

查壳

没壳,汇编语言编写的

载入OD分析

先除去一下开机画面
载入OD后,直接F8,看看哪里开始运行程序的

进入这个函数,发现这个函数弹出启动画面,直接nop,或者进入函数,在函数头直接retn 0x4

分析验证算法:
看一下字符串

这里做了一个字符串对比,我们输入的和HardCoded,所以正确的就是HardCoded

看一下Name/Serial
函数头下个断

通过Name计算

通过Serial计算

在后面比较

算法分析

def genKey(name):name_res = []for i in range(len(name)):res = ((ord(name[i]) % 0xA) ^ i) + 2res = res & 0x000000ffif(res >= 0xA):res -= 0xAname_res.append(res)genSerial(name_res)def genSerial(name_res):serial_res = []for i in name_res:# 这个乘了 4 倍的 0xA,只要满足可以输入就可以,不一定是 4 倍serial_res.append(chr(i + (0xA * 4)))print(chr(i + (0xA * 4)),end='')genKey('sword')

暴力破解

直接nop

  • 结果

总结

通过Name反推Serial,还要考虑Serial可输入

Splish(★★)相关推荐

  1. python 替换字符串的方法replace()、正则re.sub()

    一.replace()函数 1用字符串本身的replace方法: a = 'hello word' b = a.replace('word','python') print b 1 2 3 二.re. ...

  2. Scrapy 学习笔记(-)

    Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

  3. 67)vector的begin() end() 和 front() back()的区别 rbegin() rend()

    1) ·············· 2)`````````v1.begin() 和v1.end()  是作为迭代器v1的 第一个位置  和 最后一个元素的下一个位置. `````````````v1. ...

  4. 转:【CSS/JS学习】如何实现单行/多行文本溢出的省略(...)--老司机绕过坑道的正确姿势...

    本文来源:http://www.cnblogs.com/penghuwan/p/6682303.html 引言: 写前端UI的朋友们也许都遇到过这样的问题:我们需要实现这样一个需求,在一个父级元素中隐 ...

  5. Python中的对象,类,super()函数

    对象:(1)外观的特征 (2)正在做的事情 比如:那个穿蓝色衣服的正在打球的帅哥  类:属性(静态的变量)+方法(函数)是对对象的近似 类名约定是以大写字母开始的 类的出现: 是为了使得对象可以进行大 ...

  6. Python中的super()函数

    多路继承的问题 描述: 解决这样的问题Python中可以使用super() super()函数有点: (1)在父类中可以直接的调用未绑定的方法 (2)在确保所有的父类的构造方法都使用了super()函 ...

  7. 函数assert()详解

    函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...

  8. 若显示器接口电路中的刷新存储器容量为1MB,当采用800*600的分辨率模式时,每个像素最多可以有多少()种颜色

    若显示器接口电路中的刷新存储器容量为1MB,当采用800*600的分辨率模式时,每个像素最多可以有多少()种颜色. 显示内存 >= 分辨率与彩色位数/8的乘积 1MB=800*600*T: T= ...

  9. 下面算法中,不属于公开密钥加密算法的是()。D

    下面算法中,不属于公开密钥加密算法的是().D A.ECC B.DSA C.RSA D.DES 常用的公钥加密算法有RSA.DSA.ElGamal和ECC. 常用的对称加密算法有DES.3DES.ID ...

最新文章

  1. 【javamatlab】以一个简单的例子实现java和matlab混编
  2. 小学生python-小学生都能学会的python(函数)
  3. Oracle AWR 报告中 No data exists for this section of the report 说明
  4. php 我已阅读并同意 判断,phb.php
  5. HDU 4609 3-idiots(FFT)
  6. 小熊错误_新手爸妈第一年带娃时,很容易犯的7个错误,对照看看你中了没
  7. Linux环境 Oracle 监听和服务 日常操作
  8. 机器学习基础算法26-聚类理论
  9. Python学习之路day3-文件操作
  10. Ubuntu锐捷校园网连接不上问题,认证成功但是上不去网。
  11. 【转】强大的矩阵奇异值分解(SVD)及其应用
  12. 服务器准系统diy,“攒”服务器与DIY服务器
  13. MacTeX的使用心得
  14. PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
  15. Window cmd
  16. 单招计算机英语面试口语,面试单招英语自我介绍
  17. Carsim中路面附着系数设定
  18. 《京东技术解密》读书笔记
  19. STM32模拟SPI协议驱动AD7908芯片
  20. 来,告诉你另一种手机里的文件删了怎么恢复的方法

热门文章

  1. mysql2000 自动还原工具_系统备份还原工具(EaseUS Todo Backup Advanced Server)
  2. 一个Boss直聘机器人, 自动回复发简历
  3. redhat 解压.tgz文件
  4. 打造消费者信得过的宠物服务企业和产品
  5. android 适配最佳方案,android适配方案
  6. Bentley MicroStation (*.dgn) 模型 一键输出 3D Tiles 和 glTF/glb
  7. 华为MDC300F的操作记录
  8. 百度量子披荆斩浪,与如流共赴效率之舞
  9. 数字图像处理之图像复原
  10. 将数字货币金额转换为大写格式(java)