PEid查壳
无壳,ida载入
很明显将437261636b4d654a757374466f7246756e与输入字符串进行对比
同时在sprintf函数中将输入的字符串转换为16进制
sprintf 的参数为 %x 为16进制
十六进制转换为:CrackMeJustForFun
打开是个c源文件
根据代码一顿操作
得到flag:c0ffee
是个elf文件载入ida
观察上方函数明显加壳
先用010edit查看壳
为upx壳
拉进kali upx -d
再次载入ida
得到flag
载入010edit
无壳为elf
载入ida
题目为简单算法的逆向
要求输入字符串为19为符合要求
注意:v7先取地址然后转换为16进制,并且注意小端序需要更改顺序
参考其他师傅的脚本
#include
#include
using namespace std;
int main()
{
long long a = 28537194573619560;
char * p = (char*)&a;
char b[] = ":\"AL_RT^L*.?+6/46";
for(int i = 0;b[i]!=0;i++){
b[i] = b[i]^p[i%7];
}
cout<
010edit打开文件,无壳
ida载入
查看字符串
尝试该字符串输入,确实为flag
载入ida
简单分析出现的函数
确认主要函数为authenticate()
进入authenticate
观察函数,得知s和byte_8048a90经过decrypt函数的变换得到s2
然后unk_8048B44输出success字符
且从创建s2后s2不经过变换
观察对应汇编代码
得知call decrypt后s2不再变换,且后面与s2cmp
推测call decrypt返回eax的值为s2
ida动态调试一波
进入eax所在的堆
得到散装flag
查看题目是个py逆向
先打开010editor
大概猜测是个关于base64的题目,编码内容应该是个XLN一串的字符
在线反编译
#!/usr/bin/env python
# encoding: utf-8
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
import base64
def encode(message):
s = ''
for i in message:
x = ord(i) ^ 32
x = x + 16
s += chr(x)
return base64.b64encode(s)
correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
print 'correct'
else:
print 'wrong'
写出脚本
buf = base64.b64decode("XlNkVmtUI1MgXWBZXCFeKY+AaXNt")
for i in buf:
...: i =ord(i)-16
...: i ^=32
...: flag += chr(i)
print(flag)
一题elf文件
拖入ida
大概观察题目
21行前是对字符串进行操作
21行后是对文件进行相关操作
观察字符串 s 的值
为一串长度32字符
然后对第几位进行and操作来控制v3
最后对字符串 s 操作
上脚本
l = 'c61b68366edeb7bdce3c6820314b7498'
s= ''
for i in range( len(l)):
...: if (i&1==1):
...: v3=1
...: else : v3=-1
...: s+=chr(ord(l[i])+v3)
...: i+=1
print s
得到变换后的字符串
通过ida搜索字符串得知flag格式
注意前面少了一个大写的S
这里也有暗示
最后拼出flag
程序是个exe文件
先打开peid查壳
查看无壳
进入程序
出现一个乱码以及窗口带 flag
载入ida是个mfc而且带有IsDebugger函数检测
查看汇编代码
出现两段messagebox
尝试od进入
在此处修改je跳转到B9109B
进入call内查看