首页
社区
课程
招聘
Flexlm DLL用IDA后出现Hash和publickey是啥意思?
发表于: 2021-5-31 15:50 3977

Flexlm DLL用IDA后出现Hash和publickey是啥意思?

2021-5-31 15:50
3977

如下所示,一Flexlm ECC的DLL文件经IDA,出现这么一段,不知作何解释。
.assembly xxxxxxxxxx
{
.hash algorithm 0x00008004
.ver 2017:2:1087:0
.publickey = (
00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00
00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00
03 E5 95 D9 9D 7E 0F AA 76 FC 94 07 A3 C1 C1 41
B8 93 48 71 82 CB D1 F0 5C 26 3C FE DC 1D DF 85
DB DB 69 DF 0C D6 2A DD 1E 25 BE DF 2F E1 2B FB
07 0F BF 1E 22 2B 41 C8 AB 53 CF 12 56 1E 6B C0
C8 2F 47 14 9D AC 8A 19 97 44 2E 49 BF 2A 75 57
A5 51 28 DF FA BB F8 30 DD A4 46 0D 3E 51 82 A6
90 0D 69 5E CA CC 47 B4 57 4F 11 1D F6 7C 60 8C
E1 9F 1E EB DD A8 97 C2 6E 0B 19 EC E3 69 9E EF)
}
.module extern KERNEL32.dll
.module extern $MR$24
.assembly extern mscorlib
{
.publickeytoken = (
B7 7A 5C 56 19 34 E0 89)
.hash = (
73 A2 9E 79 EF 6F D5 29 A6 E5 94 F4 14 38 C8 CC
73 BE 3A 1D)
.ver 4:0:0:0
}
.assembly extern System.Data
{
.publickeytoken = (
B7 7A 5C 56 19 34 E0 89)
.hash = (
D9 19 17 FB 54 46 CB 2F E6 A2 E5 F7 A1 6B AD D3
59 69 A9 FF)
.ver 4:0:0:0
}
.assembly extern System
{
.publickeytoken = (
B7 7A 5C 56 19 34 E0 89)
.hash = (
88 9D A3 33 84 8A 49 41 43 FC DE F8 01 24 51 F8
68 E2 BD 44)
.ver 4:0:0:0
}
.assembly extern System.Xml
{
.publickeytoken = (
B7 7A 5C 56 19 34 E0 89)
.hash = (
90 7B 43 A5 3C AB E7 23 3A 63 8A 99 C8 20 19 61
E5 23 F4 B1)
.ver 4:0:0:0
}
另一个DLL中,能找到类似读取公匙的代码:
((_BYTE )a2 + 119) += 88;
((_BYTE )a2 + 166) -= 94;
((_BYTE )a2 + 136) += 39;
((_BYTE )a2 + 85) -= 48;
不是DWORD的地址值,全是数值,这个怎么找到公匙在文件中的位置呢?
本人小白一个,请大侠指教。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 5784
活跃值: (6432)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2

你已找到Pubkey的值。请参考 https://bbs.pediy.com/thread-247892.htm 28楼的解释

最后于 2021-5-31 16:40 被yangmyron编辑 ,原因:
2021-5-31 16:40
0
雪    币: 85
活跃值: (183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

谢谢大佬指教.网补了一堆关于原码,反码和补码的知识,还是有一些不明白,再次请教下: 1. 网上说正数的原码 反码和补码相同,那((_BYTE )a2 + 166) -= 94;中94应该不是表示正数了,是-94吗? 2. 对于这种情况下用公匙替换,是直接在代码区替换相应的值吗?比如,((_BYTE )a2 + 119) += 88;中88对应Hex为58,是不是就是把他换成自己的公匙就可以; 而对应于上面的补码应该怎么换呢?

2021-5-31 21:55
0
雪    币: 1341
活跃值: (3616)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
这是.net程序
2021-6-2 11:31
0
雪    币: 85
活跃值: (183)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是的,这是C#程序,如何查找定位公匙呢?
2021-6-2 14:12
0
游客
登录 | 注册 方可回帖
返回
//