我还以为他会用CreateProcess 不过在Ocx中不知道能否用这个创建子进程
主要是利用Ocx启动程序并且控制程序
工作需要我也需要用OCX控制EXE程序 如有朋友有这方面的经验告知一二多谢
100137D0 /$ 6A FF push -1
100137D2 |. 68 F61F0410 push 10041FF6 ; SE 处理程序安装
100137D7 |. 64:A1 00000000 mov eax, dword ptr fs:[0]
100137DD |. 50 push eax
100137DE |. 64:8925 00000000 mov dword ptr fs:[0], esp
100137E5 |. 81EC D0000000 sub esp, 0D0
100137EB |. 53 push ebx
100137EC |. 55 push ebp
100137ED |. 8BE9 mov ebp, ecx
100137EF |. 56 push esi
100137F0 |. 68 8C350510 push 1005358C ; ccupcam%d%c
100137F5 |. 8D4C24 14 lea ecx, dword ptr [esp+14]
100137F9 |. 33DB xor ebx, ebx
100137FB |. E8 87DD0100 call 10031587
10013800 |. 68 7C350510 push 1005357C ; /mutex_ccup_tcp
10013805 |. 6A 01 push 1 ; |InitialOwner = TRUE
10013807 |. 53 push ebx ; |pSecurity
10013808 |. 899C24 F0000000 mov dword ptr [esp+F0], ebx ; |
1001380F |. FF15 C8410410 call dword ptr [<&KERNEL32.CreateMutexA>] ; \CreateMutexA
10013815 |. 8BF0 mov esi, eax
10013817 |. FF15 C4410410 call dword ptr [<&KERNEL32.GetLastError>] ; [GetLastError
1001381D |. 3D B7000000 cmp eax, 0B7
10013822 |. 75 0E jnz short 10013832
10013824 |. 8B4424 10 mov eax, dword ptr [esp+10]
10013828 |. 50 push eax ; /Title
10013829 |. 53 push ebx ; |Class
1001382A |. FF15 E0440410 call dword ptr [<&USER32.FindWindowA>] ; \FindWindowA
10013830 |. 8BD8 mov ebx, eax
10013832 |> 56 push esi ; /hObject
10013833 |. FF15 98410410 call dword ptr [<&KERNEL32.CloseHandle>] ; \CloseHandle
10013839 |. 85DB test ebx, ebx
1001383B |. 0F85 9F000000 jnz 100138E0
10013841 |. 8B0D E4370510 mov ecx, dword ptr [100537E4] ; Ccuplst.100537F8
10013847 |. 57 push edi
10013848 |. 894C24 10 mov dword ptr [esp+10], ecx
1001384C |. 8D5424 18 lea edx, dword ptr [esp+18]
10013850 |. 68 C8000000 push 0C8 ; /BufSize = C8 (200.)
10013855 |. 52 push edx ; |Buffer
10013856 |. C68424 F0000000 01 mov byte ptr [esp+F0], 1 ; |
1001385E |. FF15 BC410410 call dword ptr [<&KERNEL32.GetSystemDirecto>; \GetSystemDirectoryA
10013864 |. BF 58350510 mov edi, 10053558 ; program files\ccupcam\ccupcam.exe
10013869 |. 83C9 FF or ecx, FFFFFFFF
1001386C |. 33C0 xor eax, eax
1001386E |. 8D5424 1B lea edx, dword ptr [esp+1B]
10013872 |. F2:AE repne scas byte ptr es:[edi]
10013874 |. F7D1 not ecx
10013876 |. 2BF9 sub edi, ecx
10013878 |. 885C24 1B mov byte ptr [esp+1B], bl
1001387C |. 8BC1 mov eax, ecx
1001387E |. 8BF7 mov esi, edi
10013880 |. 8BFA mov edi, edx
10013882 |. 6A 01 push 1
10013884 |. C1E9 02 shr ecx, 2
10013887 |. F3:A5 rep movs dword ptr es:[edi], dword ptr [es>
10013889 |. 8BC8 mov ecx, eax
1001388B |. 8B85 D4050000 mov eax, dword ptr [ebp+5D4]
10013891 |. 83E1 03 and ecx, 3
10013894 |. 50 push eax
10013895 |. F3:A4 rep movs byte ptr es:[edi], byte ptr [esi]
10013897 |. 8B8D D0050000 mov ecx, dword ptr [ebp+5D0]
1001389D |. 6A 01 push 1
1001389F |. 51 push ecx
100138A0 |. 8D4C24 28 lea ecx, dword ptr [esp+28]
100138A4 |. 51 push ecx
100138A5 |. 8D5424 24 lea edx, dword ptr [esp+24]
100138A9 |. 68 48350510 push 10053548 ; "%s" %s%c%s%c
100138AE |. 52 push edx
100138AF |. E8 7FC70100 call 10030033
100138B4 |. 8B85 B8010000 mov eax, dword ptr [ebp+1B8]
100138BA |. 83C4 1C add esp, 1C
100138BD |. 85C0 test eax, eax
100138BF |. 5F pop edi
100138C0 |. 74 0D je short 100138CF
100138C2 |. 8B4424 0C mov eax, dword ptr [esp+C]
100138C6 |. 6A 01 push 1 ; /ShowState = SW_SHOWNORMAL
100138C8 |. 50 push eax ; |CmdLine
100138C9 |. FF15 C0410410 call dword ptr [<&KERNEL32.WinExec>] ; \WinExec
100138CF |> 8D4C24 0C lea ecx, dword ptr [esp+C]
100138D3 |. C68424 E4000000 00 mov byte ptr [esp+E4], 0
100138DB |. E8 39DC0100 call 10031519
100138E0 |> 8D4C24 10 lea ecx, dword ptr [esp+10]
100138E4 |. C78424 E4000000 FF>mov dword ptr [esp+E4], -1
100138EF |. E8 25DC0100 call 10031519
100138F4 |. 8B8C24 DC000000 mov ecx, dword ptr [esp+DC]
100138FB |. 5E pop esi
100138FC |. 8BC3 mov eax, ebx
100138FE |. 5D pop ebp
100138FF |. 5B pop ebx
10013900 |. 64:890D 00000000 mov dword ptr fs:[0], ecx
10013907 |. 81C4 DC000000 add esp, 0DC
1001390D \. C3 retn
主要是利用Ocx启动程序并且控制程序
工作需要我也需要用OCX控制EXE程序 如有朋友有这方面的经验告知一二多谢
100137D0 /$ 6A FF push -1
100137D2 |. 68 F61F0410 push 10041FF6 ; SE 处理程序安装
100137D7 |. 64:A1 00000000 mov eax, dword ptr fs:[0]
100137DD |. 50 push eax
100137DE |. 64:8925 00000000 mov dword ptr fs:[0], esp
100137E5 |. 81EC D0000000 sub esp, 0D0
100137EB |. 53 push ebx
100137EC |. 55 push ebp
100137ED |. 8BE9 mov ebp, ecx
100137EF |. 56 push esi
100137F0 |. 68 8C350510 push 1005358C ; ccupcam%d%c
100137F5 |. 8D4C24 14 lea ecx, dword ptr [esp+14]
100137F9 |. 33DB xor ebx, ebx
100137FB |. E8 87DD0100 call 10031587
10013800 |. 68 7C350510 push 1005357C ; /mutex_ccup_tcp
10013805 |. 6A 01 push 1 ; |InitialOwner = TRUE
10013807 |. 53 push ebx ; |pSecurity
10013808 |. 899C24 F0000000 mov dword ptr [esp+F0], ebx ; |
1001380F |. FF15 C8410410 call dword ptr [<&KERNEL32.CreateMutexA>] ; \CreateMutexA
10013815 |. 8BF0 mov esi, eax
10013817 |. FF15 C4410410 call dword ptr [<&KERNEL32.GetLastError>] ; [GetLastError
1001381D |. 3D B7000000 cmp eax, 0B7
10013822 |. 75 0E jnz short 10013832
10013824 |. 8B4424 10 mov eax, dword ptr [esp+10]
10013828 |. 50 push eax ; /Title
10013829 |. 53 push ebx ; |Class
1001382A |. FF15 E0440410 call dword ptr [<&USER32.FindWindowA>] ; \FindWindowA
10013830 |. 8BD8 mov ebx, eax
10013832 |> 56 push esi ; /hObject
10013833 |. FF15 98410410 call dword ptr [<&KERNEL32.CloseHandle>] ; \CloseHandle
10013839 |. 85DB test ebx, ebx
1001383B |. 0F85 9F000000 jnz 100138E0
10013841 |. 8B0D E4370510 mov ecx, dword ptr [100537E4] ; Ccuplst.100537F8
10013847 |. 57 push edi
10013848 |. 894C24 10 mov dword ptr [esp+10], ecx
1001384C |. 8D5424 18 lea edx, dword ptr [esp+18]
10013850 |. 68 C8000000 push 0C8 ; /BufSize = C8 (200.)
10013855 |. 52 push edx ; |Buffer
10013856 |. C68424 F0000000 01 mov byte ptr [esp+F0], 1 ; |
1001385E |. FF15 BC410410 call dword ptr [<&KERNEL32.GetSystemDirecto>; \GetSystemDirectoryA
10013864 |. BF 58350510 mov edi, 10053558 ; program files\ccupcam\ccupcam.exe
10013869 |. 83C9 FF or ecx, FFFFFFFF
1001386C |. 33C0 xor eax, eax
1001386E |. 8D5424 1B lea edx, dword ptr [esp+1B]
10013872 |. F2:AE repne scas byte ptr es:[edi]
10013874 |. F7D1 not ecx
10013876 |. 2BF9 sub edi, ecx
10013878 |. 885C24 1B mov byte ptr [esp+1B], bl
1001387C |. 8BC1 mov eax, ecx
1001387E |. 8BF7 mov esi, edi
10013880 |. 8BFA mov edi, edx
10013882 |. 6A 01 push 1
10013884 |. C1E9 02 shr ecx, 2
10013887 |. F3:A5 rep movs dword ptr es:[edi], dword ptr [es>
10013889 |. 8BC8 mov ecx, eax
1001388B |. 8B85 D4050000 mov eax, dword ptr [ebp+5D4]
10013891 |. 83E1 03 and ecx, 3
10013894 |. 50 push eax
10013895 |. F3:A4 rep movs byte ptr es:[edi], byte ptr [esi]
10013897 |. 8B8D D0050000 mov ecx, dword ptr [ebp+5D0]
1001389D |. 6A 01 push 1
1001389F |. 51 push ecx
100138A0 |. 8D4C24 28 lea ecx, dword ptr [esp+28]
100138A4 |. 51 push ecx
100138A5 |. 8D5424 24 lea edx, dword ptr [esp+24]
100138A9 |. 68 48350510 push 10053548 ; "%s" %s%c%s%c
100138AE |. 52 push edx
100138AF |. E8 7FC70100 call 10030033
100138B4 |. 8B85 B8010000 mov eax, dword ptr [ebp+1B8]
100138BA |. 83C4 1C add esp, 1C
100138BD |. 85C0 test eax, eax
100138BF |. 5F pop edi
100138C0 |. 74 0D je short 100138CF
100138C2 |. 8B4424 0C mov eax, dword ptr [esp+C]
100138C6 |. 6A 01 push 1 ; /ShowState = SW_SHOWNORMAL
100138C8 |. 50 push eax ; |CmdLine
100138C9 |. FF15 C0410410 call dword ptr [<&KERNEL32.WinExec>] ; \WinExec
100138CF |> 8D4C24 0C lea ecx, dword ptr [esp+C]
100138D3 |. C68424 E4000000 00 mov byte ptr [esp+E4], 0
100138DB |. E8 39DC0100 call 10031519
100138E0 |> 8D4C24 10 lea ecx, dword ptr [esp+10]
100138E4 |. C78424 E4000000 FF>mov dword ptr [esp+E4], -1
100138EF |. E8 25DC0100 call 10031519
100138F4 |. 8B8C24 DC000000 mov ecx, dword ptr [esp+DC]
100138FB |. 5E pop esi
100138FC |. 8BC3 mov eax, ebx
100138FE |. 5D pop ebp
100138FF |. 5B pop ebx
10013900 |. 64:890D 00000000 mov dword ptr fs:[0], ecx
10013907 |. 81C4 DC000000 add esp, 0DC
1001390D \. C3 retn
转自:peidy
Ollydbg 中断方法浅探
――国庆节小礼
Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。
由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限,可能不能完整的写出来,也可能存在错误。请大家指正。
我所表述的是Ollydbg v1.09d中文版,其他版本和英文版下自己参考。
第一 寻常断点
Ollydbg中一般下中断的方法,就是在程序的地址处用鼠标选择这一行。然后按F2键,这时被选择的那一行的地址会变成别的颜色,就表示这个地址处下了中断。然后运行程序时只有到这个地址处就会被Ollydbg中断。
这个方法用的比较多,所以把他称作寻常断点。
如果有命令行插件,就可以在命令窗口中输入BPX xxxxxxxx 下断点。
优点:只要自己怀疑是重要的代码处都可以下这种下断点,不受条件的限制,所以方便实用。
缺点:如果不知道代码功能下断点具有盲目性。
Ollydbg 中断方法浅探
――国庆节小礼
Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。
由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限,可能不能完整的写出来,也可能存在错误。请大家指正。
我所表述的是Ollydbg v1.09d中文版,其他版本和英文版下自己参考。
第一 寻常断点
Ollydbg中一般下中断的方法,就是在程序的地址处用鼠标选择这一行。然后按F2键,这时被选择的那一行的地址会变成别的颜色,就表示这个地址处下了中断。然后运行程序时只有到这个地址处就会被Ollydbg中断。
这个方法用的比较多,所以把他称作寻常断点。
如果有命令行插件,就可以在命令窗口中输入BPX xxxxxxxx 下断点。
优点:只要自己怀疑是重要的代码处都可以下这种下断点,不受条件的限制,所以方便实用。
缺点:如果不知道代码功能下断点具有盲目性。
» 阅读全文
转自PEDIY
之所以选择ollydbg
1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷.
2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了.
3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然.
4.强大的右键菜单功能
by draren
10.14
ollydbg的界面:
菜单:
文件:
1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点.
2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件-->附加.
查看:
1.执行模块(Alt+E),查看程序使用的动态链接库
2.查看断点.Alt+B
调试:
1.运行(F9)加载程序后,运行!
2.暂停(F12)
3.单步进入(F7)遇见CALL进入!进入该子程序.
4.单步跳过(F8)遇见CALL不进去!
5.执行到返回(ALT+F9)就是执行到该子程的返回语句
ollydbg的16进制编辑功能.类似与hiew,hex workshop
查看-->文件
之所以选择ollydbg
1.我的os是winXP,无法使用trw2000,而softice装了多次均未成功,还蓝屏死机多次.郁闷.
2.友好的gui界面,不像softice.可以边干活边听歌,不像softice,把整个os都挂起了.多用两次,连时间都不知道了.
3.强大的内存查看功能,再不用什么-d了,而且跳转方便,爽!一目了然.
4.强大的右键菜单功能
by draren
10.14
ollydbg的界面:
菜单:
文件:
1.其中包括该菜单的下部有上次打开的纪录,该纪录保存有上次未清除的断点.
2.附加.对付那些Anti-Debug程序.先运行程序,再运行od,文件-->附加.
查看:
1.执行模块(Alt+E),查看程序使用的动态链接库
2.查看断点.Alt+B
调试:
1.运行(F9)加载程序后,运行!
2.暂停(F12)
3.单步进入(F7)遇见CALL进入!进入该子程序.
4.单步跳过(F8)遇见CALL不进去!
5.执行到返回(ALT+F9)就是执行到该子程的返回语句
ollydbg的16进制编辑功能.类似与hiew,hex workshop
查看-->文件
» 阅读全文
转自:PEIDY
文者:FTBirthday
内容:举例说明在汇编语言中,"[]"的用法
"[]"的用法在"常见问题"已经有所说明,引用如下:
1、push dword ptr [024c1100] 压栈024c1100值的双字
2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看标志位
3、cmp byte ptr [eax],46 字节型eax-46,看标志位
4、lea eax,[edx-02] 把edx-02的有效值(一个地址值)给eax
5、mov ecx,[edx+08] edx+8值作为地址,此地址所指向的值给ecx
我再补充几例我遇到的情况,参考了一些资料,以及我个人的理解.
-------------------------------------------------------------------------------
mov指令中用到"[]"
文者:FTBirthday
内容:举例说明在汇编语言中,"[]"的用法
"[]"的用法在"常见问题"已经有所说明,引用如下:
1、push dword ptr [024c1100] 压栈024c1100值的双字
2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看标志位
3、cmp byte ptr [eax],46 字节型eax-46,看标志位
4、lea eax,[edx-02] 把edx-02的有效值(一个地址值)给eax
5、mov ecx,[edx+08] edx+8值作为地址,此地址所指向的值给ecx
我再补充几例我遇到的情况,参考了一些资料,以及我个人的理解.
-------------------------------------------------------------------------------
mov指令中用到"[]"
» 阅读全文




