|
[调查]您可能多久转正
挂10天应该就够了 |
|
[注意]既然只在这里有权限。
好像看雪的od没有暗组的功能多,很多函数识别不出来 |
|
WinGDB 1.7发布了
我也是呢,我只知道linux下有命令行的调试器gdb,windows下有windbg,还没见过这个 |
|
|
|
汇编翻译为C代码可以吗?
记得好像一本C语言的书(忘了是哪个了)上就专门说过goto语句,一般不推荐使用,滥用goto跳转会使程序逻辑混乱, 但是从C语言的编译器一直到C++、C#都是支持goto语句的,最新的VS2010都支持,并没有把goto废除, 因为某些特殊情况下不用goto是很复杂的,偶尔用一下goto有时候能使程序简化, 书上举的例子好像是3重循环,要从里面跳出2重循环, |
|
求助IE主机劫持分析
主机劫持,又发明新概念了啊,还以为你在编病毒呢 |
|
求救~~!我是初初初学者。
用C-free5吧,挺小挺方便的 |
|
帮忙投票
投了,252票了 |
|
[求助]IE给www.93801.com劫持了(问题已解决,大家可以来参考下)
我没用金山,但是经常帮别人修电脑,每次都是360解决不了的东西换金山就好了 |
|
|
|
[原创]论坛挂在线积分的小代码
这个太偷懒了吧 |
|
WSockExpert 发包问题
你的图是从桌面直接复制到网页的吧,你桌面的图片我们怎么能看到,你先上传到论坛啊 |
|
求助 迅雷7新出的文件layout.xar是什么类型的文件
支持楼上的,XAR包,迅雷自定义的文件格式,里面包含几种文件 |
|
|
|
求助电脑内存使用太大!什么方法释放!
应该是程序本身有bug,在一定条件下触发了,然后内存泄露了吧 |
|
27岁了,从头学起还行么?
学习只要自己有兴趣就好 |
|
|
|
[分享]自己经常使用的抓包工具
还没找到过win7下能抓指定进程的抓包工具,等下试试 |
|
HelloWorld的迷惑
6楼的解释好像只是解释单条指令,没解释作用,我等下有时间写一下 ①先说开头和结尾,这是个基本结构 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 跟后面的 0002a 83 c4 40 add esp, 64 ; 00000040H 0002d 3b ec cmp ebp, esp 0002f e8 00 00 00 00 call __chkesp 00034 8b e5 mov esp, ebp 00036 5d pop ebp 00037 c3 ret 0 是配对的,一般的主程序或者子程序都是这样的结构, 一般程序运行前都要保存重要寄存器的值,运行完返回时再恢复 sub esp, 64 是给主程序分配内存空间 00003这条指令会改变esp的值,esp是栈顶的地址,所以要用mov ebp, esp 先把esp保存在ebp里面,结束后用mov esp, ebp将esp恢复 00001这条指令会改变ebp的值,所以要push ebp将ebp存入堆栈,后面再用pop ebp恢复ebp 执行pop ebp后堆栈的下一条指令就是程序的返回地址,ret 0从栈顶取出返回地址返回 这个过程中ebp存着原来的栈顶地址,如果ebp被意外的改变了,程序就不能返回了, 所以 0002d 3b ec cmp ebp, esp 0002f e8 00 00 00 00 call __chkesp是做检查 ② 00006 53 push ebx 00007 56 push esi 00008 57 push edi 是保存这3个寄存器的值 后面的 00027 5f pop edi 00028 5e pop esi 00029 5b pop ebx 是把这3个寄存器改回去,这6条指令也是对应的,一个push对一个pop,为了堆栈平衡而且可以恢复这3个寄存器的原始值 ③然后再来说中间的,中间就是要输出Hello,World这个字符串,连回车符是12个字符,当然还要先做一些初始化工作 lea edi, DWORD PTR [ebp-64] 把ebp-64的地址存入edi中,刚才00003的指令是分配的64字节的空间,[ebp-64]就是那个空间的起始地址,用C语言的话说就是让edi指向空间的起始地址 0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H 00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00016 f3 ab rep stosd 这3条指令的效果就是用cc填充刚才的64字节的数据空间,至于为什么是cc二楼说得很清楚了,ecx用作循环的计数器,表示后面的rep stosd循环16次 00011的指令表示将eax用0xcccccccc填充,00016的指令表示将eax的值填入那个的空间,循环16次,一次填充4字节,16*4=64 ④ 00018 68 00 00 00 00 push OFFSET FLAT:??_C@_0N@OJDJ@Hello?0World?6?$AA@ ; `string' 0001d e8 00 00 00 00 call _printf 00022 83 c4 04 add esp, 4 00025 33 c0 xor eax, eax 把Hello,World的字符串地址压入栈顶,然后调用printf,一般调用函数都是被参数依次放入堆栈中,然后call push使堆栈增加了4,所以esp减少了4,add esp, 4是为了堆栈平衡, printf的返回值在eax中,所有函数都是用eax保存返回值的,我们不用printf函数的返回值,所以用xor eax, eax清空 整个程序就分析完了,小弟初学汇编,如果有不对的地方请大家指正 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值