能力值:
( LV2,RANK:10 )
|
-
-
2 楼
坐下学习,希望有所收获
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
先系统学下基础??
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
汉....来了个没基础的
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
恕吾天资愚钝,我实在没看懂LZ你要干么??
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我晕死,怎么这么多装/B的(除5楼)
第一,这不是破解。
第二,这是代码注入。
第三,别装/B好不,注入代码只是要几个参数而已!你会你就说出来,我将非常感谢!不说我也没求你,OK!
回5楼
先感谢你回帖,我说的是代码注入(简单说就是外挂原理,网上有很多代码注入器的),只是现在我想实现的是通过代码注入来调用LBUTTONDOWN事件。我语文功底不行,实在很抱歉!
|
能力值:
( LV5,RANK:70 )
|
-
-
7 楼
先取那个按钮的句柄,再向主窗口发送这个数据
SendMessage
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
感谢回帖!你说的是通过编程实现,但我想要的是通过调用它的汇编代码,直接运行LBUTTONDOWN事件!
|
能力值:
( LV5,RANK:70 )
|
-
-
9 楼
也可以啊,找到那个按钮的事件地址,要调用的话,直接一个JMP跳过去
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
JMP是不行的,只能Call,但Call是要参数的,我现在就是不知道这些参数是什么
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
我不知道你代码的意思,
0012FB7C 77D18734 /CALL 到 假定的 WinProc 来自 USER32.77D18731
0012FB80 00200928 |hWnd = 00200928 ('Button1',class='Button',parent=0031081A)
0012FB84 00000202 |Message = WM_LBUTTONUP
0012FB88 00000000 |Keys = 0
0012FB8C 001D0047 \X = 71. Y = 29.
没看到一句汇编代码
你可以直接加段代码给按钮发送一个鼠标按下消息
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
感谢回帖!这当然不是汇编代码,这是OD下断分析出来的,意思就是当前断下的77D3B036来自77D18731,他需要的参数在0012FB80这几个内存里面,77D18731的汇编代码在顶楼的下面已经贴出!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
这个好像是按钮的消息事件吧,利用SendMessag来向一个控件发送系统消息,目体消息的参数是什么,你要查下这个函数吧。
我也不是太懂,呵。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
谢谢回帖!但我不是想用编程实现,我想的是汇编,直接调用Call实现。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
直接调用CALL实现,不就是在CALL前面push参数么。
说实话,你这个问题我看不懂。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
你的意思是不是再写别外一个程序,来对刚才那个程序进行注入来达到按下按钮相同的效果。。就是弹出MESSAGEBOX框???
|
能力值:
( LV4,RANK:50 )
|
-
-
17 楼
其实1楼lz就已经说的很明白了 只是大家都不仔细看 ^_^
按钮事件是在消息循环里处理的 找到处理代码地址直接jmp过去就可以了 堆栈应该是平衡的
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
LZ你无视我11L最后一句了。。你可以找个空地方,写个SendMessageA,
要知道你这是要自己凭空产生一个按钮消息。
消息是由系统发给窗口处理函数进行处理的,你的代码很有可能就是在系统的领空
77D1870C $ 55 PUSH EBP
77D1870D . 8BEC MOV EBP,ESP
77D1870F . 56 PUSH ESI
77D18710 . 57 PUSH EDI
77D18711 . 53 PUSH EBX
77D18712 . 68 CDABBADC PUSH DCBAABCD
77D18717 . 56 PUSH ESI
77D18718 . FF75 18 PUSH DWORD PTR SS:[EBP+18]
77D1871B . FF75 14 PUSH DWORD PTR SS:[EBP+14]
77D1871E . FF75 10 PUSH DWORD PTR SS:[EBP+10]
77D18721 . FF75 0C PUSH DWORD PTR SS:[EBP+C]
77D18724 . 64:A1 1800000>MOV EAX,DWORD PTR FS:[18]
77D1872A . 8088 B40F0000>OR BYTE PTR DS:[EAX+FB4],1
77D18731 . FF55 08 CALL DWORD PTR SS:[EBP+8]
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
回16楼
就是这个意思
目前能做到的就是
push 140054;鼠标坐标
push 1
push 201
push 3065e
MOV EAX,7FFDD000
MOV ECX,40000000
MOV EBX,0
call 77d3b036
但这样必须要鼠标移动到按钮上才会想用LBUTTONDOWN事件,貌似push 140054无用
而且LBUTTONUP
push 140054;鼠标坐标
push 0
push 202
push 3065e
MOV EAX,7FFDD000
MOV ECX,40000000
MOV EBX,0
call 77d3b036
这样虽然能弹出MessageBox,但按下MessageBox确定后就会出错
LBUTTONUP出错解决,原来是少传了EDX值!
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
按钮事件的确是在消息循环里处理的。。而且LZ已经处理了消息,就是弹出一个对话框,
但是LZ是不要手动点击按钮,让程序自己点击,
不点击按钮就没有消息产生,所以,LZ这个问题是在问怎么产生一个按钮点击消息
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
我也不是太懂线程的注入,但看你上面的方法,那根本不对,因为你的两个程序的空间是隔离的,你后面那程方法能够弹出MESSAGEBOX框,肯定不是第一个程序的,而是你后面那个程序弹出的。。。
你现在要做的就是在第二个程序里向,第一个程序的按钮发送按下事件的消息。。。不要管他CALL不CALL的。。。。。。。。。
只能帮你到这里了,下面的我了不会了,
祝你好运。。
补充:
如果在同一程序里发送消息事件的话,就更容易了,,根本不需要注入!!!
直接SendMessageA消息就行了!!!
下面是在百度里搜的SendMessageA
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息指定信息。
IParam:指定附加的消息指定信息。
返回值:返回值指定消息处理的结果,依赖于所发送的消息。
备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
大哥,你理解错我的意思了,我不凭空产生一个按钮消息,而是代码注入,用另外一个程序去通过call去调用LBUTTONDOWN事件,而且看这地址就知道这代码就是在系统的领空。不过非常感谢你!
|
能力值:
( LV4,RANK:50 )
|
-
-
23 楼
...回帖速度真快
泥巴同学 楼主的意思你可能还没完全弄明白阿
楼主就是不要通过消息循环 而达到单击按钮的效果 意思也就是说 直接找到弹消息的代码地址 跳过去执行
感觉挺便扭的*__*'
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
汗,那我还真是不理解你的意思了,我等答案吧。。
上面这么多帖,我只看到xacker能明白你的意思。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
板凳学习哦,看看大牛们如何解决
|
|
|