最早接觸libsgmain相關是在17年6、7月份吧,因爲工作需要逆向支付寳某些邏輯,而在逆向過程中的很多算法依賴這個庫,當時支付寶裏面附帶的libsgmain的版本是6.3.80,可以說這個版本確實是比較强大的,强大到讓當時的我無所適從,可以說調試它都是很困難的事情,它用的的技術就比較多了,當時只看懂一點皮毛,只是逆向了一點點,出於難度和時間限制,後來該逆向工作停止了;去年又想起這件事,於是找了一個帶有libsgmain的so進行逆向,它附帶的版本是6.4.176,這個版本的就比6.3.80容易的多了,感覺它只用了llvm保護,無論從靜態看還是動態調試都容易了很多;當我逆向到解密出UmidAdapter這個類的時候,我尋思著要不去網上搜搜,看看能不能有前人的東西可以藉鑒,結果還真搜到了一篇俄羅斯人發的關於uc瀏覽器安全的文章,這篇文章中提到的libsgmain版本是6.4.36,於是我再次下載了該版本,這個版本的難度在我眼裏應該是介於兩者之間的;難度是6.3.80 > 6.4.36 > 6.4.176, 調試6.4.36也特別容易,它和調試普通so沒啥區別,只不過它裏面用到了很多技術,但分析起來還是比較容易的; 我并沒有按照俄羅斯人那樣patch分析,我更多的是自己調試,目前我已經把核心的東西逆向完成了(6.4.36, 我逆向的目的不是去分析什麽xsign算法或者其他加密算法 ,而是去學習);如果後續時間和精力都充沛,我會把6.3.80和6.4.176完成,同時也會盡量把一些算法逆向補上,但你千萬別指望我就真的這麽做。
那麽我把詳細分析過程放到了我的github上,想了解和學習libsgmain的可以去我的github上下載,對於想學習逆向的也可以下載,因爲我相信你對著它逆向一邊也會增加你的逆向思路。
本人聲明:
該項目僅用於學習和交流目的,不能用於其他目的,否則後果自負;另外該項目所有權僅屬於我個人,你可以下載或者fork該項目,但不能用於其他目的(如發表文章、出書、投稿等),否則必究。
[招生]科锐逆向工程师培训(3月6日远程教学报名特惠, 第37期)
最后于 1天前 被angelToms编辑 ,原因:
|
|
---|---|
|
mark |
|
学习了 |
|
楼主能否私信回一下联系方式,希望能讨教一下 |
|
我要研究的是libsgmainso-6.4.163.so,逆向其中算法是没希望了,于是我想用 AndroidNativeEmu加载这个so黑盒调用函数, 用默认配置加载这个so文件直接报ELFParseError,似乎结构被修改过无法直接黑盒调用,能否讨教一下有何技巧? 能顺利跑通不知道难度系数大不大,希望至少能给个解决思路。 |
|
anhooker 我要研究的是libsgmainso-6.4.163.so,逆向其中算法是没希望了,于是我想用 AndroidNativeEmu加载这个so黑盒调用函数, 用默认配置加载这个so文件直接报EL ... sgmain section header被破坏掉的,Androidnative emu装so的时候依赖section header,所以会出错,解决的话需要把那部分的逻辑改掉,直接依赖program header来装so。 |
|
my1988 sgmain section header被破坏掉的,Androidnative emu装so的时候依赖section header,所以会出错,解决的话需要把那部分的逻辑改掉,直接依赖program ... 感谢指导,我猜测也是这个原因,入门不久对此有点困难,不知道是否有文章能够参考学习? |
|
anhooker 感谢指导,我猜测也是这个原因,入门不久对此有点困难,不知道是否有文章能够参考学习? Android emu之前无名侠发过文章,可以看看,program header装so的话,参考一下linker源码 |
返回