阿里巴巴 ua.js分析记录
2012-08-17 12:02 通心菜 阅读(2605) 评论(6) 编辑 收藏 举报源地址 http://acjs.aliyun.com/actionlog/js/ua.js
最近阿里很多地方post表单都加了ua.js动态生成post值 造成部分需求无法实现了 至于为什么要破这个 就不说了 都懂的
首先是function um(is, x, hw) 这个通过传入一些字符串以及两个坐标值 的到一些函数名称 比i如 um('veocnCdRUebImoCCpenoRnty', 4, 1) 计算后就是 'encodeURIComponent'
简化后的代码如下
function um(is, x, hw) { var h2 = x + hw; var u = "" ; var k4 = "" ; is = is.substr(1, is.length - 2); is = is.split( "" ).reverse().join( "" ); //把字符串倒序排列 var v = is.length; for ( var hv =0; hv < v; ++hv) { if (hv % h2 == h2 - 1) { u = is.substr(v - hv - 1, h2); u = u.charAt(h2 - 1) + u.substr(1, h2 - 2) + u.charAt(0); u = u.substr(0, x); k4 = k4 + u; } } var wr = v % h2; if (wr != 0) { u = is.substr(0, wr); if (u.length != 1) { u = u.charAt(wr - 1) + u.substr(1, wr - 2) + u.charAt(0); } u = u.substr(0, x); k4 = k4 + u; } return k4; }; |
c# 解析
public static string um( string str, int x, int hw)<br> {<br> var h2 = x + hw;<br> var u = "" ;<br> var k4 = "" ;<br> str = str.Substring(1, str.Length - 2);<br> char [] arr = str.ToCharArray();<br> Array.Reverse(arr);<br> str = new string (arr);<br> var v = str.Length;<br> for ( var hv = 0; hv < v; ++hv)<br> {<br> if (hv % h2 == h2 - 1)<br> {<br> u = str.Substring(v - hv - 1, h2);<br> u = u[h2 - 1] + u.Substring(1, h2 - 2) + u[0];<br> u = u.Substring(0, x);<br> k4 = k4 + u;<br> }<br> }<br><br> var wr = v % h2;<br> if (wr != 0) {<br> u = str.Substring(0, wr);<br> if (u.Length!= 1) {<br> u = u[wr - 1] + u.Substring(1, wr - 2) + u[0];<br> }<br> if (x < u.Length)<br> {<br> u = u.Substring(0, x);<br> }<br> <br> k4 = k4 + u;<br> }<br> return k4;<br> }<br><br> |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步