[Reversing.kr] Easy_KeygenMe Writeup

IDA打开。Main()函数就是关键算法

v6,v7,v8 是连续的 。可看成 L=[16,32,48]。输入的name每位分别于L[]异或 得到的值存在v13。然后清空v9的值 ,输入Serial储存在v9  再让v13与v9比较。

可还原算法:

#!usr/bin/env python
#!coding=utf-8

__author__ = ‘zhengjim‘

name = raw_input()
L=[16,32,48]
flag =‘‘
for i,name in enumerate(name):
    f = hex(ord(name)^L[i%3]).replace(‘0x‘,‘‘)
    flag+=f
print flag.upper()

暴力破解代码:

#!usr/bin/env python
#!coding=utf-8

__author__ = ‘zhengjim‘

S = [0x5B,0x13,0x49,0x77,0x13,0x5E,0x7D,0x13]
L=[16,32,48]
flag =‘‘
for i,s in enumerate(S):
    for f in xrange(127):
        if f^L[i%3] == s:
            flag+=chr(f)
            break
print flag
时间: 2024-12-27 08:26:55

[Reversing.kr] Easy_KeygenMe Writeup的相关文章

Reversing.Kr writeup

Reserving.Kr writeupEasy CrackEasy KeygenReplaceEasy_ELF Reversing.Kr writeup 这个网站http://reversing.kr 学习逆向很不错.各个平台的逆向都有,最近在慢慢的刷这些题 Easy Crack 看名字就知道很简单,PEID查壳,拖入OD,找到关键代码 0040109B|.8B7C2470 mov edi,dword ptr ss:[esp+0x70];|user32.76D1D2B3 0040109F|.8

reversing.kr学习之路-ransomeware

ransomeware - writeup 题目来源 http://reversing.kr 题目知识点:upx + 花指令 + 堆栈不平衡 + exe特征码提取key 前言 文章只是记录一下自己在reversing.kr上学习CTF逆向的经历,如果文中出现什么技术错误,烦请各位大佬,在评论中指正.本人技术刚刚入门,菜鸟一枚,大佬勿喷啊- 正文 首先在网站上下载附件,得到一个zip,里面包含了一个txt.一个exe和一个file.根据txt里面的提示,可以得到exe为加密程序,file为加密后的

【LINUX】pwnable.kr cmd1 writeup

[email protected]:~$ ls cmd1  cmd1.c  flag [email protected]:~$ cat cmd1.c #include <stdio.h> #include <string.h> int filter(char* cmd){ int r=0; r += strstr(cmd, "flag")!=0; r += strstr(cmd, "sh")!=0; r += strstr(cmd, &quo

【LINUX】pwnable.kr cmd2 writeup

试了一晚上终于试出来了....真心曲折,考察linux脚本. 里面需要注意的点如下: 1. Linux里面的sh bash是不一样的,在不同系统上的存在也有不同.sh是为Unix所设计,讲究精简,里面比dash少一些功能,导致调试脚本时很多错了不知道怎么改,一步一步试出来的: 2. 重点在于构造“/”这个东西 3. 到此Toodler's Bottle已经刷完了,我的教程也写到了Lesson 3,接下来的题目writeup很少,我自己做也比较困难,可能转Protostar训练了吧? 前面进展缓慢

【PWN】pwnable.kr echo1 writeup

#Exploit for [email protected] #@Windcarp 2015.07.23 from pwn import * #init context(arch = 'amd64', os = 'linux') local=False if local: p = process("./echo1") libc = ELF("/lib/x86_64-linux-gnu/libc-2.19.so") else: p = remote("pwn

reversing.kr replace 之write up

好似reversing除了前几个容易些,后面的都很难的.看wp都很困难.首先wp提示crtl+n查看程序所有函数,并且找到了测试函数: 然而宝宝我换了n多个od都没有得到和作者同样的结果: 后来运行程序后再用ctrl+n神奇的出现了: 那我们就按照wp一步一步来:跟进目标函数,我们发现了如下目标函数: f8一直向下执行: 我们发现程序走到这里就执行不下去了,这次我们输入0,观察此时对应的EAX=0x611605cb,于是我们分析得到由于我们输入错误所以eax到了错误的地址,所以eax=输入+0x

【PWN】Pwnable.kr echo2 writeup

依旧是基本技巧的考察,shellcode的寻找着实费了一番周折,然后就是FSB和UAF漏洞的利用,很好的一题! #Exploit for [email protected] #@Windcarp 2015.07.23 from pwn import * #init context(arch = 'amd64', os = 'linux') local=False if local: p = process("./echo2") libc = ELF("/lib/x86_64-

reversing.kr easy crack 之write up

之前学逆向感觉学得一踏糊涂,这阶段好多师傅带我,一定要好好学,重新开始,认真学习. 来看打开可执行文件: 用ollydbg载入,单步执行后停到了入口点: 分析入口点,并没有加壳,于是F9执行程序,跳出了程序执行框,随便输入些字符,出现了错误框的提示: F12暂停程序后Alt+k查看调用栈: 补充: MessageBox指的是显示一个模态对话框,其中包含一个系统图标. 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息.消息框中返回一个整数值,该值指示用户单击了哪个按钮. 在图中高亮处点击

Reversing.kr Position分析题解

先看下程序界面和要求: 76876-77776是固定的数值,要求在空白处输入相应的 字符.要求字符数4个,且最后一个为p.答案不唯一. 1,首先我们查下壳,没有加壳,c++写的程序. 2,使用IDA查看下, 很多这样的函数,让人没有头绪. 3,再使用OD查看下,地址并不是常见的.我们查看下是否有反调试之类的函数. 最常见的函数isdebugerPresen.按下ctrl+N,输入函数 还真有这个函数,使用d fs:[30]+2  使0修改为1,然而并没有什么用. 4,寻找到获取输入的位置,常见的