首页
社区
课程
招聘
[求助]找加密函数问题
发表于: 2016-12-13 07:07 3690

[求助]找加密函数问题

2016-12-13 07:07
3690
1、开OD,下断:BP SEND,游戏里说句话。断下后,在OD的数据区里看一下BUF里的东西和BUF的地址。
  2、然后,给BUF下硬件写入WORD断点。F9运行一下。再说一句话,这时就能断下是谁给这个BUF写了数据。
  3、你可能看到是:REP MOVS [EDI],[ESI],对了,这里ESI就是数据的来源,而EDI就是数据要存放的地方,也就是它的下一级SEND.BUF。
  4、这时注意数据区EDI的数据。取消硬件断点,F9一下会断到SEND,看一下EDI也就是这时指向的SEND.BUF中的数据是否有变化,如果有,那么调用这个REP MOVS指令的CALL就是加密CALL。
  5、如过没有,再对ESI指向的空间下硬件写入WORD断,运行游戏,再说一句话。断下另一个地方的REP MOVS,然后和第4步一样,注意数据区的数据变化。

00188454   55733581  /CALL 到 send 来自 Flash32_.5573357B
00188458   00000284  |Socket = 0x284
0018845C   17C1F468  |Data = 17C1F468
00188460   0000001B  |DataSize = 1B (27.)
00188464   00000000  \Flags = 0

根据以上资料找找加密函数,可是Data 地址每说一次话就变一次,下了硬断断不到啊,为啥buff地址总是变啊

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1.send函数

根据send调用的buffer,进行回溯,找到加密函数。对于send调用的buffer,最好是保持随机调用,如果固定的话会非常容易分析

.
.
.
.
.我擦,有找了篇防护资料
2016-12-13 07:22
0
雪    币: 248
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主还是图样,页游加密去分析SWF文件就行了
2016-12-13 10:34
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
咋分析啊,啥都不会,他妹的苦恼
2016-12-13 10:39
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
$-30C    > 19B5E9E8  ASCII ">>>>>>>>>>>>>>>..btn.selected false"这个是明文包吗
2016-12-16 10:31
0
雪    币: 96
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
55DE0060 $ 55 push ebp
55DE0061 . 8BEC mov ebp,esp
55DE0063 . 57 push edi
55DE0064 . 56 push esi
55DE0065 . 8B75 0C mov esi,dword ptr ss:[ebp+0xC]
55DE0068 . 8B4D 10 mov ecx,dword ptr ss:[ebp+0x10]
55DE006B . 8B7D 08 mov edi,dword ptr ss:[ebp+0x8]
55DE006E . 8BC1 mov eax,ecx
55DE0070 . 8BD1 mov edx,ecx
55DE0072 . 03C6 add eax,esi
55DE0074 . 3BFE cmp edi,esi
55DE0076 . 76 08 jbe short Flash32_.55DE0080
55DE0078 . 3BF8 cmp edi,eax
55DE007A . 0F82 A4010000 jb Flash32_.55DE0224
55DE0080 > 81F9 00010000 cmp ecx,0x100
55DE0086 . 72 1F jb short Flash32_.55DE00A7
55DE0088 . 833D C8CB7156>cmp dword ptr ds:[0x5671CBC8],0x0
55DE008F . 74 16 je short Flash32_.55DE00A7
55DE0091 . 57 push edi
55DE0092 . 56 push esi
55DE0093 . 83E7 0F and edi,0xF
55DE0096 . 83E6 0F and esi,0xF
55DE0099 . 3BFE cmp edi,esi
55DE009B . 5E pop esi
55DE009C . 5F pop edi
55DE009D . 75 08 jnz short Flash32_.55DE00A7
55DE009F . 5E pop esi
55DE00A0 . 5F pop edi
55DE00A1 . 5D pop ebp
55DE00A2 . E9 0EB70000 jmp Flash32_.55DEB7B5
55DE00A7 > F7C7 03000000 test edi,0x3
55DE00AD . 75 15 jnz short Flash32_.55DE00C4
55DE00AF . C1E9 02 shr ecx,0x2
55DE00B2 . 83E2 03 and edx,0x3
55DE00B5 . 83F9 08 cmp ecx,0x8
55DE00B8 . 72 2A jb short Flash32_.55DE00E4
55DE00BA . F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
55DE00BC . FF2495 D401DE>jmp dword ptr ds:[edx*4+0x55DE01D4]
55DE00C3 90 nop
55DE00C4 > 8BC7 mov eax,edi
55DE00C6 . BA 03000000 mov edx,0x3
55DE00CB . 83E9 04 sub ecx,0x4
55DE00CE . 72 0C jb short Flash32_.55DE00DC
55DE00D0 . 83E0 03 and eax,0x3
55DE00D3 . 03C8 add ecx,eax
55DE00D5 . FF2485 E800DE>jmp dword ptr ds:[eax*4+0x55DE00E8]
55DE00DC > FF248D E401DE>jmp dword ptr ds:[ecx*4+0x55DE01E4]
55DE00E3 90 nop
55DE00E4 > FF248D 6801DE>jmp dword ptr ds:[ecx*4+0x55DE0168]
55DE00EB 90 db 90
55DE00EC . F800DE55 dd Flash32_.55DE00F8 ; 分支表 (1-based) 被用于 55DE00D5
55DE00F0 . 2401DE55 dd Flash32_.55DE0124
55DE00F4 . 4801DE55 dd Flash32_.55DE0148
55DE00F8 > 23D1 and edx,ecx
55DE00FA . 8A06 mov al,byte ptr ds:[esi]
55DE00FC . 8807 mov byte ptr ds:[edi],al
55DE00FE . 8A46 01 mov al,byte ptr ds:[esi+0x1]
55DE0101 . 8847 01 mov byte ptr ds:[edi+0x1],al
55DE0104 . 8A46 02 mov al,byte ptr ds:[esi+0x2]
55DE0107 . C1E9 02 shr ecx,0x2
55DE010A . 8847 02 mov byte ptr ds:[edi+0x2],al
55DE010D . 83C6 03 add esi,0x3
55DE0110 . 83C7 03 add edi,0x3
55DE0113 . 83F9 08 cmp ecx,0x8
55DE0116 .^ 72 CC jb short Flash32_.55DE00E4
55DE0118 . F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
55DE011A . FF2495 D401DE>jmp dword ptr ds:[edx*4+0x55DE01D4]
55DE0121 8D49 00 lea ecx,dword ptr ds:[ecx]
55DE0124 > 23D1 and edx,ecx
55DE0126 . 8A06 mov al,byte ptr ds:[esi]
55DE0128 . 8807 mov byte ptr ds:[edi],al
55DE012A . 8A46 01 mov al,byte ptr ds:[esi+0x1]
55DE012D . C1E9 02 shr ecx,0x2
55DE0130 . 8847 01 mov byte ptr ds:[edi+0x1],al
55DE0133 . 83C6 02 add esi,0x2
55DE0136 . 83C7 02 add edi,0x2
55DE0139 . 83F9 08 cmp ecx,0x8
55DE013C .^ 72 A6 jb short Flash32_.55DE00E4
55DE013E . F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
55DE0140 . FF2495 D401DE>jmp dword ptr ds:[edx*4+0x55DE01D4]
55DE0147 90 nop
55DE0148 > 23D1 and edx,ecx
55DE014A . 8A06 mov al,byte ptr ds:[esi]
55DE014C . 8807 mov byte ptr ds:[edi],al
55DE014E . 83C6 01 add esi,0x1
55DE0151 . C1E9 02 shr ecx,0x2
55DE0154 . 83C7 01 add edi,0x1
55DE0157 . 83F9 08 cmp ecx,0x8
55DE015A .^ 72 88 jb short Flash32_.55DE00E4
55DE015C . F3:A5 rep movs dword ptr es:[edi],dword ptr ds:[esi]
55DE015E . FF2495 D401DE>jmp dword ptr ds:[edx*4+0x55DE01D4]
55DE0165 8D49 00 lea ecx,dword ptr ds:[ecx]
55DE0168 . CB01DE55 dd Flash32_.55DE01CB ; 分支表 被用于 55DE00E4
55DE016C . B801DE55 dd Flash32_.55DE01B8
55DE0170 . B001DE55 dd Flash32_.55DE01B0
55DE0174 . A801DE55 dd Flash32_.55DE01A8
55DE0178 . A001DE55 dd Flash32_.55DE01A0
55DE017C . 9801DE55 dd Flash32_.55DE0198
55DE0180 . 9001DE55 dd Flash32_.55DE0190
55DE0184 . 8801DE55 dd Flash32_.55DE0188
55DE0188 > 8B448E E4 mov eax,dword ptr ds:[esi+ecx*4-0x1C]
55DE018C . 89448F E4 mov dword ptr ds:[edi+ecx*4-0x1C],eax
55DE0190 > 8B448E E8 mov eax,dword ptr ds:[esi+ecx*4-0x18]
55DE0194 . 89448F E8 mov dword ptr ds:[edi+ecx*4-0x18],eax
55DE0198 > 8B448E EC mov eax,dword ptr ds:[esi+ecx*4-0x14]
55DE019C . 89448F EC mov dword ptr ds:[edi+ecx*4-0x14],eax
55DE01A0 > 8B448E F0 mov eax,dword ptr ds:[esi+ecx*4-0x10]
55DE01A4 . 89448F F0 mov dword ptr ds:[edi+ecx*4-0x10],eax
55DE01A8 > 8B448E F4 mov eax,dword ptr ds:[esi+ecx*4-0xC]
55DE01AC . 89448F F4 mov dword ptr ds:[edi+ecx*4-0xC],eax
55DE01B0 > 8B448E F8 mov eax,dword ptr ds:[esi+ecx*4-0x8]
55DE01B4 . 89448F F8 mov dword ptr ds:[edi+ecx*4-0x8],eax
55DE01B8 > 8B448E FC mov eax,dword ptr ds:[esi+ecx*4-0x4]
55DE01BC . 89448F FC mov dword ptr ds:[edi+ecx*4-0x4],eax
55DE01C0 . 8D048D 000000>lea eax,dword ptr ds:[ecx*4]
55DE01C7 . 03F0 add esi,eax
55DE01C9 . 03F8 add edi,eax
55DE01CB > FF2495 D401DE>jmp dword ptr ds:[edx*4+0x55DE01D4]
55DE01D2 8BFF mov edi,edi
55DE01D4 . E401DE55 dd Flash32_.55DE01E4 ; 分支表 被用于 55DE011A
55DE01D8 . EC01DE55 dd Flash32_.55DE01EC
55DE01DC . F801DE55 dd Flash32_.55DE01F8
55DE01E0 . 0C02DE55 dd Flash32_.55DE020C
55DE01E4 > 8B45 08 mov eax,dword ptr ss:[ebp+0x8]
55DE01E7 . 5E pop esi
55DE01E8 . 5F pop edi
55DE01E9 . C9 leave
55DE01EA . C3 retn



这样的是明文call吗
2016-12-16 10:33
0
游客
登录 | 注册 方可回帖
返回
//