首页
社区
课程
招聘
[已解决] [求助] 逆向一个算法 2000.00雪花
发表于: 2020-12-2 11:57 11353

[已解决] [求助] 逆向一个算法 2000.00雪花

2020-12-2 11:57
11353

提取逆向一个算法,有花指令,无vm有能力的有兴趣的来试试,只要能搞定逆向算法价格可商量,

 

密文:34 07 81 9C 78 10 C4 7E 6A 56 9F B6 54 34 64 DF
密钥: F7B24B09
明文: 32 91 AB BB A5 CE 0C 7E 6A 09 9F 0D BB 7E A9 A4

 

要求:
现在使用原文和密钥可以得到明文,要求逆向算法,输入明文得到密文,完成后需要提供c源码


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-8-13 16:20 被sungy编辑 ,原因: 安全原因
收藏
免费 0
支持
分享
最新回复 (29)
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
006DE62C | 85F6                     | test esi,esi                            |
006DE62E | EB FE                    | jmp cogss_srv6.6DE62E                   | 加载程序后这里解锁,向下分析算法
006DE630 | 8BCC                     | mov ecx,esp                             |
006DE632 | C701 3407819C            | mov dword ptr ds:[ecx],9C810734         |
006DE638 | C741 04 7810C47E         | mov dword ptr ds:[ecx+4],7EC41078       |
006DE63F | C741 08 6A569FB6         | mov dword ptr ds:[ecx+8],B69F566A       |
006DE646 | C741 0C 543464DF         | mov dword ptr ds:[ecx+C],DF643454       |
006DE64D | 8BC4                     | mov eax,esp                             |
006DE64F | 83C0 10                  | add eax,10                              |
006DE652 | 50                       | push eax                                | 明文
006DE653 | 51                       | push ecx                                | 密文
006DE654 | 68 094BB2F7              | push F7B24B09                           | 密钥
006DE659 | E8 0438D7FF              | call cogss_srv6.451E62                  | 算法在这里
006DE65E | EB F9                    | jmp cogss_srv6.6DE659                   |
2020-12-2 12:01
0
雪    币: 348
活跃值: (1593)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

路过

最后于 2021-9-9 15:20 被lipengzhu编辑 ,原因:
2020-12-2 19:09
0
雪    币: 642
活跃值: (996)
能力值: ( LV5,RANK:72 )
在线值:
发帖
回帖
粉丝
4

联系方式

最后于 2020-12-2 19:57 被yeyeyesO编辑 ,原因:
2020-12-2 19:55
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
有兴趣者联系,有版规
2020-12-4 17:56
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
研究的怎么了高手们
2020-12-19 17:35
0
雪    币: 14865
活跃值: (6088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
怎么不能运行
2020-12-19 18:18
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

密匙不变的情况下相对简单点, 密匙转换的过程是知名算法 只是sbox换掉了   转换密匙的过程box全程抽取,所以只能一个个的提取. 非常的繁锁.   如果一个人不停的搞这些 估计也要一两天的时间.   发一半密匙转换过程.  另外一半算法也一样, 都很简单. 但是这个东西算法的体力活不是一般人可以承受得了的.每一个查表的box都是分散的,全部分析完大约 上几百的分散的静态 box.  当我分析到密匙转换完成之后,后面还有这近两倍的工作量. 都是同一算法,然后最终完成xor解密明文的那 16字节!  但由于一看体力活工作量实在太大(其实整个过程就两个循环和最终的xor,但拆得太狠),就不再往下了... ...  有兴趣的可以继续!


	
	详见下方代码
	
	
	重点:  这个东西算法真的简单. 但是体力活真的很大!


最后于 2020-12-26 21:46 被Mxixihaha编辑 ,原因:
2020-12-19 19:13
1
雪    币: 12
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
留个联系方式
2020-12-20 19:48
0
雪    币: 10
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
lipengzhu 留个联系方式
有偿求助,有能力的大神私信我。研究一个狗
2020-12-21 12:19
0
雪    币: 10
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
lipengzhu 留个联系方式
有偿求助,有能力的大神私信我。研究一个狗
2020-12-21 12:20
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
12
Mxixihaha 密匙不变的情况下相对简单点, 密匙转换的过程是知名算法 只是sbox换掉了   转换密匙的过程box全程抽取,所以只能一个个的提取. 非常的繁锁.&nbsp ...
高手能继续研究吗,那个表我已经提取出来了,能搞定的话,费用可再商量
2020-12-24 10:03
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
sungy 高手能继续研究吗,那个表我已经提取出来了,能搞定的话,费用可再商量
看你那么久没回复我以为你不需要了.  这个肯定可以搞定啊  就是个重体力活,  里面的box百多个不重复呢.
2020-12-24 15:26
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
14
肯定要的,只要能搞定,可加钱
2020-12-25 09:17
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
15
tDasm 怎么不能运行
最好xp下调试,win10可能有问题
2020-12-26 10:21
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
sungy 肯定要的,只要能搞定,可加钱

加解密算法全部写完了.  


解密秒解.  加密要跑


hk0 =GetKey(c10,c0); 457C67CC = GetKey(E49CF0D8 , C5C809F6)

hk1 =GetKey(hk0,c1); 0BF7EE15 = GetKey(457C67CC , 02F64054)

v   =GetKey(hk1,c2); 47D43C8C = GetKey(0BF7EE15 , 2074D24E)

nmax 124/155 Thread end!

nmax 31/62 Thread end!

nmax 155/186 Thread end!

nmax 186/217 Thread end!

RunKey Success!

RunKey hvk2......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

hk0 =GetKey(c10,c0); BBA5F72B = GetKey(A36B2052 , 1A591BCD)

hk1 =GetKey(hk0,c1); 365347B0 = GetKey(BBA5F72B , A4565749)

v   =GetKey(hk1,c2); F7D07AF1 = GetKey(365347B0 , 43CF0DDD)

nmax 124/155 Thread end!

nmax 62/93 Thread end!

nmax 155/186 Thread end!

nmax 31/62 Thread end!

nmax 217/255 Thread end!

nmax 0/31 Thread end!

nmax 186/217 Thread end!

nmax 93/124 Thread end!

RunKey Success!

RunKey hvk5......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 0/31 Thread end!

nmax 186/217 Thread end!

nmax 124/155 Thread end!

hk0 =GetKey(c10,c0); E2F1AF5F = GetKey(C1CAB6B3 , EF580A7A)

hk1 =GetKey(hk0,c1); C5E8FC16 = GetKey(E2F1AF5F , 7F8103FE)

v   =GetKey(hk1,c2); 3988BC15 = GetKey(C5E8FC16 , B6462CBF)

nmax 155/186 Thread end!

nmax 62/93 Thread end!

nmax 217/255 Thread end!

nmax 31/62 Thread end!

nmax 93/124 Thread end!

RunKey Success!

RunKey hvk8......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 124/155 Thread end!

nmax 0/31 Thread end!

nmax 93/124 Thread end!

nmax 155/186 Thread end!

nmax 31/62 Thread end!

nmax 62/93 Thread end!

nmax 186/217 Thread end!

hk0 =GetKey(c10,c0); 02A37C72 = GetKey(DA9AD9D1 , B042D759)

hk1 =GetKey(hk0,c1); A61B2006 = GetKey(02A37C72 , B69468A3)

v   =GetKey(hk1,c2); 301A708A = GetKey(A61B2006 , FB4DF54E)

nmax 217/255 Thread end!

RunKey Success!

RunKey hvk11......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 93/124 Thread end!

nmax 0/31 Thread end!

nmax 186/217 Thread end!

nmax 124/155 Thread end!

nmax 31/62 Thread end!

hk0 =GetKey(c10,c0); 686213A8 = GetKey(6F70699C , D04E45E1)

hk1 =GetKey(hk0,c1); 2E7E7271 = GetKey(686213A8 , D7ACF40D)

v   =GetKey(hk1,c2); 779283ED = GetKey(2E7E7271 , 08E4D2F0)

nmax 217/255 Thread end!

nmax 155/186 Thread end!

nmax 62/93 Thread end!

RunKey Success!

RunKey hkey2......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 186/217 Thread end!

nmax 217/255 Thread end!

hk0 =GetKey(c10,c0); F6245DA1 = GetKey(C0CE6E58 , 3B8A49B4)

hk1 =GetKey(hk0,c1); E1909845 = GetKey(F6245DA1 , 0ED1C3E7)

v   =GetKey(hk1,c2); FC894F95 = GetKey(E1909845 , 39682406)

nmax 62/93 Thread end!

nmax 0/31 Thread end!

nmax 31/62 Thread end!

nmax 124/155 Thread end!

nmax 93/124 Thread end!

nmax 155/186 Thread end!

RunKey Success!

RunKey hkey5......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 0/31 Thread end!

nmax 124/155 Thread end!

nmax 62/93 Thread end!

nmax 31/62 Thread end!

hk0 =GetKey(c10,c0); 81934A35 = GetKey(62DCC5B4 , 7D444ECB)

hk1 =GetKey(hk0,c1); 4E6C04F1 = GetKey(81934A35 , 228C7B87)

v   =GetKey(hk1,c2); 15112D8B = GetKey(4E6C04F1 , FC3C364E)

nmax 93/124 Thread end!

nmax 186/217 Thread end!

nmax 155/186 Thread end!

nmax 217/255 Thread end!

RunKey Success!

RunKey hkey8......

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 62/93 Thread end!

nmax 93/124 Thread end!

nmax 124/155 Thread end!

nmax 217/255 Thread end!

nmax 0/31 Thread end!

hk0 =GetKey(c10,c0); 98465D69 = GetKey(C5048A88 , 472FECE1)

hk1 =GetKey(hk0,c1); 0DD33789 = GetKey(98465D69 , FC551F87)

v   =GetKey(hk1,c2); 284BCC58 = GetKey(0DD33789 , B4879BC7)

nmax 186/217 Thread end!

nmax 31/62 Thread end!

nmax 155/186 Thread end!

RunKey Success!

RunKey hkey11......Ha ha ha~~!

Thread nmax 0/31 start!

Thread nmax 31/62 start!

Thread nmax 62/93 start!

Thread nmax 93/124 start!

Thread nmax 124/155 start!

Thread nmax 155/186 start!

Thread nmax 186/217 start!

Thread nmax 217/255 start!

nmax 155/186 Thread end!

nmax 31/62 Thread end!

nmax 217/255 Thread end!

hk0 =GetKey(c10,c0); AD49C487 = GetKey(7FD7B5BB , EF40AA0A)

hk1 =GetKey(hk0,c1); C81CF505 = GetKey(AD49C487 , 7DBC4D32)

v   =GetKey(hk1,c2); 048AC610 = GetKey(C81CF505 , 680AEF98)

nmax 62/93 Thread end!

nmax 186/217 Thread end!

nmax 93/124 Thread end!

nmax 0/31 Thread end!

nmax 124/155 Thread end!

RunKey Success!

[加密(0xF7B24B09)]   -----------------这个信息打印错了,KEY其实是 0xFF86BD01(见代码截图)

6C 0B 0A F8 41 94 4C B4 AB B1 A1 EB 74 D0 68 6E

最后于 2021-1-3 22:59 被Mxixihaha编辑 ,原因:
2020-12-26 19:46
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
17
不好意思,平时比较忙,这样吧,我相信你能做,你报个价吧,如果在预算内,我想办法联系你,版规不能这里留下联系方式的,还是尊重版规吧。
或者能反推下面的,我就结贴给你,源码到时另外出个价
密钥:FF86BD01

密文(输入):????????
明文(结果):32 91 14 BB A5 CE 0C 7E 6A 09 9F 0D BB 7E A9 A4

如果能反推输入,我就结贴了,真心要
2020-12-28 21:05
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
18
反推好玩啊,我也来玩玩这个反推,说不定就穷举出来了
2020-12-29 08:32
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
19
可以试试,这个贴怎么都要结的,源码是另外一份报价
2020-12-29 08:45
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
20
Mxixihaha sungy 肯定要的,只要能搞定,可加钱 解密算法是写出来了.    要加密回去有点难度. 算法太长了. 不知道值得不值得继续搞.
我的最终目标是要得到反向的算法,就是在知道密钥key的情况下,由明文结果(32 91 14 BB A5 CE 0C 7E 6A 09 9F 0D BB 7E A9 A4)得到输入(密文)的c源码。你觉得多少钱可以搞,有兴趣可以私我报个价,辛苦这么久也不让你白干
2020-12-30 15:18
0
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
21
直接反汇编转成C的算法对我没有多大意义,希望你能完成我说的反向算法,钱先结了,目标还没未成,
2020-12-30 15:36
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
sungy 直接反汇编转成C的算法对我没有多大意义,希望你能完成我说的反向算法,钱先结了,目标还没未成,

所有算法已经分析完成.  如何联系? 是先把你上面发的那个信息的结果发到这里确定转换正确吗?

最后于 2020-12-31 17:10 被Mxixihaha编辑 ,原因:
2020-12-31 17:10
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
23
sungy 不好意思,平时比较忙,这样吧,我相信你能做,你报个价吧,如果在预算内,我想办法联系你,版规不能这里留下联系方式的,还是尊重版规吧。 或者能反推下面的,我就结贴给你,源码到时另外出个价 密钥:FF8 ...
输入:6C 0B 0A F8 41 94 4C B4 AB B1 A1 EB 74 D0 68 6E
2021-1-1 12:20
1
雪    币: 547
活跃值: (2195)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
24
高手就是高手,出个价吧,你们那么多看雪币是准备升值吗?,V1g6MTMxMjg5MjMxMDM  一个base64可以吗
2021-1-2 09:53
0
雪    币: 4381
活跃值: (4373)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
sungy 高手就是高手,出个价吧,你们那么多看雪币是准备升值吗?[em_12],V1g6MTMxMjg5MjMxMDM  一个base64可以吗



解密可以秒解, 加密上要小跑一下(不跑也可以,通过跑一次做表保存 弄成回逆的box).  分享一下过程吧..



玩了这么久, 算法的难点是太太太太太太长长长长长长长了.


 开始第一天拿到手以为是每个字节异或.  后来发现那是两张拆掉的表. 对应两个 加解密的box. 不同的字节对应不同的算法(实际上就是个box)


decodeKey/encodeKey  是同一个,但也是很长很长的算法,但是呢,有一个变通的方法就变得简单了.  包括前后的字节转换处理.不然的话,你会直接放弃掉算法的念头!


代码逆向出来都是一行一行的 ,痛苦并快乐,搞定他的爽快!  box太多太多. 


源代码光box.h  有 2.15MB 开始一个一个手工提取.  后面才写工具提取. 着实没想到拆得这么狠,都是以为半天的功夫搞完的. 一搞就这么多天.


不含 box.h 按汇编直观的解读搞完 接近 7000行代码.  几乎整个程序就是在读被拆的表.   不然真的循环很快了事. 







最后于 2021-1-4 09:20 被Mxixihaha编辑 ,原因:
2021-1-3 19:33
0
游客
登录 | 注册 方可回帖
返回
//