能力值:
( LV4,RANK:50 )
|
-
-
2 楼
调用约定常年的有三种:__cdecl,__stdcal,__fastcall。三种模式均遵守从右向左入栈,其中__cdecl处理堆栈平衡的手段为外平栈,__stdcall和__fastcall处理堆栈平衡的手段为内平栈。而__stdcall与__fastcall的不同点在于,__fastcall在处理传参时,前俩个参数用寄存器ecx和edx来处理,处理效率更高。而stdcall统一用堆栈处理,不占用寄存器,效率略低。但是,__fastcall只有前俩个参数是用寄存器的,若传参数量超过俩个,也是要用堆栈的,超过俩个参数的采用fastcall意义不大。
看汇编的样子,你这个 0x0040C150 应该是__fastcall. 你应该去分析ecx,edx的值加到你的汇编去 mov eax,aStr //部位字符串 mov ebp, ColNo //列号 ,这里最好不要赋值给ebp,随便改个寄存器就行 mov edi,RowNo //行号
mov ecx,$004101CC 你是模拟call,这里不需要跳转 jmp ecx
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
thiscall,也就是比fastcall少个edx参数 int __thiscall sub_40C150(DWORD *_this, int RowNo, int ColNo, int aStr);
|
能力值:
( LV5,RANK:65 )
|
-
-
4 楼
你有POPAD 但是没见你有PUSHAD啊,其它的不好说 你这是织毛衣那种东西吧,导出的EXECL格式是固定的,可以直接修改EXECL用程序处理 用ADO的方式打开EXECL,就可以像数据库一样读写
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
lononan
thiscall,也就是比fastcall少个edx参数
int __thiscall sub_40C150(DWORD *_this, int RowNo, int ColNo, int aStr ...
把EBP改成EBX, 去掉后两句 mov ecx,$004101CC 你是模拟call,这里不需要跳转 jmp ecx A程序不崩溃了,但是没有发送成功
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
gamehack
你有POPAD 但是没见你有PUSHAD啊,其它的不好说
你这是织毛衣那种东西吧,导出的EXECL格式是固定的,可以直接修改EXECL用程序处理
用ADO的方式打开EXECL,就可以像数据库一样读 ...
有PUSHAD asm pushad mov eax,aStr //部位字符串 mov ebp, ColNo //列号 mov edi,RowNo //行号
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
gamehack
你有POPAD 但是没见你有PUSHAD啊,其它的不好说
你这是织毛衣那种东西吧,导出的EXECL格式是固定的,可以直接修改EXECL用程序处理
用ADO的方式打开EXECL,就可以像数据库一样读 ...
在OD中修改文件可以导入修改后的文件
procedure LoadFile(aStr: PAnsiChar);stdcall; begin asm pushad push 0 push 0 mov ecx,aStr //xls文件 push ecx mov eax,$004CA560 call eax popad end; end;
没有成功
最后于 2022-10-16 10:45
被JJGuo编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
JJGuo
gamehack
你有POPAD 但是没见你有PUSHAD啊,其它的不好说
你这是织毛衣那种东西吧,导出的EXECL格式是固定的,可以直接修改E ...
你要把字符串全部换成 PWideChar 类型就能成功了. 注意他的传入是 UNICODE
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
Mxixihaha
你要把字符串全部换成 PWideChar 类型就能成功了. 注意他的传入是 UNICODE
大佬我转成PWideChar后也没有搞成功,
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
JJGuo
大佬我转成PWideChar后也没有搞成功,
你那段是打开文件, 并且你还得把前几个CALL加进去初始化OLE 你这个地方仅仅是打开文件,下面的代码才是加入信息.
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
求大佬帮忙,实在搞不定
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
使用键盘模拟输入,直接向窗口B的单元格输入数据。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
得到窗口B的句柄。 得到表格的位置,测量表格的宽度, 高一般是19pix, 就可以遍历表格了。 输入数据时记录输入的行数行,即鼠标Y值, 当达到表格高度 的一定量的,向下滚动。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
goldli
得到窗口B的句柄。 得到表格的位置,测量表格的宽度, 高一般是19pix, 就可以遍历表格了。 输入数据时记录输入的行数行,即鼠标Y值, 当达到表格高度 的一定量的,向下滚动。
用键盘模拟输入,已经实现,效果感觉不大好,特别是第一列,需要模拟鼠标双击,放弃了
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
JJGuo
用键盘模拟输入,已经实现,效果感觉不大好,特别是第一列,需要模拟鼠标双击,放弃了
这种没保护的窗口,sendmessage可以实现后台输入
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
B窗口句柄可以取到,表格的句柄也可取到,但是要发给指定的单元格句柄怎么取呢 已经开新贴增加赏金200雪花,
最后于 2022-10-17 13:11
被JJGuo编辑
,原因:
|
能力值:
( LV6,RANK:93 )
|
-
-
17 楼
找到获取ecx的方法了,楼主试试这个呢,源码也可以立即放上来,看私下发还是直接发上来。
最后于 2022-10-21 10:09
被lynnux编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
lynnux
找到获取ecx的方法了,楼主试试这个呢,源码也可以立即放上来,看私下发还是直接发上来。 大佬,是用什么语言写的?私发
最后于 2022-10-20 12:39
被JJGuo编辑
,原因:
|
能力值:
( LV6,RANK:93 )
|
-
-
19 楼
JJGuo
lynnux
找到获取ecx的方法了,楼主试试这个呢,源码也可以立即放上来,看私下发还是直接发上来。 大佬,是用什么语言写的?私发 C++源码私你了,转delphi应该不难,原理写在hook.cpp里了
最后于 2022-10-20 12:52
被lynnux编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
楼下已实现获取内容.
最后于 2022-10-21 08:41
被Mxixihaha编辑
,原因:
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
Mxixihaha
随便写了个demo给你. 没有调用CALL那些
大佬,可以用apj取指定单元格的值吗
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
Mxixihaha
随便写了个demo给你. 没有调用CALL那些
Mxixihaha 大佬,打开尺寸表后,先初始化,后点设置,表格上没有数据上去 打开尺寸表后,不点初始化,直接点设置,也没有数据上去
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
JJGuo
Mxixihaha 大佬,打开尺寸表后,先初始化,后点设置,表格上没有数据上去打开尺寸表后,不点初始化,直接点设置,也没有数据上去 既然是Demo肯定不会是你所要的逻辑与需求. 初始化的位置可以在任何地方, Demo选择了在程序启动后第一时间操作.
获取内容版. 你自己研究研究, 我只是用Demo告诉你一切都可以实现. 仅此而已
Demo已经实现和上传给你研究, 不会再回复帖子.
最后于 2022-10-21 08:42
被Mxixihaha编辑
,原因:
|
|
|