64位elf,有点难搞,放进kali试运行一下,发现有个图标一闪而过,猜想有文件操作
在encc_me里放着smc
这个0xcafeb055bfcc就是当子进程int 3中断时对父进程的返回值,但是我不知道为什么,ida动调时,elf好像不能交互,平时让我输入flag的也不行,这道题返回值既不是0xCAFEB055BFCC,也不是0xCAFE1055BFCC,是一个我不知道的东西(随机值),我动调就进不去,进去了父进程与子进程也不能通信,很烦,不知道为什么,师傅讲讲。先静态看看
进入smc_me函数data_child就是从子进程里读取数据出来的,CC50调用了ptrace通信,其中v20就是这里的数据
对每一个地址进行xor操作,idapython脚本如下
key = {8723: 2533025110152939745, 8739: 5590097037203163468, 8755: 17414346542877855401, 8771: 17520503086133755340, 8787: 12492599841064285544, 8803: 12384833368350302160, 8819: 11956541642520230699, 8835: 12628929057681570616, 8851: 910654967627959011, 8867: 5684234031469876551, 8883: 6000358478182005051, 8899: 3341586462889168127, 8915: 11094889238442167020, 8931: 17237527861538956365, 8947: 17178915143649401084, 8963: 11176844209899222046, 8979: 18079493192679046363, 8995: 7090159446630928781, 9011: 863094436381699168, 9027: 6906972144372600884, 9043: 16780793948225765908, 9059: 7086655467811962655, 9075: 13977154540038163446, 9091: 7066662532691991888, 9107: 15157921356638311270, 9123: 12585839823593393444, 9139: 1360651393631625694, 9155: 2139328426318955142, 9171: 2478274715212481947, 9187: 12876028885252459748, 9203: 18132176846268847269, 9219: 17242441603067001509, 9235: 8492111998925944081, 9251: 14679986489201789069, 9267: 13188777131396593592, 9283: 5298970373130621883, 9299: 525902164359904478, 9315: 2117701741234018776, 9331: 9158760851580517972}
for addr in range(0x2213,9331+16,16):
data = get_qword(addr)
key1 = key[addr]
dec = data ^ key1
idc.patch_qword(addr, dec)
然后就可以看到正确的re3内容了
稍微修改一下函数
我不知道是什么,看大佬的wp说是数织游戏,我不懂
稍微偏移一下地址,找到这一串东西,放这里去解Nonogram (handsomeone.github.io)
flag里面有空格