吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1193|回复: 5
收起左侧

[求助] 通过编程获取某程序中实时改变的数值该如何实现?求解答

[复制链接]
张继天 发表于 2020-7-6 22:02
单位的一个程序
程序中有很多数据在实时变化
之前通过CE查找内存地址后
用VB编写的可以同步获取到数据值
但当单位的这个程序关闭重新打开后,内存中的地址变化了
用CE查看并没有发现改写数据的地址,但数据却发生变化了
这是本人之前发的求助帖https://www.52pojie.cn/thread-1023747-1-1.html

单位程序运行的界面(出于保密,谅解我对文字部分大码)
I1.JPG

这个是自己写的获取数据的程序

自己写的

自己写的


图中的地址&HE34B3F8、&HE34B6F0、&HE34B9D8、&HE34BCC0都是当时用CE获取的
由于自身基础薄弱,对汇编语言分析能力不够,找不到数据的基址…
这个事情一直困扰本人很久,成了一桩心事

单位这个程序是用VB写的,源码是肯定得不到的…用VBDecompilerPro反编译到窗口的时候假死了
用VBRezQ反编译后能看到程序窗体、控件名称

反编译的窗口

反编译的窗口


也能看到一些反编译出来的操作码(应该是这样描述吧)

反编译出来的操作码

反编译出来的操作码


[Asm] 纯文本查看 复制代码
'N push ebp
'N mov ebp, esp
'N sub esp, 0Ch
'N push L004467A6
'N  * ref: __vbaExceptHandler
'N mov eax, dword ptr fs:[L00000000]
'N push eax
'N mov dword ptr fs:[L00000000], esp
'N sub esp, 68h
'N push ebx
'N push esi
'N push edi
'N mov dword ptr [ebp-0Ch], esp
'N mov dword ptr [ebp-8], L00409440
'N mov esi, dword ptr [ebp+8]
'N mov eax, esi
'N and eax, 1
'N mov dword ptr [ebp-4], eax
'N and esi, -2
'N push esi
'N mov dword ptr [ebp+8], esi
'N mov ecx, dword ptr [esi]
'N call dword ptr [ecx+4]
'N xor eax, eax
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-18h], eax
'N mov dword ptr [ebp-1Ch], eax
'N mov dword ptr [ebp-20h], eax
'N mov dword ptr [ebp-24h], eax
'N mov dword ptr [ebp-34h], eax
'N mov dword ptr [ebp-58h], eax
'N mov word ptr [esi+34h], ax
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N mov edi, dword ptr [L00401108]
'N  * ref: __vbaObjSet
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-1Ch]
'N push eax
'N call L0101B080
'N  * ref: Subr_042
'N mov ebx, dword ptr [L00401444]
'N  * ref: __vbaFreeObj
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N cmp word ptr [L01754A42], 0
'N jnz L010ADC1D
'N cmp word ptr [L01754AE4], 0
'N jz L010ADC49
'N cmp word ptr [L01754B18], 0
'N jz L010ADC1D
'N cmp word ptr [L01754A44], 0
'N jnz L010ADC49
'N
'N L010ADC1D:
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 5
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N lea edx, dword ptr [ebp-58h]
'N lea eax, dword ptr [ebp-1Ch]
'N push edx
'N push eax
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010ADC49:
'N cmp word ptr [L01754A92], 0
'N jz L010ADF4D
'N mov al, dword ptr [L01754C74]
'N test al, al
'N jnz L010ADCA3
'N cmp word ptr [L01754B68], 0
'N jnz L010ADC9B
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 0Bh
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N lea edx, dword ptr [ebp-58h]
'N lea eax, dword ptr [ebp-1Ch]
'N push edx
'N push eax
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N jmp L010ADE6C
'N
'N L010ADC9B:
'N test al, al
'N jz L010ADE6C
'N
'N L010ADCA3:
'N sub esp, 10h
'N mov ecx, 2
'N mov edx, esp
'N mov eax, 0Bh
'N push 68030000h
'N push esi
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-40h]
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-38h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+300h]
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N mov eax, dword ptr [L0177FB58]
'N test eax, eax
'N jnz L010ADCFD
'N push 177FB58h
'N push L005DFD44
'N call dword ptr [L00401308]
'N  * ref: __vbaNew2
'N
'N L010ADCFD:
'N mov eax, dword ptr [L0177FB58]
'N lea edx, dword ptr [ebp-58h]
'N push edx
'N push eax
'N mov ecx, dword ptr [eax]
'N mov dword ptr [ebp-5Ch], eax
'N call dword ptr [ecx+74h]
'N test eax, eax
'N fnclex
'N jge L010ADD27
'N mov ecx, dword ptr [ebp-5Ch]
'N push 74h
'N push L005DFD34
'N push ecx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010ADD27:
'N mov eax, dword ptr [L0177FB58]
'N test eax, eax
'N jnz L010ADD40
'N push 177FB58h
'N push L005DFD44
'N call dword ptr [L00401308]
'N  * ref: __vbaNew2
'N
'N L010ADD40:
'N mov eax, dword ptr [L0177FB58]
'N lea ecx, dword ptr [ebp-1Ch]
'N push ecx
'N push eax
'N mov edx, dword ptr [eax]
'N mov dword ptr [ebp-64h], eax
'N call dword ptr [edx+24h]
'N test eax, eax
'N fnclex
'N jge L010ADD6A
'N mov edx, dword ptr [ebp-64h]
'N push 24h
'N push L005DFD34
'N push edx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010ADD6A:
'N mov eax, dword ptr [ebp-1Ch]
'N mov edx, dword ptr [ebp-58h]
'N push 65Dh
'N push 1
'N mov ecx, dword ptr [eax]
'N push edx
'N push eax
'N mov dword ptr [ebp-6Ch], eax
'N call dword ptr [ecx+38h]
'N test eax, eax
'N fnclex
'N jge L010ADD99
'N mov ecx, dword ptr [ebp-6Ch]
'N push 38h
'N push L005DFD54
'N push ecx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010ADD99:
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N mov eax, dword ptr [L0177FB58]
'N test eax, eax
'N jnz L010ADDB7
'N push 177FB58h
'N push L005DFD44
'N call dword ptr [L00401308]
'N  * ref: __vbaNew2
'N
'N L010ADDB7:
'N mov eax, dword ptr [L0177FB58]
'N lea ecx, dword ptr [ebp-1Ch]
'N push ecx
'N push eax
'N mov edx, dword ptr [eax]
'N mov dword ptr [ebp-5Ch], eax
'N call dword ptr [edx+24h]
'N test eax, eax
'N fnclex
'N jge L010ADDE1
'N mov edx, dword ptr [ebp-5Ch]
'N push 24h
'N push L005DFD34
'N push edx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010ADDE1:
'N mov eax, dword ptr [ebp-1Ch]
'N lea edx, dword ptr [ebp-18h]
'N push edx
'N push eax
'N mov ecx, dword ptr [eax]
'N mov dword ptr [ebp-64h], eax
'N call dword ptr [ecx+2Ch]
'N test eax, eax
'N fnclex
'N jge L010ADE09
'N mov ecx, dword ptr [ebp-64h]
'N push 2Ch
'N push L005DFD54
'N push ecx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010ADE09:
'N sub esp, 10h
'N mov eax, dword ptr [ebp-18h]
'N mov edx, esp
'N mov ecx, 8
'N mov dword ptr [ebp-34h], ecx
'N mov dword ptr [ebp-2Ch], eax
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-30h]
'N push 68030002h
'N push esi
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [ebp-18h], 0
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-28h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+300h]
'N lea edx, dword ptr [ebp-20h]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea eax, dword ptr [ebp-20h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N push 2
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 0Ch
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N
'N L010ADE6C:
'N cmp word ptr [L01754A44], 0
'N jz L010ADEDA
'N cmp word ptr [L01754B66], 0
'N jnz L010ADEAC
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 6
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010ADEAC:
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 7
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N jmp L010ADEE4
'N
'N L010ADEDA:
'N cmp word ptr [L01754C8C], 0
'N jz L010ADF10
'N
'N L010ADEE4:
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 8
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010ADF10:
'N cmp word ptr [L01754C72], 0
'N jnz L010AE081
'N cmp word ptr [L01754D1A], 0
'N jnz L010AE081
'N cmp word ptr [L01754D54], 0
'N jnz L010AE081
'N cmp word ptr [L01754D5C], 0
'N jnz L010AE081
'N jmp L010AE055
'N
'N L010ADF4D:
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 6
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 7
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 8
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 9
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 0Ah
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 0Bh
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010AE055:
'N push L005DFCB8
'N push esi
'N mov dword ptr [ebp-58h], 0Ch
'N call dword ptr [L004013D8]
'N  * ref: __vbaCastObj
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N lea eax, dword ptr [ebp-58h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call L0101BB20
'N  * ref: Subr_044
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010AE081:
'N cmp word ptr [L01754A84], 0
'N jz L010AE0CA
'N sub esp, 10h
'N mov ecx, 0Bh
'N mov edx, esp
'N or eax, -1
'N push 80010007h
'N push esi
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-40h]
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-38h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+2FCh]
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N
'N L010AE0CA:
'N cmp word ptr [L01754D2E], 0
'N jz L010AE105
'N sub esp, 10h
'N mov ecx, 0Bh
'N mov edx, esp
'N or eax, -1
'N mov dword ptr [ebp-3Ch], eax
'N push 80010007h
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-40h]
'N push esi
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-38h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+320h]
'N jmp L010AE177
'N
'N L010AE105:
'N sub esp, 10h
'N mov ecx, 4
'N mov edx, esp
'N mov eax, 40C00000h
'N push 80010003h
'N push esi
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-40h]
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-38h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+328h]
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N sub esp, 10h
'N mov ecx, 4
'N mov edx, esp
'N mov eax, 44938000h
'N mov dword ptr [ebp-3Ch], eax
'N push 80010005h
'N mov dword ptr [edx], ecx
'N mov ecx, dword ptr [ebp-40h]
'N push esi
'N mov dword ptr [edx+4], ecx
'N mov ecx, dword ptr [esi]
'N mov dword ptr [edx+8], eax
'N mov eax, dword ptr [ebp-38h]
'N mov dword ptr [edx+0Ch], eax
'N call dword ptr [ecx+328h]
'N
'N L010AE177:
'N lea edx, dword ptr [ebp-1Ch]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea ecx, dword ptr [ebp-1Ch]
'N call ebx
'N call L01021DF0
'N  * ref: Subr_061
'N mov word ptr [ebp-3Ch], ax
'N mov eax, dword ptr [esi]
'N push esi
'N call dword ptr [eax+304h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N mov ebx, eax
'N lea eax, dword ptr [ebp-20h]
'N push eax
'N push 0
'N mov edx, dword ptr [ebx]
'N push ebx
'N call dword ptr [edx+40h]
'N test eax, eax
'N fnclex
'N jge L010AE1C6
'N push 40h
'N push L005DFCD8
'N push ebx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010AE1C6:
'N mov edx, dword ptr [ebp-40h]
'N sub esp, 10h
'N mov ecx, esp
'N mov eax, 2
'N push 8
'N push L005E0154
'N mov dword ptr [ecx], eax
'N mov eax, dword ptr [ebp-3Ch]
'N push 0
'N push 68030004h
'N mov dword ptr [ecx+4], edx
'N mov edx, dword ptr [ebp-38h]
'N mov dword ptr [ecx+8], eax
'N mov eax, dword ptr [ebp-20h]
'N push eax
'N mov dword ptr [ecx+0Ch], edx
'N lea ecx, dword ptr [ebp-34h]
'N push ecx
'N call dword ptr [L00401218]
'N  * ref: __vbaLateIdCallLd
'N add esp, 10h
'N push eax
'N call dword ptr [L004011F8]
'N  * ref: __vbaCastObjVar
'N lea edx, dword ptr [ebp-24h]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea eax, dword ptr [ebp-24h]
'N lea ecx, dword ptr [ebp-20h]
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push ecx
'N push edx
'N push 3
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 10h
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N call L01021DF0
'N  * ref: Subr_061
'N mov word ptr [ebp-3Ch], ax
'N mov eax, dword ptr [esi]
'N push esi
'N call dword ptr [eax+304h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N mov ebx, eax
'N lea eax, dword ptr [ebp-20h]
'N push eax
'N push 1
'N mov edx, dword ptr [ebx]
'N push ebx
'N call dword ptr [edx+40h]
'N test eax, eax
'N fnclex
'N jge L010AE274
'N push 40h
'N push L005DFCD8
'N push ebx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010AE274:
'N mov edx, dword ptr [ebp-40h]
'N sub esp, 10h
'N mov ecx, esp
'N mov eax, 2
'N push 8
'N push L005E0154
'N mov dword ptr [ecx], eax
'N mov eax, dword ptr [ebp-3Ch]
'N push 0
'N push 68030004h
'N mov dword ptr [ecx+4], edx
'N mov edx, dword ptr [ebp-38h]
'N mov dword ptr [ecx+8], eax
'N mov eax, dword ptr [ebp-20h]
'N push eax
'N mov dword ptr [ecx+0Ch], edx
'N lea ecx, dword ptr [ebp-34h]
'N push ecx
'N call dword ptr [L00401218]
'N  * ref: __vbaLateIdCallLd
'N add esp, 10h
'N push eax
'N call dword ptr [L004011F8]
'N  * ref: __vbaCastObjVar
'N lea edx, dword ptr [ebp-24h]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea eax, dword ptr [ebp-24h]
'N lea ecx, dword ptr [ebp-20h]
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push ecx
'N push edx
'N push 3
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 10h
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N call L01021DF0
'N  * ref: Subr_061
'N mov word ptr [ebp-3Ch], ax
'N mov eax, dword ptr [esi]
'N push esi
'N call dword ptr [eax+304h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N mov ebx, eax
'N lea eax, dword ptr [ebp-20h]
'N push eax
'N push 2
'N mov edx, dword ptr [ebx]
'N push ebx
'N call dword ptr [edx+40h]
'N test eax, eax
'N fnclex
'N jge L010AE322
'N push 40h
'N push L005DFCD8
'N push ebx
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010AE322:
'N mov edx, dword ptr [ebp-40h]
'N sub esp, 10h
'N mov ecx, esp
'N mov eax, 2
'N mov ebx, dword ptr [L00401218]
'N  * ref: __vbaLateIdCallLd
'N push 8
'N mov dword ptr [ecx], eax
'N mov eax, dword ptr [ebp-3Ch]
'N push L005E0154
'N push 0
'N mov dword ptr [ecx+4], edx
'N mov edx, dword ptr [ebp-38h]
'N push 68030004h
'N mov dword ptr [ecx+8], eax
'N mov eax, dword ptr [ebp-20h]
'N push eax
'N mov dword ptr [ecx+0Ch], edx
'N lea ecx, dword ptr [ebp-34h]
'N push ecx
'N call ebx
'N add esp, 10h
'N push eax
'N call dword ptr [L004011F8]
'N  * ref: __vbaCastObjVar
'N lea edx, dword ptr [ebp-24h]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea eax, dword ptr [ebp-24h]
'N lea ecx, dword ptr [ebp-20h]
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push ecx
'N push edx
'N push 3
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 10h
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N call L01021DF0
'N  * ref: Subr_061
'N mov word ptr [ebp-3Ch], ax
'N mov eax, dword ptr [esi]
'N push esi
'N call dword ptr [eax+304h]
'N lea ecx, dword ptr [ebp-1Ch]
'N push eax
'N push ecx
'N call edi
'N mov esi, eax
'N lea eax, dword ptr [ebp-20h]
'N push eax
'N push 3
'N mov edx, dword ptr [esi]
'N push esi
'N call dword ptr [edx+40h]
'N test eax, eax
'N fnclex
'N jge L010AE3D2
'N push 40h
'N push L005DFCD8
'N push esi
'N push eax
'N call dword ptr [L004010C0]
'N  * ref: __vbaHresultCheckObj
'N
'N L010AE3D2:
'N mov edx, dword ptr [ebp-40h]
'N sub esp, 10h
'N mov ecx, esp
'N mov eax, 2
'N push 8
'N push L005E0154
'N mov dword ptr [ecx], eax
'N mov eax, dword ptr [ebp-3Ch]
'N push 0
'N push 68030004h
'N mov dword ptr [ecx+4], edx
'N mov edx, dword ptr [ebp-38h]
'N mov dword ptr [ecx+8], eax
'N mov eax, dword ptr [ebp-20h]
'N push eax
'N mov dword ptr [ecx+0Ch], edx
'N lea ecx, dword ptr [ebp-34h]
'N push ecx
'N call ebx
'N add esp, 10h
'N push eax
'N call dword ptr [L004011F8]
'N  * ref: __vbaCastObjVar
'N lea edx, dword ptr [ebp-24h]
'N push eax
'N push edx
'N call edi
'N push eax
'N call dword ptr [L00401400]
'N  * ref: __vbaLateIdSt
'N lea eax, dword ptr [ebp-24h]
'N lea ecx, dword ptr [ebp-20h]
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push ecx
'N push edx
'N push 3
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 10h
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N mov dword ptr [ebp-4], 0
'N wait
'N push L010AE47A
'N jmp L010AE479
'N lea ecx, dword ptr [ebp-18h]
'N call dword ptr [L00401448]
'N  * ref: __vbaFreeStr
'N lea eax, dword ptr [ebp-24h]
'N lea ecx, dword ptr [ebp-20h]
'N push eax
'N lea edx, dword ptr [ebp-1Ch]
'N push ecx
'N push edx
'N push 3
'N call dword ptr [L00401070]
'N  * ref: __vbaFreeObjList
'N add esp, 10h
'N lea ecx, dword ptr [ebp-34h]
'N call dword ptr [L00401030]
'N  * ref: __vbaFreeVar
'N ret
'N
'N L010AE479:
'N ret
'N
'N L010AE47A:
'N mov eax, dword ptr [ebp+8]
'N push eax
'N mov ecx, dword ptr [eax]
'N call dword ptr [ecx+8]
'N mov eax, dword ptr [ebp-4]
'N mov ecx, dword ptr [ebp-14h]
'N pop edi
'N pop esi
'N mov dword ptr fs:[L00000000], ecx
'N pop ebx
'N mov esp, ebp
'N pop ebp
'N ret 4



由于思路进入了死胡同,不知道能否通过反编译出来的操作码找到基址,通过编程实现不管是否重新打开单位的程序都能准确获取数据?
愿意用我所有的CB被指点迷津,学习破解和编程的思路。谢谢!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qylisten 发表于 2020-7-6 22:17
能不能通过控件的句柄查找它的实时值? (text属性或caption属性)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
张继天 + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| 张继天 发表于 2020-7-6 22:20
qylisten 发表于 2020-7-6 22:17
能不能通过控件的句柄查找它的实时值? (text属性或caption属性)

我记得之前我好像是看过句柄,句柄是可以显示出来数据实时值,但好像重新打开程序以后句柄也变化了。这个我有些记不清了,哪天我再试试,感谢
315215 发表于 2020-7-6 22:28
张继天 发表于 2020-7-6 22:20
我记得之前我好像是看过句柄,句柄是可以显示出来数据实时值,但好像重新打开程序以后句柄也变化了。这个 ...

如果可以通过句柄显示数据的,君子就简单了,控件都是有属性的,通过枚举出来就行了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
张继天 + 1 + 1 谢谢@Thanks!

查看全部评分

cube 发表于 2020-7-6 23:40
首先想到的应该是通过窗体/控件句柄来获取显示的数据,参考GetWindowTextA
正如你所说,每次重新打开,句柄都会变.那么自然的,你应该会想到应该不断的获取窗体句柄,遍历控件句柄,然后获取数据. 参考EnumWindows Findwindow FlndWindowEx
如果你觉得不断的遍历有失coder身份,或者你获取的数据并没有在软件中显示出来. 你可以Hook它的窗口过程/窗口消息  参考SetWindowsHookEx UnhookWindowsHookEx

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
张继天 + 1 + 1 谢谢@Thanks!

查看全部评分

b0y 发表于 2020-7-7 11:31
动态寻找窗口 获取句柄和子句柄 然后读取内容就好了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
张继天 + 1 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 14:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表