|
|
|
请大家看看这段算法,可逆吗?
“esi 的值是第一个字符算出来的,但第一个字符不参与转换!” “还有个奇怪的问题,字符串的头一个字母不参与转换但直接影响具体的转换过程,具体在程序中起什么作用呢???” 说esi没参与转换是不对的,如果esi 的值是第一个字符算出来的,那么这个值就参与了运算。 0041D1FB |. |8BC6 |MOV EAX,ESI //EAX=ESI 0041D1FD |. |99 |CDQ 0041D1FE |. |F7FD |IDIV EBP //EAX MOD EBP 0041D200 |. |8AC1 |MOV AL,CL //CL给AL 0041D202 |. |04 06 |ADD AL,6 //AL=AL+6 0041D204 |. |B1 06 |MOV CL,6 //CL=6 0041D206 |. |F6E9 |IMUL CL //AL=AL*CL 0041D208 |. |8BCD |MOV ECX,EBP //ECX=EBP 0041D20A |. |2AC2 |SUB AL,DL //AL=AL-DL 41D1FE所做的除法运算实际上就是ESI/EBP,使用了ESI。 注意 41D1FE一句做32位除法运算,余数将被放到EDX中,而41D206一句是做8位乘法运算,AL×CL,结果放到AX中,到41D20A之前没有任何一句影响 EDX,EDX中一直是ESI/EBP的余数,41D20A一句使用了DL。 所以这一小部分可逆为(cl+6)*6-((ESI mod EBP) & 0x000000FF) 4楼的已经介绍了 IMUL r8/m8 ;有符号字节乘:AX<-AL×r8/m8 IMUL r16/m16 ;有符号字乘:DX.AX<-AX×r16/m16 如果把41D206一句的8位乘法误认位16位乘法,就会认为这句乘法的结果覆盖了DX,自然就会认为EDX中保存的前一步除法的余数已经被覆盖了(DX部分),那前一步ESI/EBP的运算结果就都没有用上了,就会认为ESI没用上了。 |
|
《电视剧下载》V2.10算法分析
很详细!学习! |
|
Multi Clipboard m9.75.01 破解(另类注册机)
只是作个练习,要自己用,爆破得了 |
|
Task Lock.EXE的分析
支持,学习! |
|
易用会员管理软件 1.38算法分析
学习!支持! |
|
建议设立软件黑名单//RoBa 的 成长之路
佩服RoBa,我也是个电脑票友。 |
|
|
|
[原创] 快捷打开文件夹 V3.0破解过程
支持!学习! |
|
[3月话题]如何防止内存中出现明码
利用加密算法将注册码变换成一个函数地址,建立异常处理后去执行,如果注册码不正确,将无法得到正确的执行地址,同时这种方法没有比较和跳转。 我认为方法很多,提出方法之一。 |
|
遇到对手了
如果你隐藏了softice,怎么会不能加载 |
|
这种情况怎么隐藏SOFTICE?谢谢[求助]
具体实现办法见《加密与解密(第二版)》10.4.3小节 |
|
有没有人对sentinel lm 狗有研究,交流交流
与我联系QQ147450951 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值