xu2611 发表于 2016-10-29 14:39

网络验证的攻与防 攻篇(三)

攻篇一地址:https://www.52hb.com/thread-28589-1-1.html
攻篇二地址:https://www.52hb.com/thread-28720-1-1.html
前页两篇讲了某可的ks_IdCheck与ks_GetData的HOOK办法,但是这两API对于某可来说,并不重要,这篇讲它的最主要的防破API:ks_advapi
这个API是某可的远程服务器运算API,某可逆向主要的难点就在这个上面
关于这个API如何定位,如果HOOK,一般的VM如何解决,看懂攻一,攻二你就懂,不太明白的去看前两篇帖子,这个API的说明如果不太懂可以去到某可的官网去查说明
ks_advapi函数说明如下
.版本 2
.子程序 ks_advapi, 文本型, 公开, 安全核心功能,提交参数到服务端,服务端根据参数,取出函数名和参数,进行自定义运算后返回文本数据。
.参数 v_expression, 文本型, , 发送给服务端的特殊结构字符串,格式 v_函数名[,参数1]...[,参数n],如:"v_funname" "v_funname,参数1,参数2"
我们现在使用的例子ks_advapi函数的开头在41283D处
我们假设v_geta远程函数 返回4个汉字 :静态数据
假设 v_getb远程函数是对后面的两个参数进行加法运算,则hook函数如下图

上面只是我的假设,真实逆向时,要在此API上下断,查看函数输入文本与函数返回的文本,最主要的是能跟出服务器端的函数运算过程,由于此API得出的返回文本在本地的运算过程通常都是被VM的,跟踪起来要极强的耐心,有很多用某可的FZ逆向以后没有功能,都是因为这个API的存在,无论你怎么感觉某可破教程难大街,解决不了此API也是白搭,这种远程API基本成了现在市面网络验证的标配,没有远程服务器的API不建议使用,因为种种固定的防逆向函数不用多久都会被人攻克,但是这种灵活使用的API,只要使用得当,很难被人逆出算法,这就是你软件不被逆向的保障
看帖子一定要结合程序例子边动手,边思考,所有原代码和示例程序已经打包,下载地址:**** Hidden Message *****
攻篇只打算写三篇,接下来的帖子就要写到防了

guo514052476 发表于 2016-10-30 09:43

非常好,很实用{:7_236:}{:7_236:}{:7_236:}

lingjin3 发表于 2016-10-30 09:57

学习了,感谢楼主的教程

1809788609 发表于 2016-10-30 13:35

什么东西,,,,。。。

w909821088 发表于 2016-10-30 16:10

写的太好了 谢谢分享

Yulo 发表于 2016-10-30 20:21

学习下,可以哦!

19876 发表于 2016-10-30 21:57

谢谢分享,支持

Cser2 发表于 2016-10-31 13:51

质量不错 下一个看看

springwillow 发表于 2016-10-31 16:10

好贴,很有意义

chenjinghappy 发表于 2016-10-31 19:53

{:5_116:}谢谢分享,支持一下
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 网络验证的攻与防 攻篇(三)