强网先锋 Babyre

Babyre

        1. shift + f2交叉引用后 shift+f7观察程序的段,发现有一个TLS段

        2.在函数一栏搜索TLS发现TLS函数

        3.先分析Tls0,这个函数是一个反调试函数,以及在修改key,主函数是xtea等一会分析

        4.Tls1函数也有一个反调试,并且对密文进行了修改,异或i

        5.主函数就主要三个函数,具体作用已经写在注释里面

        6.xtea函数分析,进行了一些魔改,比如循环次数变成了 4 * 33次,sum的初始值不是0,以及 异或了 v3也就是sum

        7.代表分析完毕开始解密,总之就是获取改变后的key和密文初始key是这样

        8.先过反调试把cl修改为不等于4就行,然后直接在函数ret的地方下断点让程序修改掉key的值再查看就行

        9.注意我这个里en_data1已经修改了

#include <stdio.h>
#include <stdint.h>
int delat = 0x77BF7F99;

void TEA_dercypt(uint32_t* v, uint32_t* key)
{
	uint32_t a1 = v[0];
	uint32_t a2 = v[1];

	uint32_t sum =  0x90508D47;
	sum += (-delat * (4 * 33));
	//printf("%x\n", sum);
	//printf("%x %x\n",v[0],v[1]);
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 33; j++)
		{
			sum += 0x77BF7F99;
			a2 -= (((a1 << 5) ^ (a1 >> 4)) + a1) ^ (sum + key[(sum >> 11) & 3]);
			a1 -= (((a2 << 5) ^ (a2 >> 4)) + a2) ^ (sum + key[sum & 3]) ^ sum;
		}
	}

	v[0] = a1;
	v[1] = a2;
	return;
}
int main()
{
	uint8_t en_data1[32] = { 224, 242, 35, 149, 147, 194, 216, 142, 147, 195, 104, 134, 188, 80, 242, 221, 153, 68, 14, 81, 68, 189, 96, 140, 242, 171, 220, 52, 96, 210, 15, 193 };
	//uint32_t en_data[8] = { 3716265510, 1489281390, 3716265510, 1489281390, 3716265510, 1489281390, 3716265510, 1489281390 };
	uint32_t key[4] = { 0x62, 0x6f, 0x6d, 0x62 };
	uint32_t temp[2] = { 0 };
	uint32_t* en_data = (uint32_t*)en_data1;

	for (int i = 0; i < 8; i+=2)
	{
		temp[0] = en_data[i];
		temp[1] = en_data[i + 1];

		TEA_dercypt(temp, key);

		printf("%c%c%c%c%c%c%c%c", *((char*)&temp[0] + 0), *((char*)&temp[0] + 1), *((char*)&temp[0] + 2), *((char*)&temp[0] + 3), *((char*)&temp[1] + 0), *((char*)&temp[1] + 1), *((char*)&temp[1] + 2), *((char*)&temp[1] + 3));
	}

	return 0;
}
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值