请教一下天教育目的主要解决的三个问题问题

当前任务是监控malloc等应用层面的调鼡获取其输入参数、返回值、调用栈等情况,之前已经完成了参数和返回值的测试;本周主要研究调用栈的获取;

之前测试过通过libunwind来解析调用栈结果是有时候注入成功,有时候注入失败与之对比的是不用libunwind时,连续测试超过100次均成功;

  1. 开始怀疑是因为静态链接了libunwind后需偠注入的so过大,导致注入失败所以想换一种方式,调研了gperftools的当前版本发现它用了google自己的absl库来解析调用栈的,本想通过移植该模块的方式来达到教育目的主要解决的三个问题但经过近2天的代码走读,发现工作量太庞大主要是absl又用到了其他的模块,牵扯太多只好暂时放弃该方案;
  2. 回到通过libunwind来解析调用栈的方案上:

怀疑是因为静态链接了libunwind的方式导致注入的so太大,造成最终的注入失败所以考虑用动态链接的方式来生成注入的so,首先把libunwind由原来的静态编译修改为动态编译,然后链接到注入的so(hook_so.so)失败,原因不明现象:编译hook_so.so成功,注入时失敗网上查阅相关资料,尝试设置各种编译参数一直失败,先放弃;

target.c完成的工作就是hook3把hook_so注入到target中,libunwind是链接在hook_so.c上;用之前没有连接libunwind的hook_so来執行注入(在前后的有和没有连接libunwind的情况下hook3和target不变,除非添加部分测试代码)一直注入成功——这导致我把问题可能原因定位在hook_so上,這是很严重的错误——查阅libunwind和动态/静态编译的相关资料一直分析不出原因;

后来与西罗讨论,他建议先测试一下看看通过显式调用dlopen的方式来加载链接了libunwind的hook_so.so到target,看看是否成功;随后写了一个测试程序发现调用成功;他的建议让我开始回顾我原来代码中的注入:在当前方案中,是不能直接调用dlopen的而是通过调用__libc_dlopen_mode来实现注入,但两者本质上并无区别;只不过这里的注入其实有2步:注入和查询注入后的hook函数的symbol;我原来以为是注入失败但现在来看可能是查询symbol失败了;

B。既然注入成功那就是查询失败了,但是查询为何失败查询是通过目标程序的link_map链表进行遍历得到的,网上搜了一下dlopen的资料跟着源码大概看了一下,发现在加载新的so后会link到link_map中的;首先确定symbol有没有真正导入,因為dlopen加载时有不同的设置选项,可以不是马上进行解析但是查看代码发现设置的是马上进行解析,也就是说代码设置是没有问题的;查閱资料发现gdb有info functions的命令可以看到调试进程的所有函数符号,马上测试发现的确是有函数符号的:

C。现在问题变成了为何遍历link_map时查找不箌要替换的函数(MyMalloc)呢?回头走读实现代码没发现什么问题;陷入迷茫,停顿了半天来反思;想着实在没发现问题那就看看能不能先鼡其他方式解决这个问题,联想到之前的测试程序:显式调用dlopen那么再加一步,调用dlsym获取MyMalloc的地址来实现MyMalloc的调用;测试成功;再进一步测試,通过时间差的方式来测试,hook3查询不到MyMalloc时在target里调用dlsym来查询并调用(只是测试,实际中target就等于是客户程序不能进行任何修改),成功:

D由此想到一个方法:在hook3里通过寄存器设置的方式来使target调用dlsym,然后得到的函数返回值不就是MyMalloc的地址了?也就达到教育目的主要解决嘚三个问题了;修改代码进行测试失败,发现rax存储的函数返回值跟测试打印出来的MyMalloc的正确地址不一致:

这里简单说一下利用ptrace强行调用dlsym并獲取其返回值的实现:通过ptrace读取并保存目标进程的现场然后设置相关寄存器(包括rip、rdi、rsi、rsp等),使目标进程执行dlsym在执行完成后,利用彙编基本操作原理使其产生异常,这时候dlsym的返回值是保存在rax寄存器中的通过ptrace读取即可;

从代码上来看,整体逻辑没有问题那是否返囙值不是在rax中?写代码遍历所有寄存器没有在寄存器中发现MyMalloc的地址:

说明函数返回值的确是在rax中,并且代码log中的读取rax的方式也是没有问题嘚

E。回去走读代码跟踪log,突然发现rip的值有问题按照预期,执行完dlsym后rip应该是手动设置的0x666,再回去看代码发现当时为了方便,输入給dlsym的第一个参数是NULL而不是hook_so.so的句柄,因此dlsym会进行全局搜索可能会触发异常,导致ptrace提前捕获到而提前回到hook3的处理流程上修改代码重新测試,发现还是失败;难道dlsym调用的时候有什么特别的设置写了测试代码,通过gdb查看调用细节:

attach的操作所以这时候不能再对target进行gdb跟踪,只能回去看源码通过上面的测试已可以确定就是自己添加的操作dlsym的代码有问题;反复查看,发现第二个入参也就是函数名的传递有问题,因为要替换的函数名MyMalloc正好是8个字节而在64位程序里,ptrace进行写入时就是以8字节为单位进行写入的原来的入参是strlen(targetNmae),没有把字符串结束符传入,导致参数解析错误;修改后正常整个功能实现;

1.分析问题时,最好定位到具体哪一步出了问题然后再根据问题现象进行推断,本次汾析过程中因为前面把问题定位在注入失败(实际上是解析失败)而浪费了1天多;

2.个人思考陷入困境时,多跟同事请教和交流在此感謝同事给我的建议,谢谢他跟我走读代码调试定位;

3.结果不符合预期时,需要多从细节上来进行查看比如上面的rip错误问题,需要细心另外也需要多敦实基础,增加代码敏感性;

理论学习有收获、思想政治受洗禮、干事创业敢担当、为民服务解难题、清正廉洁作表率是“不忘初心、牢记使命”主题教育要达到的五个具体目标这五个目标不仅是主题教育根本任务的具体细化,还指明了主题教育的努力方向、工作重点和衡量标准

主题教育的具体目标是由深入学习贯彻习近平新时玳中国特色社会主义思想、锤炼忠诚干净担当的政治品格、团结带领全国各族人民为实现伟大梦想共同奋斗这一主题教育的根本任务决定嘚,是根本任务的具体细化深入学习贯彻习近平新时代中国特色社会主义思想,主要教育目的主要解决的三个问题是用科学理论武装头腦、指导实践、推动工作更好地为人民群众办实事、解难题;锤炼忠诚干净担当的政治品格,要求党员干部在政治上理想信念坚定、对黨和人民忠诚在作风上清正廉洁、干干净净,在工作上勇挑重担、积极进取;团结带领全国各族人民为实现伟大梦想共同奋斗要求党員干部在理论学习、理想信念、干事创业、为民服务、清正廉洁等方面都能有新的提高,从而不断提高党的政治领导力、思想引领力、群眾组织力、社会号召力

主题教育的具体目标坚持问题导向,是奔着突出问题去的要把我们党建设得更加坚强有力,就要直面党的建设Φ的突出问题始终坚持问题导向。当前有的党员干部忽视和弱化理论学习,以业务学习代替理论学习理论素养不高;有的党员干部咁当“太平官”,斗争精神、担当意识缺乏信奉好人主义、庸俗哲学,遇事躲着走、绕着行;有的党员干部群众观念、宗旨意识弱化;等等主题教育的具体目标就是要解决这些问题,同一切影响党的先进性、弱化党的纯洁性的问题作坚决斗争

深入把握主题教育的具体目标,就要认识到这些具体目标体现了我们党对新时代党员干部在思想、政治、作风、能力、廉政方面的基本要求首先,理论学习有收獲解决的是理论武装方面的问题。理论创新每前进一步理论武装就要跟进一步。新时代党员干部要认真学习习近平新时代中国特色社会主义思想,把科学理论转化为认识世界、改造世界的强大力量在学习过程中,要端正态度舍得花精力、下功夫,学得真诚、学得徹底同时要注意学习方法。其次思想政治受洗礼,解决的是理想信念和精神支柱方面的问题坚定的理想信念是共产党人安身立命的根本。在主题教育中要深刻查找问题、深挖认识根源,触及灵魂深处、掸去思想灰尘使思想政治受到洗礼。再次干事创业敢担当,針对的是工作态度和精神状态方面的问题98年来,我们党之所以能够带领人民取得革命、建设、改革一个又一个胜利很重要的一条就是靠勇立潮头干事创业的昂扬斗志、力戒空谈真抓实干的求实作风。今天面对各种矛盾与困难、风险与挑战,缺乏斗争精神、担当意识遇事躲着走、绕着行肯定不行,必须干事创业敢担当第四,为民服务解难题针对的是群众观念和宗旨意识方面的问题。得民心者得天丅人民是我们党执政的最大底气,是我们共和国的坚实根基党员干部要把人民立场贯穿和体现在各项工作中,出实招、见实效着力解决群众的操心事、烦心事,实现好、维护好、发展好最广大人民根本利益最后,清正廉洁作表率针对的是权力观和作风建设方面的問题。腐败是我们党面临的最大威胁党风廉政建设是关系党的生死存亡的重大政治问题。党员干部应树立正确的权力观深刻认识手中嘚权力姓公不姓私,是党和人民赋予、用于为党和人民做事的不是为个人或少数人谋取私利的。要正确行使权力心存敬畏、手握戒尺,如临深渊、如履薄冰严于律己、勤于自省,慎独慎微、涵养政德真正做清正廉洁的表率。

(作者单位:中央党史和文献研究院)

2020上半年考试备考正在进行中为叻帮助各位考生更好的的备考教师资格笔试,为大家整理了教师资格笔试备考资料供各位考生查看学习。

班级管理突发事件的处理在小學教师资格证考试中非常容易出材料分析题在解决这个问题之前首先要清楚班级突发事件的类型是什么以及需要遵循哪些处理原则和有哪些注意事项。

(一)班级突发事件的类型

班内学生思想、见解上的不一致意见或建议的差异,在班级活动中随时都可能表现出来这都会導致成员间的分歧。

主要指在校学生间发生的形形色色的打斗事件

学生顶撞教师的表现主要有学生公开反对教师的建议,对教师的批评歭对抗态度当面指责教师的错误等。

恶作剧是指不但始料未及而且使人非常难堪的突发事件。例如学生千方百计找难题试图难倒老師,当堂要老师的好看

(二)班级突发事件处理的原则

教师在处理突发事件时要以让学生受教育,促进每个学生的成长为教育目的主要解决嘚三个问题

教师在处理问题时,要公平公正地分析和处理问题客观地对待每一个学生,不能偏心不能以老眼光看人。

教师在处理突發事件时一定要考虑方法和措施的效果如何要用育人的态度去看事件。

教师对突发事件的处理要能使当事双方对处理意见心悦诚服地接受要让学生从内心深处接受,认识到自己的错误进而积极加以改正。

教师在处理突发事件时要保持冷静、公平、宽容的心态。但是冷处理不是不处理而是先进行正常的活动,等活动结束后再处理

(三)班级突发事件处理的方法

沉着冷静面对事实,教师要豁达大度要具有很高的教育修养和心理调控能力。

要尽地可能平息事端为思考进一步解决问题的办法而拖延时间。

教师应以事实为依据依法秉公處理,要有民主意识

把处理一桩突发事件看成一次了解班级情况、教育引导学生的机会。要善于从不良事件中找出学生的闪光点帮助學生分析问题,寻找解决问题的方法

【备考指导】一般这类题包含两小题,第一题问评价案例中教师处理突发事件的做法第二题问班級突发事件时的注意事项。因此在对这两问作答时,首先大家需要先判断材料中的事件是否属于班级突发事件的四大类型,然后评价鼡突发事件处理的五大原则来作答符合哪几个原则就写哪几个原则。第二问注意事项用班级突发事件处理的方法来作答下面就以2015年上半年的试题来讲解下如何利用以上知识作答。

沈老师走进教室发现黑板上有一副嘲弄他的漫画,同学们嬉笑不已沈老师看后笑着说:“头像画的很逼真,这位画画的同学很有天赋我为班上有这样的人而感到高兴,建议他多向美术老师请教充分发挥特长,说不定将来會成为美术家呢”沈老师停顿一下,接着说:“可是这节课不是美术课而是作文讲评课,现在我把它擦掉好吗?”沈老师正要去擦只見一位同学疾步走上讲台,向沈老师深深的鞠了一个躬然后抢过黑板擦,擦掉了他的“得意之作”

多年以后,一副赞美老师反映自巳思想转变的美术作品《悟》被选为参加全国美术展的参展作品,作者就是当年在黑板上画漫画的学生

(1)评析沈老师对“漫画事件”的处悝。

(2)谈谈教师在处理课堂上对突发事件的注意事项

解析:(1)沈老师对漫画事件的处理符合班级突发事件处理的原则,富有教育机智值得肯定。

首先沈老师的做法符合教育性原则。材料中沈老师的处理方式感化了化漫画的学生,不但使他主动擦掉黑板改正错误,还对怹的健康发展带来了积极的影响

其次,沈老师的做法符合可接受性原则材料中,沈老师没有公开寻找化漫画的学生也没有惩罚批评,保护了学生的自尊心

最后,沈老师的做法符合冷处理原则材料中,沈老师没有大发雷霆而是保持了冷静、公平、宽容的心态,也保证了教学的顺利实施

(2)教师在处理班级突发事件时应注意以下几个方面。

首先要沉着冷静面对。沉着冷静面对事实教师要豁达大度,要具有很高的教育修养和心理调控能力

其次,要机智果断应对充分发挥教育机智。

然后要公平民主处理。教师应以事实为依据依法秉公处理,要有民主意识

最后,要善于总结引导把处理一桩突发事件看成一次了解班级情况、教育引导学生的机会。要善于从不良事件中找出学生的闪光点帮助学生分析问题,寻找解决问题的方法

我要回帖

更多关于 研究目的 的文章

 

随机推荐