首页
社区
课程
招聘
想在记事本里加入一个线程,每次启动时,打开百度。
发表于: 2005-3-17 21:04 4765

想在记事本里加入一个线程,每次启动时,打开百度。

2005-3-17 21:04
4765
01007D73    .  6F 70 65 6E>ascii "open",0
01007D78    .  77 77 77 2E>ascii "2d1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0",0
01007D86       6A 05       push 5  //在这里新建EIP时可以打开baidu
01007D88       6A 00       push 0
01007D8A       6A 00       push 0
01007D8C       68 787D0001 push NOTEPAD.01007D78              ;  ASCII "e2dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0"
01007D91       68 737D0001 push NOTEPAD.01007D73              ;  ASCII "open"
01007D96       6A 00       push 0
01007D98       E8 1CAC3F76 call SHELL32.ShellExecuteA
01007D9D       90          nop
01007D9E       90          nop
01007D9F       6A 00       push 0  //在这里新建EIP时不可以,请问是什么原因呢?这个线程好象没有作用
01007DA1       6A 00       push 0
01007DA3       68 867D0001 push NOTEPAD.01007D86
01007DA8       E8 DA00C076 call msvcrt._beginthread

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
2
你要从别的地方引发一下他。自己放在里面,哪能自己跑起来  
2005-3-17 21:16
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
ShellExecuteA就是启动浏览器的API函数,你在他前面新建EIP当然可以打开e20K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0i4@1f1%4i4@1q4p5i4K6R3&6i4@1f1%4i4@1u0p5i4K6V1I4i4@1f1&6i4@1p5I4i4@1t1#2i4@1f1@1i4@1u0m8i4K6R3$3i4@1g2r3i4@1u0o6i4K6R3^5i4@1f1$3i4K6R3&6i4K6V1K6i4@1f1#2i4@1u0o6i4K6R3H3i4@1f1@1i4@1u0n7i4K6R3H3i4@1f1@1i4@1t1&6i4K6R3^5i4@1f1%4i4@1u0p5i4K6V1I4i4@1f1&6i4@1p5I4i4@1t1#2i4@1f1%4i4K6W2o6i4K6S2n7f1$3S2W2L8r3I4q4P5r3g2U0N6i4c8W2b7g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5c8W2)9^5x3W2!0q4y4W2)9&6y4g2!0n7x3q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4q4!0n7b7W2)9^5x3q4!0q4y4q4!0n7z5g2)9^5z5q4!0q4c8W2!0n7b7#2)9^5z5g2!0q4x3#2)9^5x3q4)9^5x3W2!0q4z5q4)9^5x3q4)9^5b7#2!0q4y4q4!0n7c8q4!0m8x3q4!0q4y4g2)9&6b7#2!0m8z5q4!0q4y4q4!0n7b7W2)9&6y4W2!0q4y4g2)9&6x3q4)9^5c8g2!0q4z5g2)9&6c8q4!0m8x3W2!0q4y4W2)9&6y4W2!0n7x3q4!0q4y4g2!0n7b7W2!0n7b7f1g2u0f1q4!0q4y4g2!0n7c8q4)9&6x3#2!0q4y4#2)9^5y4q4!0n7y4W2!0q4y4q4!0n7z5q4)9^5c8q4!0q4z5q4!0m8x3g2)9^5b7#2!0q4y4q4!0n7b7g2)9^5y4W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2!0n7x3W2!0m8x3g2!0q4y4W2)9&6b7#2)9^5z5g2!0q4z5q4!0n7c8W2)9&6x3q4!0q4z5q4!0m8x3g2)9^5b7#2y4Z5k6h3I4D9c8i4S2W2j5%4g2@1k6f1q4Q4c8e0g2Q4z5o6N6Q4b7V1c8Q4c8e0k6Q4z5e0g2Q4b7U0m8Q4c8e0c8Q4b7V1q4Q4z5o6k6Q4c8e0y4Q4z5o6m8Q4z5o6t1`.
2005-3-17 21:32
0
雪    币: 267
活跃值: (235)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
大概你没有搞明白我的意思
我是想让程序从入口跳到建立线程的函数 _beginthread
然后让_beginthread来启动ShellExecuteA建立线程的好处是不会影响程序正常执行的速度。比如如果我要让这个线程做更多的事情都不至于让主程序很慢。

不知道我说清楚没
2005-3-17 21:54
0
雪    币: 101
活跃值: (17)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
01007DA8       E8 DA00C076 call msvcrt._beginthread
在调试状态下执行这一步并且继续跟踪下去,是不会运行到
01007D86       6A 05       push 5  //在这里新建EIP时可以打开baidu
这里的, 因为你没空出时间让os来调度线程,另外调试器也会把所有线成挂起。所以可以到86这个地方设置个端点然后直接运行, 顺便观看下beginthread的返回值,还有那几个90是不是要改成ret去,要不线程递归掉了?
2005-3-22 02:21
0
雪    币: 1790
活跃值: (4555)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
我试了一下 不知道是不是你要求的那种:
01006AE0 notepa> $ /E9 EB120000        jmp notepad2.01007DD0 //此处是程序入口OEP,该为跳到._beginthread处

01006AE5            90                 nop
01006AE6            90                 nop
01006AE7         >  E8 BC010000        call notepad2.01006CA8
01006AEC         .  33DB               xor ebx,ebx

//////////
//此处定义的为线程的内容
01007D90         .  6F 70 65 6E 00     ascii "open",0
01007D95         .  77 77 77 2E 62 61 >ascii "c5eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0",0
01007DA3         .  6A 05              push 5                      ; /IsShown = 5
01007DA5         .  6A 00              push 0                      ; |DefDir = NULL
01007DA7         .  6A 00              push 0                      ; |Parameters = NULL
01007DA9         .  68 957D0001        push notepad2.01007D95      ; |FileName = "70fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3u0S2K9h3c8#2i4K6u0W2j5$3!0E0"
01007DAE         .  68 907D0001        push notepad2.01007D90      ; |Operation = "open"
01007DB3         .  6A 00              push 0                      ; |hWnd = NULL
01007DB5         .  E8 FFAB3F76        call SHELL32.ShellExecuteA  ; \ShellExecuteA
01007DBA         .  90                 nop
01007DBB         .  C2 0C00            retn 0C

///////////////////////
//此处是调用._beginthread建立线程并使程序继续进行的地方
01007DD0         > \6A 00              push 0                      ; /arg = NULL
01007DD2         .  6A 00              push 0                      ; |stksize = 0
01007DD4         .  68 A37D0001        push notepad2.01007DA3      ; |start = notepad2.01007DA3
01007DD9         .  E8 A900C076        call msvcrt._beginthread    ; \_beginthread
01007DDE         .  6A 70              push 70
01007DE0         .  68 88180001        push notepad2.01001888
01007DE5         .^ E9 FDECFFFF        jmp notepad2.01006AE7

//在OD里里跟踪。能创建线程并打开百度的页面。同时不影响主程序的运行。不知道是不是还有别的错误请指点。
2005-3-22 08:26
0
游客
登录 | 注册 方可回帖
返回