(Jarvis Oj)(Re)DD-hello

本文介绍了一个名为(JarvisOj)(Re)DD-hello的解密挑战,通过使用IDA工具进行逆向工程分析,发现并重写了核心解密逻辑。通过对主函数及调用函数的分析,最终定位到关键解密函数Finaloutput,并根据内置数据重构成新的解密程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(Jarvis Oj)(Re)DD-hello

丢到ida中,发现主函数和其调用的函数并没有什么有用的信息
这里写图片描述
这里写图片描述

但是发现了两个奇怪的函数,跟进
这里写图片描述
最后有个Final output猜测这是真正解密的函数。找到内置数据。
这里写图片描述
根据题目逻辑重写解密程序即可

1 #include<stdio.h>
2 char cipher[]={0x41,0x10,0x11,0x11,0x1b,0x0a,0x64,0x67,0x6a,0x68,0x62,0x68,0x6e,0x67,0x68,0x6b,0x62,0x3d,0x65,0x6a,0x6a,0x3d,0x68,0x04,0x05,0x08,0x03,0x02,0x02,0x55,0x08,0x5d,0x61,0x55,0x0a,0x5f,0x0d,0x5d,0x61,0x32,0x17,0x1d,0x19,0x1f,0x18,0x20,0x04,0x02,0x12,0x16,0x1e,0x54,0x20,0x13,0x14};
3 long start_addr=0x100000CB0;
4 long dummy_addr=0x100000C90;                                                                                       
5 int main(void){
6     int v2=((start_addr-dummy_addr)>>2)^cipher[0];
7     for(int i=0;i<55;i++){
8         cipher[i]-=2;
9         cipher[i]^=v2;
10         v2++;
11     }
12     printf("%s\n",&cipher[1]);
13   return 0;
14 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值