ARC_xp_20160526
1、CE 写入时的指令(CE 搜到的第一个地址,∵测试了一下 CE修改第1个地址指向的内容时,发送的就是修改后的内容。只修改 第2个地址的话 没效果)
1.1、输入的时候:
78AA1FD8 - 89 44 8F FC - mov [edi+ecx*4-04],eax
78AA1FD0 - 89 44 8F F8 - mov [edi+ecx*4-08],eax
78AA1FC8 - 89 44 8F F4 - mov [edi+ecx*4-0C],eax
78AA1FC0 - 89 44 8F F0 - mov [edi+ecx*4-10],eax
78AA1FB8 - 89 44 8F EC - mov [edi+ecx*4-14],eax
78AA1FB0 - 89 44 8F E8 - mov [edi+ecx*4-18],eax
78AA1FA8 - 89 44 8F E4 - mov [edi+ecx*4-1C],eax
78AA1ED5 - 72 29 - jb 78AA1F00
1.2、发送的时候:
01111590 - 8B 0A - mov ecx,[edx]
011164C4 - 8B 0C AF - mov ecx,[edi+ebp*4]
011148C1 - C7 04 08 00000000 - mov [eax+ecx],00000000
1.3、
2、OD 找到的 按键时调用的CALL(此时 输入框是激活状态)
2.1、父CALL
011B34CF CC INT3
011B34D0 . 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
011B34D4 . 8B49 04 MOV ECX,DWORD PTR DS:[ECX+4]
011B34D7 . 50 PUSH EAX
011B34D8 . FFD1 CALL ECX // ZC: 键盘按键时,调用的是 下面的0x00457740
011B34DA . 83C4 04 ADD ESP,4
011B34DD . C2 0400 RETN 4
2.2、子CALL
00457740 /. 55 PUSH EBP ; CEGUIBas.?EventKeyDown@Window@CEGUI@@2VString@2@B
00457741 |. 8BEC MOV EBP,ESP
00457743 |. 83E4 F8 AND ESP,FFFFFFF8
00457746 |. 6A FF PUSH -1
00457748 |. 68 58234F00 PUSH SupARC.004F2358
0045774D |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00457753 |. 50 PUSH EAX
00457754 |. 81EC 40010000 SUB ESP,140
0045775A |. A1 58FA5200 MOV EAX,DWORD PTR DS:[52FA58]
0045775F |. 33C4 XOR EAX,ESP
00457761 |. 898424 380100>MOV DWORD PTR SS:[ESP+138],EAX
00457768 |. 53 PUSH EBX
00457769 |. 56 PUSH ESI
0045776A |. 57 PUSH EDI
0045776B |. A1 58FA5200 MOV EAX,DWORD PTR DS:[52FA58]
00457770 |. 33C4 XOR EAX,ESP
00457772 |. 50 PUSH EAX
00457773 |. 8D8424 500100>LEA EAX,DWORD PTR SS:[ESP+150]
0045777A |. 64:A3 0000000>MOV DWORD PTR FS:[0],EAX
00457780 |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
00457783 |. 837B 10 1C CMP DWORD PTR DS:[EBX+10],1C
00457787 |. 0F85 97000000 JNZ SupARC.00457824
ZC: 这2个CALL 我是怎么找出来了 我都忘了... “bp sendto” 然后找父CALL 这个过程的期间找比较简单的CALL做测试?
ZC: 应该也是和CE找出来的内存做OD内存读取断点做配合 一起找的。
3、输入的中文
3.1、
我是中国人
11 62 00 00 2F 66 00 00 2D 4E 00 00 FD 56 00 00
BA 4E 00 00 00 00 00 00
4、
5、