Frida 0x7
Frida 0x7 根据如上代码,这一题有两个思路 第一个是hook Checker类的构造方法, 让num1>512并且num2>512即可输出flag 第二个思路是利用Checker类的构造方法再构造一个新的Checker类,传的num1和num2都要大于512 再把这个类传给flag方法,即可输出flag 代码如下 这里需要注意的是,方法1需要通过frida中的-f来启动,用-F来启动无法实现,因为程序在启动时就已经执行了flag(ch);所以即使hook了构造方法ch也已经通过hook之前的构造方法生成了 123456789101112131415161718function hookTest7_1(){ var utils = Java.use("com.ad2001.frida0x7.Checker"); //修改类的构造函数的实现,$init表示构造函数 utils.$init.overload('int','int').implementation = funct...
Frida 0x6
Frida 0x6 看到如上代码可以得出 代码中写了get_flag 但没有地方调用它 所以,我们要通过hook Checker这个构造方法构造一个Checker类再给里面的num1和num2赋值 让num1=1234,num2==4321 再传入get_flag中,即可在程序中输出flag 代码如下 1234567891011121314151617181920212223function hookTest6(){ var ret = null; Java.perform(function () { Java.choose("com.ad2001.frida0x6.MainActivity",{ //要hook的类 onMatch:function(instance1){ var utils = Java.use("com.ad2001.frida0x6.Checker");...
Frida 0x5
Frida 0x5 根据上述代码可知 我们需要用hook非静态方法的方式hook flag方法 让code==1337即可 12345678910111213141516171819function hookTest5(){ var ret = null; Java.perform(function () { Java.choose("com.ad2001.frida0x5.MainActivity",{ //要hook的类 onMatch:function(instance){ instance.flag(1337); //要hook的方法 }, onComplete:function(){ //console.log("result: " + ret); ...
Frida 0x4
Frida 0x4 这里我们照常看到mainactivity 发现只是对这个界面进行了一些设置 没有flag 又看到存在一个check类 点开里面发现有get_flag函数 但是这个方法实现完flag并不会输出到程序中去,而是作为返回值 所以我们需要通过hook构造一个Check类,再调用这个类中的get_flag令a==1337并且打印执行这个方法之后的返回值 12345678910111213function hookTest4(){ var ClassName=Java.use("com.ad2001.frida0x4.Check"); var instance = ClassName.$new(); var a=instance.get_flag(1337); console.log(a);}function main(){ Java.perform(function(){ hookTest4(); ...
Frida 0x3
Frida 0x3 这题也是,通过frida直接hook check.code更改这个静态变量的值为512即可 12345678910111213141516function hookTest3(){ Java.perform(function(){ //静态字段的修改s var utils = Java.use("com.ad2001.frida0x3.Checker"); //修改类的静态字段"flag"的值 utils.code.value = 512; console.log(utils.code.value); });}function main(){ Java.perform(function(){ hookTest3(); });}setImmediate(main);
Frida 0x2
Frida 0x2 通过分析这个代码可以知道我们只需要通过hook主动调用get_flag让a==4919就能输出flag代码如下 12345678910function hookTest2(){ var ClassName=Java.use("com.ad2001.frida0x2.MainActivity"); ClassName.get_flag(4919);}function main(){ Java.perform(function(){ hookTest2(); });}setImmediate(main);
Frida 0x1
Frida 0x1 根据上面的check方法可以看到 只要满足让(i*2)+4==i2这个条件就能够输出flag 所以我们只需要hook check方法中的i和i2的值就行 代码如下 12345678910111213141516171819202122function hookTest1(){ //获取一个名为"类名"的Java类,并将其实例赋值给JavaScript变量utils var utils = Java.use("com.ad2001.frida0x1.MainActivity"); //修改"类名"的"method"方法的实现。这个新的实现会接收两个参数(a和b) utils.check.implementation = function(a, b){ //将参数a和b的值改为123和456。 a = 1; b = 6; //调用修改过的"...



