不被这四种人所伤,你还没长大!
第一、被亲人所伤
第二、被爱人所伤
第三、被挚友所伤
第四、被合伙人所伤
遍体鳞伤后,你才会真正明白,跟任何人走的太近,都是一场灾难。
和朋友之间,保持一杯水的距离,君子之交淡如水,小人之交甜如蜜。一杯水水可以解渴,但放了糖,就会越喝越腻。成年人的世界,朋友都是利益的产物。你强大了,身边就都是朋友,你弱小了,没人把你当朋友 。
和亲戚之间,保持一碗汤的距离,汤太热,烫伤了自己,汤太凉,就会凉了人心。对亲戚不能太好,太好,就会产生依赖和怨恨;对亲戚也不能太坏,太坏,就凉了人心,坏了亲情。
和爱人之间,保持一张纸的距 离,冬天的时候,豪猪需要彼此依偎取暖,挨得太近,容易扎伤彼此,挨得太远,又容易冻死。于是豪猪之间,会有微妙的距离,既可以彼此温暖,又避免彼此伤害。你越爱一个人,你就越不要太爱他,这样他才会越爱你。
合伙人之间,保持一张钱的距离,基于利益的感情,永远比基于感情的利益更牢固。合伙人之间, 少谈感情,先把利益讲清楚。利益到位了,感情自然会牢固。
利益没分明白, 亲兄弟都会反目。
没有永恒的关系,只有永恒的利益。
我们所有努力,都是为了让爱我们的人更爱我们。至于不爱我们的人,走好不送。
山不在高 ,有仙则名, 水不在深,有龙则灵。
朋友不在多,有几个像样的就行。
一切痛苦,都是你不懂人性。
欲知更多炸裂内容,请加我V❤️信:imfree213
第一、被亲人所伤
第二、被爱人所伤
第三、被挚友所伤
第四、被合伙人所伤
遍体鳞伤后,你才会真正明白,跟任何人走的太近,都是一场灾难。
和朋友之间,保持一杯水的距离,君子之交淡如水,小人之交甜如蜜。一杯水水可以解渴,但放了糖,就会越喝越腻。成年人的世界,朋友都是利益的产物。你强大了,身边就都是朋友,你弱小了,没人把你当朋友 。
和亲戚之间,保持一碗汤的距离,汤太热,烫伤了自己,汤太凉,就会凉了人心。对亲戚不能太好,太好,就会产生依赖和怨恨;对亲戚也不能太坏,太坏,就凉了人心,坏了亲情。
和爱人之间,保持一张纸的距 离,冬天的时候,豪猪需要彼此依偎取暖,挨得太近,容易扎伤彼此,挨得太远,又容易冻死。于是豪猪之间,会有微妙的距离,既可以彼此温暖,又避免彼此伤害。你越爱一个人,你就越不要太爱他,这样他才会越爱你。
合伙人之间,保持一张钱的距离,基于利益的感情,永远比基于感情的利益更牢固。合伙人之间, 少谈感情,先把利益讲清楚。利益到位了,感情自然会牢固。
利益没分明白, 亲兄弟都会反目。
没有永恒的关系,只有永恒的利益。
我们所有努力,都是为了让爱我们的人更爱我们。至于不爱我们的人,走好不送。
山不在高 ,有仙则名, 水不在深,有龙则灵。
朋友不在多,有几个像样的就行。
一切痛苦,都是你不懂人性。
欲知更多炸裂内容,请加我V❤️信:imfree213
今天的比赛来了,兄弟们请多给我留言,评论都可以,让我这里也热闹起来啊。不要只看就走了,以后还是这么无趣,我就不在这里发免费的分享了哈,请多捧场,谢谢!
有需要其他赛事的,可以加V+会员群,每天2-4场方案给到大家,谢谢!
英超联赛:水晶宫vs布伦特福德
时间:2022-08-31 02:30
水晶宫上赛季发挥出色一大原因就是租借球员发挥极佳,比如加拉格尔成为了球队的核心大脑,但本赛季租借回归切尔西之后水晶宫少了一位中场大将,另外本不受重用的马特塔上位成为首发成为球队进球效率更高的前锋,挤掉了高价新援爱德华。不过其他位置补强了像边后卫里查兹,还有朗斯后腰奇克-杜库雷,球队也还在磨合中,毕竟扎哈和马特塔都在养伤。上轮先进两球的情况下2-4被曼城逆转,发挥不差但无奈对手太强。
布伦特福德目前的姿态就是高开低走,首战连追两球逼平莱斯特城,随后主场4-0屠杀曼联令人惊艳,但马上就输给了富勒姆,上轮面对伤病满营的埃弗顿主场被对手逼平,还是先丢球差点失利,球队的状态下行比较明显。球队目前没有太多的伤病,更多的还是阵容上的打法已经被对手熟悉,缺乏变化,包括像卡诺斯这样的中场主力还在养伤,后卫线上主力中卫阿热和平诺克也还缺阵,轮换空间不大。
本场看让球给到主让0.25低位力挺水晶宫,水晶宫没能延续上赛季的高光和加拉格尔的离队不无关系,另外扎哈也缺席对于进攻也有影响。但球队的磨合其实不差,小将奥利塞和里查兹,包括前一个赛季重金引进的艾奇都是实力不错的球员,锋线有爱德华和马特塔竞争,球队具备轮换的资本。而客队替补席除了达姆斯高之外基本没有很好的进攻球员可以轮换,更多的都是中后场的球员,一旦水晶宫打开局面客队未必有后手应对。当前市场观点一致力挺打曼城踢得很好但没赢球的水晶宫,不妨直冲主胜,指数水晶宫-0.25。
有需要其他赛事的,可以加V+会员群,每天2-4场方案给到大家,谢谢!
英超联赛:水晶宫vs布伦特福德
时间:2022-08-31 02:30
水晶宫上赛季发挥出色一大原因就是租借球员发挥极佳,比如加拉格尔成为了球队的核心大脑,但本赛季租借回归切尔西之后水晶宫少了一位中场大将,另外本不受重用的马特塔上位成为首发成为球队进球效率更高的前锋,挤掉了高价新援爱德华。不过其他位置补强了像边后卫里查兹,还有朗斯后腰奇克-杜库雷,球队也还在磨合中,毕竟扎哈和马特塔都在养伤。上轮先进两球的情况下2-4被曼城逆转,发挥不差但无奈对手太强。
布伦特福德目前的姿态就是高开低走,首战连追两球逼平莱斯特城,随后主场4-0屠杀曼联令人惊艳,但马上就输给了富勒姆,上轮面对伤病满营的埃弗顿主场被对手逼平,还是先丢球差点失利,球队的状态下行比较明显。球队目前没有太多的伤病,更多的还是阵容上的打法已经被对手熟悉,缺乏变化,包括像卡诺斯这样的中场主力还在养伤,后卫线上主力中卫阿热和平诺克也还缺阵,轮换空间不大。
本场看让球给到主让0.25低位力挺水晶宫,水晶宫没能延续上赛季的高光和加拉格尔的离队不无关系,另外扎哈也缺席对于进攻也有影响。但球队的磨合其实不差,小将奥利塞和里查兹,包括前一个赛季重金引进的艾奇都是实力不错的球员,锋线有爱德华和马特塔竞争,球队具备轮换的资本。而客队替补席除了达姆斯高之外基本没有很好的进攻球员可以轮换,更多的都是中后场的球员,一旦水晶宫打开局面客队未必有后手应对。当前市场观点一致力挺打曼城踢得很好但没赢球的水晶宫,不妨直冲主胜,指数水晶宫-0.25。
近来准备搞搞usb,翻出我的正版开发板,启动正版visualgdb,插上盗版v9, 工程向导识别不到开发板无法下一步,于是我换了一下最新版本的7.58c驱动,打开准备升级一下固件来着,好家伙,直接弹出一个好家伙,大意是:
"现在连接的探头是个克隆版jlink,在克隆硬件上用我们的软件既不合理又不合法,请联系我们并附上截图。"
虽然后面我发现工程向导从openocd里面间接驱动jlink才能下一步并且成功调试,可这个segger的提示深深的打动了我。
众所周知,假货宝上的v9已经不知道出过多少版本了,大的小的,带壳的裸板的,都是包最新驱动,还真没遇到segger检测到的情况,去问了卖家和程序员一样的回答”我这里好好的”。
得,网上搜也搜不到信息,估计是因为clone提示文字也是全新的,以前好像出错提示是defective,新的提示是clone。
卖家不管,我自己折腾,首先我怀疑是不是那个签名问题,于是找了下jlink_x64.dll弹框的地方的函数,发现没有call它的调用,只有一个传参引用。不死心,开x64dbg跟了一下,是从线程调用来的。
那么再看这个传参引用的位置,x64dbg用animate trace记录了一下会发现他在检测和比较逗号分隔的特性字符串,比较到特定的字符串”RDI”就跳转到将这个弹窗函数入参的分支了。如果将字符串比较的jz都给跳过,则不会弹窗。
回到IDA调试和整理下这个函数,首先我们要摸清这个逗号分隔的字符串哪来的,是从一个0x80字节的缓冲区统计来的,每0x10开头是ascii的部分加到字符串里。
如果是做过山寨版的朋友可能就知道了,这信息是在0800BF20开始的地方,而0800BF00处是序列号。
通过整理和调试, 得出的这个新版驱动的弹窗分支条件依次如下:
0 序列号不能为黑名单里面的那几个。此条不重要,因为没人去用那些特殊序列号。
1 新型号不能内置GDBFull,有了直接报错。所有型号不能内置RDDI,有了直接报错。
2 硬件版本v9~v11并且序列号开头为26,5,82的,和版本号v1并且序列号开头为80的,不许内置JFlash或RDI特性。
看到这里聪明的小伙伴可能要问了,这些不都是专门针对盗版的吗?但随着我在网上和闲鱼搜集正版的序列号,我发现26开头是edu的特征,而5开头是base版的特征,80开头是edu mini的特征。这里说的开头就是第8、9位的数字。
山寨版的序号那可就五花八门了,有很多直接-1(4294967295)。在搜索中我还看到小窍门原版edu并 通过addfeature指令增加jflash和rdi特性的,还在论坛看到了Segger去年成立中国部门,坛友表示担忧,还有最近原版自己加feature的坛友被报告clone的帖子。
略作思考我觉得我破案了,这个崭新的中国部门怕是读了论坛的帖子后,把这个当作成果汇报上去了,然后segger程序员一琢磨,来个根据型号限制功能, 可齐活了,这一砖头主要砸到了买正版edu并且加了内置特性的,盗版序列号-1或者瞎写的都没被误伤。
我们可以选择补dll,拆机重刷,但我选择了最程序正义的一种:让jlink自己去掉feature。
此篇文章也就是从一个和嵌入式开发关系不大的视角上展示如何利用基础推理能力来拨开云雾得报大仇,阅读只需要有一定的调试经验,不需要做漏洞分析。好了,闲话不多说,我们正式就顺着这个Feature字符串来摸。因为新版驱动的commander不支持AddFeature指令了,我在老版JlinkARM.dll搜索发现AddFeature命令附近有一个ClearFeatures。
这个命令也是非公开的,和AddFeature、ChangeSN一样的流程,执行后会把现有ota的Features区域全部修改为0,发送更新ots信息请求让设备去更新。但我测试了一下设备上的固件却无法成功的把GDBFull或者JFlash字样给修改为00。
通过查阅STM32的flash编程手册PM0059,明确说可以将非0的bit改为0,不需要擦除再改写。
再看看固件更新ots有啥限制。固件怎么来呢,可以从JLinkARM.dll解。老版本的方法大家都知道了吧,新版本7.2后厂家给一部分固件加了压缩,我就用另外思路写了个工具解压它。
可以参考附件:图一
固件中对客户端发过去的新内容检查也是检查没有出现0变1的bit,然后就送入内存中的函数来修改flash了。
看了下内存中的这个函数,写的歪七扭八的,除了加了个跳过写入FF功能,没有会导致非FF不擦写的bug。编程手册上每次写入都要拉高一次PG,它给简化为设置一次,循环写入了。估计其实不需要。
话说其实修改flash的代码完全没必要放在内存,因为要修改的目标地址是sector2,和执行的都不在一个sector,而且它末尾还调用了flash里面的memcmp函数判断写入是否成功,白隔离了。https://t.cn/A6xszCqX
"现在连接的探头是个克隆版jlink,在克隆硬件上用我们的软件既不合理又不合法,请联系我们并附上截图。"
虽然后面我发现工程向导从openocd里面间接驱动jlink才能下一步并且成功调试,可这个segger的提示深深的打动了我。
众所周知,假货宝上的v9已经不知道出过多少版本了,大的小的,带壳的裸板的,都是包最新驱动,还真没遇到segger检测到的情况,去问了卖家和程序员一样的回答”我这里好好的”。
得,网上搜也搜不到信息,估计是因为clone提示文字也是全新的,以前好像出错提示是defective,新的提示是clone。
卖家不管,我自己折腾,首先我怀疑是不是那个签名问题,于是找了下jlink_x64.dll弹框的地方的函数,发现没有call它的调用,只有一个传参引用。不死心,开x64dbg跟了一下,是从线程调用来的。
那么再看这个传参引用的位置,x64dbg用animate trace记录了一下会发现他在检测和比较逗号分隔的特性字符串,比较到特定的字符串”RDI”就跳转到将这个弹窗函数入参的分支了。如果将字符串比较的jz都给跳过,则不会弹窗。
回到IDA调试和整理下这个函数,首先我们要摸清这个逗号分隔的字符串哪来的,是从一个0x80字节的缓冲区统计来的,每0x10开头是ascii的部分加到字符串里。
如果是做过山寨版的朋友可能就知道了,这信息是在0800BF20开始的地方,而0800BF00处是序列号。
通过整理和调试, 得出的这个新版驱动的弹窗分支条件依次如下:
0 序列号不能为黑名单里面的那几个。此条不重要,因为没人去用那些特殊序列号。
1 新型号不能内置GDBFull,有了直接报错。所有型号不能内置RDDI,有了直接报错。
2 硬件版本v9~v11并且序列号开头为26,5,82的,和版本号v1并且序列号开头为80的,不许内置JFlash或RDI特性。
看到这里聪明的小伙伴可能要问了,这些不都是专门针对盗版的吗?但随着我在网上和闲鱼搜集正版的序列号,我发现26开头是edu的特征,而5开头是base版的特征,80开头是edu mini的特征。这里说的开头就是第8、9位的数字。
山寨版的序号那可就五花八门了,有很多直接-1(4294967295)。在搜索中我还看到小窍门原版edu并 通过addfeature指令增加jflash和rdi特性的,还在论坛看到了Segger去年成立中国部门,坛友表示担忧,还有最近原版自己加feature的坛友被报告clone的帖子。
略作思考我觉得我破案了,这个崭新的中国部门怕是读了论坛的帖子后,把这个当作成果汇报上去了,然后segger程序员一琢磨,来个根据型号限制功能, 可齐活了,这一砖头主要砸到了买正版edu并且加了内置特性的,盗版序列号-1或者瞎写的都没被误伤。
我们可以选择补dll,拆机重刷,但我选择了最程序正义的一种:让jlink自己去掉feature。
此篇文章也就是从一个和嵌入式开发关系不大的视角上展示如何利用基础推理能力来拨开云雾得报大仇,阅读只需要有一定的调试经验,不需要做漏洞分析。好了,闲话不多说,我们正式就顺着这个Feature字符串来摸。因为新版驱动的commander不支持AddFeature指令了,我在老版JlinkARM.dll搜索发现AddFeature命令附近有一个ClearFeatures。
这个命令也是非公开的,和AddFeature、ChangeSN一样的流程,执行后会把现有ota的Features区域全部修改为0,发送更新ots信息请求让设备去更新。但我测试了一下设备上的固件却无法成功的把GDBFull或者JFlash字样给修改为00。
通过查阅STM32的flash编程手册PM0059,明确说可以将非0的bit改为0,不需要擦除再改写。
再看看固件更新ots有啥限制。固件怎么来呢,可以从JLinkARM.dll解。老版本的方法大家都知道了吧,新版本7.2后厂家给一部分固件加了压缩,我就用另外思路写了个工具解压它。
可以参考附件:图一
固件中对客户端发过去的新内容检查也是检查没有出现0变1的bit,然后就送入内存中的函数来修改flash了。
看了下内存中的这个函数,写的歪七扭八的,除了加了个跳过写入FF功能,没有会导致非FF不擦写的bug。编程手册上每次写入都要拉高一次PG,它给简化为设置一次,循环写入了。估计其实不需要。
话说其实修改flash的代码完全没必要放在内存,因为要修改的目标地址是sector2,和执行的都不在一个sector,而且它末尾还调用了flash里面的memcmp函数判断写入是否成功,白隔离了。https://t.cn/A6xszCqX
✋热门推荐