wql431 发表于 2016-12-7 11:24

新手学破解,拜请赐教该软件解决思路。

写在前面:    闲在家中两年有余,某日忽想吾爱汇编论坛,于是搜索逆向教程,引至“吾爱汇编论坛”,未注册,下载恒大《Shark恒零基础百集VIP逆向教程》视频,对于孤,零基础之人,此视频通俗易懂,花20余天苦心学习视频教程。(2期及3期网络验证未看)学习闲暇之余,均可按视频教程内容逆向。忽想起多年前一软件。苦研究多日未得其锁。故上论坛寻求解决思路。正文:    此软件分服务器端和客户端两个应用程序,“Sinovo”为服务器端运行软件,” Xinovo”为客户端运行软件,客户端连接服务器端实现功能。孤如下逆向分析思路:按视频教程所说找到关键跳或者关键CALL就可以PJ了。于是一、查壳为什么两个软件查出来的结果不一样呢?






二、思路1:寻找真码
      1、智能查找字符串“WrongLicense”   
2、在关键CALL:00404675|.E8 86FAFFFFcall Sinovo.00404100;关键跳的上方就是关键CALL了
      下断点,F9运行,右下角点击S图标的“License”,在关键CALL处断下,   
         3、按F7,进入关键CALL。
         4、按F8,单步向下走。
5、在00404168|.^\75 F6         \jnz short Sinovo.00404160;在此处循环。
6、在0040416A|. /EB 41         jmp short Sinovo.004041AD;按F4,跳到此处
7、在0040424E|. 8D85 70FFFFFF |lea eax,;在此处看到类似真码,复制并测试,不对。继续按F8向下走
8、在00404280|> \8D8D 70FFFFFF|lea ecx,;在此处按F4跳至。之后卡死。
9、偿试在00404280下断点,按“t”,重新激活所有线程。未果。到此,没有思路。
三、思路2:在关键跳处理在0040467F   /74 1E         je short Sinovo.0040469F               ;这里面是关键跳将关键跳NOP掉或者将je改为jnz,虽然显示了RightLicense,但客户端还是连接不上服务器,判断应该为假逆向。研究前一句0040467C|.83F8 1E      cmp eax,0x1E之前恒大的视频教程课件比较值都是0或者1,这里为什么是1E,苦思无解。再在关键CALL处使用Mov eax,1ERetn之法偿试,失败。拜请赐教。四、思路3:客户端软件处理既然服务器端不行,那客户端是否可以有类似的PUSH窗体跳过连接呢?查找字符串,未看到相关信息,亦找不到解决思路。末:原来依据视频教程,看似简单的程序,原以为都可以举一反三就整会了。真正动手时才发现如山般高,顿感失落。拜请赐教。




mikeer 发表于 2016-12-7 11:28

wql431 发表于 2016-12-7 11:32

mikeer 发表于 2016-12-7 11:28
他在判断是不是1E,如果是1E,就跳
如果赋值1或者0,那肯定不是咯

那什么时候设置为1E,什么时候设置为0或者1,是根本程序开发的需要么?另外能否看看其他的问题?

mikeer 发表于 2016-12-7 11:36

wql431 发表于 2016-12-7 11:42

mikeer 发表于 2016-12-7 11:36
人家判断的是1E,不是0或者1,你为什么纠结这个问题呢?
人家要吃饭,你非得给人家水你才满意是不是

好吧,了解了,那您能给个思路不?

tony2526 发表于 2016-12-8 20:32

本帖最后由 tony2526 于 2016-12-8 20:37 编辑

应该可以追码出来的,不懂,连接成功之后窗口没了,只有个大箭头,不会用啊


wql431 发表于 2016-12-8 22:55

看来,没多少人一起学习呢。
我也追码成功了。过程如下:
1、字符串查找Wrong License 在此处下断
00404675|.E8 86FAFFFF   call Sinovo.00404100                     ;这里是判断的关键CALL
2、F9运行,断在断点处,F7进入CALL中
3、004042C7|.E8 F4FBFFFF   |call Sinovo.00403EC0               ;这里是找真码的关键CALL
4、在此处下断点。F7进入CALL中
5、0012ECCC   0012EDA8ASCII "00M12Z41H122A75O250"                  ;这里是机器码
6、以下是找真码的过程(记下)
   0012ECCC   0012ECF4ASCII "80643856-1923483841-1748749149--1367799256--1085681741-1811460614-1234567890-45"这个也可以
   0012ECC4   0012ECF4ASCII "83357776-1923879379-1748965035--1367424088--1085295353-1811949362-1234567890-60"这个也可以
   0012ECC4   0012ECF4ASCII "86071696-1924274917-1749180921--1367048920--1084908965-1812438110-1234567890-75"这个也可以
   0012ECC4   0012ECF4ASCII "88785616-1924670455-1749396807--1366673752--1084522577-1812926858-1234567890-90"这个也可以
   ECX 0012ECF4 ASCII "330324496-1959873337-1768610661--1333283800--1050134045-1856425430-1234567890-1425"
7、00403FDC   .8D95 7CFFFFFF lea edx,dword ptr ss: 在这里可以看到真码了
8、堆栈地址=0012ECF4, (ASCII "332047835-1960124504-1768747748--1333045568--1049888689-1856735786-1234567890-1425")
   edx=00000031
至此追码成功。
PS:另外思路二,逆向也成功了。只是不明白算法是怎么来的。怎么做注册机。

wql431 发表于 2016-12-8 23:02

客户端正常运行后应该是这样的才对。

李沉舟 发表于 2016-12-9 17:00

就凭楼主这份分享精神以及学习态度,请收下我1年份的膝盖!!!

雪花公子 发表于 2016-12-9 20:20

感谢分享,涨姿势了
页: [1] 2
查看完整版本: 新手吾爱汇编论坛,拜请赐教该软件解决思路。